IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

Recherche de fichier entrainant le plantage du programme


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Par défaut Recherche de fichier entrainant le plantage du programme
    Bonjour à tous,

    J'ai actuellement un souci qui m'empeche de progresser dans mon développement, et dont je n'arrive pas à comprendre l'origine.

    Je fais de la recherche de fichier dans 2 arborescences (la 2ème n'est vérifié que si la première ne donne rien) sous UNIX.
    Il y a donc 4 cas possibles:

    Arborescence A & le lichier est un fichier:
    Aucun problème, je peux trouver le fichier et le lire.

    Arborescence A & le fichier est un dossier:
    Aucun problème pour le trouver, le code fournis bien la commande pour aller dedans.

    Arborescence B & le fichier est un dossier:
    Le dossier existe en plusieurs exemplaires, mais aucun problème pour le trouver et pour fournir la commande du dernier trouvé (c'est classé par dates du type aammjj).

    Arboresence B & le fichier est un fichier:
    PLANTAGE !!!
    En recherche manuelle, les fichiers existent en plusieurs exemplaires, dans les dossiers à dates différentes. Le code devrait fournir une commande d'ouverture du fichier.

    En reproduisant une partie des arborescences dans mon dossier personnel (~), et en y replaçant des fichiers/dossiers pour les 4 cas, avec les mêmes permissions d'accès, il n'y a pas de plantage (et la recherche est moins longue car moins d'infos).
    J'en déduis donc que le problème ne vient pas du fait que je recherche un fichier. Mais ça ne le résout pas.

    Si quelqu'un pense savoir où se situe le problème, je suis preneur.
    En sachant toutefois qu'il sera très dur de toucher à l'arborescence UNIX, voire impossible (beaucoup d'utilisateurs).

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Et quelle est l'exception ?

    a++

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Par défaut
    Il n'y en a pas.

    Dans les 3 cas qui marchent, au bout de 30 secondes maximum j'ai le résultat.
    Celui qui "plante" ne donne rien en plus de 3h (véridique), seulement l'interface qui perd son apparence si on ouvre une autre fenetre au dessus.



    Ps: je précise que le plantage survient même sans traitement après la recherche.

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Donc ce n'est pas un plantage...

    Ton algorithme doit surement se retrouver en boucle infini, et tu ne dois pas gérer l'EDT correctement (d'où le bug d'affichage sur l'interface).


    a++

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Par défaut
    Actuellement la méthode qui recherche dans l'arborescence est celle-ci (c'est la même que pour l'autre arborescence qui elle marche)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    /**
    *Parcours de l'arborescence
    */
    public void visiteArbre(File repertoire, String nomFichier)
    {
    	//le repertoire a fouiller doit etre un repertoire
    	if(repertoire.isDirectory())
    	{
    		File[] list=repertoire.listFiles();
    		File fichierCherche=new File(nomFichier);
    		if(list!=null)
    		{
    			for(int i=0;i<list.length;i++)
    			{
    			//si le fichier est un repertoire, on le fouille
    				this.visiteArbre(list[i],nomFichier);
    				if(this.verificationNom(list[i].getPath(),nomFichier)==true)
    				{
    					this.setTrouve(true);
    					this.fichierLog=list[i];
    					this.setNbTrouves(this.getNbTrouves()+1);
    				}
    			}
    		}
    	}
    }

  6. #6
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Par défaut
    Juste une chose qui pourrait expliquer ton problème. Si tu as des liens symboliques dans ton répertoire qui feraient que tu boucles en repassant constamment sur la même arborescence.

    Genre le truc vicieux .. un lien symbolique sur ..

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par dracorb Voir le message
    Il n'y en a pas.

    Dans les 3 cas qui marchent, au bout de 30 secondes maximum j'ai le résultat.
    Celui qui "plante" ne donne rien en plus de 3h (véridique), seulement l'interface qui perd son apparence si on ouvre une autre fenetre au dessus.
    Si t'es dans un IDE, lance le programme en debug. Au bout de 5 minute fait "pause" dessus et commence à faire du pas à pas en debug pour voir ou il boucle.

    Je ne suis pas d'accord avec les liens symboliques, si il avait un problème lié à ça, il tomberais en récursion infinie et finirait avec un stackoverflow. Ce qui n'est pas le cas.

    Je pencherais plutot pour l'algorithme de base qui ferait un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Essaye A
    si pas
    Essaye B
    si pas
    Essaye A
    si pas
    Essaye B
    si pas
    Essaye A
    etc etc

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Par défaut
    Pas d'IDE non.

    J'ai vérifié pour voir si c'était un "faire A sinon faire B sinon faire A ...", mais non ça ne repasse pas au "essaye A".

    Je vais essayer de voir si y'a pas un lien symbolique qui traine (j'ai pas eu d'overflow mais bon).

  9. #9
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Par défaut
    verificationNom fait quoi au juste ? Car tu l'appelles que ce soit un répertoire ou un fichier.
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  10. #10
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par dracorb Voir le message
    Pas d'IDE non..
    Soit en mettre un (y a pas de raison de s'en priver) soit utiliser kill -3 <pid java> pour avoir un stack dump de la jvm et voir où est ton process.

Discussions similaires

  1. Créer un programme de recherche de fichier automatique
    Par vladock dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 22/02/2008, 10h39
  2. Programme de recherche des fichiers
    Par lion13 dans le forum Linux
    Réponses: 2
    Dernier message: 05/03/2006, 22h28
  3. Réponses: 14
    Dernier message: 25/10/2004, 21h33
  4. batch de recherche de fichier ...
    Par Félia dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 29/07/2004, 15h54
  5. Recherche support fichier
    Par sydiop dans le forum Informix
    Réponses: 5
    Dernier message: 18/03/2004, 10h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo