venerdì 11 settembre 2009

Java

In questi giorni sono stato impegnato a chiudere un progetto per realizzare uno strumento per la firma digitale. Il funzionamento è abbastanza classico: si visualizza il documento, e si decide se firmarlo o meno; automaticamente viene visualizzato il documento successivo e così via..
Tecnologia di sviluppo: Java; ambiente di sviluppo: Netbeans.

Verso la fine dello sviluppo mi accorgo che qualcosa non va: i documenti di partenza, una volta firmati non venivano cancellati. Come mai? Non l'ho scoperto. Tutto il progetto stava per collassare solo perchè la funzione File.delete() non fa quello che deve:il file esiste e non è bloccato eppure non si riesce a cancellarlo. Se si prova a cancellarlo a mano via filesystem si cancella senza problema!
Ho provato con un ciclo di delete (magari è solo questione di tempo) ma niente; allo scadere della deadline mi sono deciso a rinominare il file aggiungendo .old al file, in attesa di trovare una soluzione.

Non escludo che abbia fatto qualche cosa di non corretto che abbia causato questo problema, non mi capacito però della scarsità di risorse che il mondo Java mette a disposizione: sembra che venga utilizzato da pochissime persone, invece le statistiche dicono che è il linguaggio più usato.

Dopo un primo studio sembra che il qualche maniera la classe per visualizzare il documento tenga bloccato il file anche dopo aver estratto l'array di byte e abbandonato. Ritorno su internet a cercare qualche soluzione ma nulla, come se la mia libreria non fosse usata da nessuno, invece trovo che molti siti citano la libreria ma i codici di esempi sono scarsissimi: mi piacerebbe sapere se c'è qualcuno che utilizza questi visualizzatori e subito dopo cancella il file.