cs_vychnou
Messages postés124Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention11 mai 2009
-
7 sept. 2006 à 12:54
cs_vychnou
Messages postés124Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention11 mai 2009
-
13 sept. 2006 à 10:25
Bonjour à vous.
Voila mon problème:
Une application graphique en swing affiche la liste des images
contenues dans un dossier, en cliquant sur l'image celle-ci s'affiche
dans un composant, et si l'utilisateur veut supprimer l'image, il
clique sur un bouton dédié et l'image est sensée être supprimée.
Le problème, c'est que les méthodes delete() et renameTo( "blabla" ) de
la File pointant sur l'image en question me renvoient toutes les 2 false (alors que la méthode canWrite() me renvoie elle true).
Le plus déroutant dans tout ça c'est que quelquefois, la suppression (ou déplacement) fonctionne.
J'ai les droits de modification et compagnie sur les fichier/dossiers et je ne vois pas ce qui cause ce problème.
Peut être l'objet de classe ParameterBlock que j'utilise pour créer mon image JAI verrouille ces fichiers ?
Peut être est ce du à la création de l'image JAI via la méthode
JAI.create("filesystem", parameterblock) qui bloquerai le fichier ?
cs_vychnou
Messages postés124Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention11 mai 200918 13 sept. 2006 à 10:25
J'ai (enfin) résolu mon problème.
Alors pour ceux qui le rencontreraients, voici la solution:
<li>Je créais mes objets JAI, les affichais.</li><li>Lorsque l'utilisateur voulait supprimer un fichier, je mettais les objets JAI à null, j'enlevais l'affichage etc...</li><li>Le problème venait du fait que le garbage collector semblait ne pas effacer assez tôt les objets JAI de la mémoire (quel flemmard !). Un appel à la méthode : System.gc(); m'a permis de tout résoudre. Celle-ci permet au développeur d'appeler manuellement le garbage collector.</li>Un problème auquel il fallait penser, mais après tous les tests que j'ai fait, il ne restait plus 36 possibilités.
cs_vychnou
Messages postés124Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention11 mai 200918 7 sept. 2006 à 13:54
C'est justement mon problème: qu'est ce qui fait office de pointeur sur mon fichier ?
<li>
Seulement les objets de type File ?</li><li>
Les objets de type ParamaterBlock ?</li><li>
Les objets de type PlanarImage JAI ?</li><li>
Le composant graphique qui affiche l'image?</li>
Il me semble que j'ai supprimé tous les pointeurs et même plus par précaution.
"Attention, si ton fichier est en cours d'utilisation, c'est normal
qu'il ne veuille pas le supprimer ou le déplacer !"
Oui, d'accord, mais si le fichier était en cours d'utilisation, canWrite() renverai-elle true ?!
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 7 sept. 2006 à 17:46
Salut,
D'apres la doc de JAI la methode JAI.create(...) est bloquante
maintenant faut voire ce qu'ils appels bloquante puis aussi si ils
gardent ou non un stream ouvert sur ton image....
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."