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

Langage Java Discussion :

java lang StackOverflowError


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    227
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 227
    Par défaut java lang StackOverflowError
    le code suivant essai de lié les deux objets, chacune d'entre elle
    possedant un Set de l'autre donc.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public class Lieu{
    ...
    private Set composant= new HashSet();
    public void addComposant(Composant composant){
            composant.addLieu(this);
            this.getComposants().add(composant);
     
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public class Composant{
    ...
    private Set lieux = new HashSet();
    public void addLieu(Lieu lieu){
            this.getLieux().add(lieu);
            lieu.addComposant(this);
        }
    le tous dans une boucle qui parcours une Liste d'identifiant obtenue par une requêt http
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ...
     Integer composantid = (Integer)request.getSession().getAttribute("composantid");
     for(int index=0;index<ids.length;index++){
                bean = (BeanIdentity)HibernateDAO.Get(entityname,new Integer(ids[index]));
                if(bean instanceof Theme){
                    composant.removeTheme((Theme)bean);
                }
                if(bean instanceof Lieu){
                    composant.removeLieu((Lieu) bean);
                }
                if(bean instanceof Option){
                    composant.removeOption((Option)bean);
                }
    ...
    l'insertion se passe bien pour le premier objet mais pour le second je reçois ce message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Caused by: java.lang.StackOverflowError
    quelqu'un a une idée?

  2. #2
    Membre chevronné Avatar de broumbroum
    Profil pro
    Inscrit en
    Août 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Par défaut
    il manque la trace complète de l'erreur... sans cela c'est pas évident de t'aider

  3. #3
    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,


    Tu fait des appels récursifs à l'infini, ce qui généralement provoque un StackOverflow :

    1. Dans addComposant() tu appelles la méthode addLieu() de ton Composant.
    2. Dans la méthode addLieu() tu appelles la méthode addComposant() du lieu précédent, et tu reviens donc en 1. !


    Bref tu tournes en rond ...

    a++

  4. #4
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    227
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 227
    Par défaut
    tu as vu juste, j'ai la tête dans le code que tout m'échappe, merci pour ton coup de main

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. une erreur horreure java.lang.StackOverFlowError
    Par mahmoud_mahmoud dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 04/03/2008, 11h20
  2. Exception in thread "main" java.lang.StackOverflowError
    Par une_tite_question dans le forum AWT/Swing
    Réponses: 14
    Dernier message: 25/02/2008, 10h49
  3. java.lang.StackOverflowError sur évènement windowDeactivated
    Par SheikYerbouti dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 10/06/2007, 22h23
  4. serialisation et java.lang.StackOverflowError
    Par LittleBean dans le forum Langage
    Réponses: 3
    Dernier message: 11/04/2007, 10h29
  5. Réponses: 2
    Dernier message: 15/03/2007, 14h00

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