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

Collection et Stream Java Discussion :

Synchronization java Collections.unmodifiableCollection


Sujet :

Collection et Stream Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 26
    Points : 22
    Points
    22
    Par défaut Synchronization java Collections.unmodifiableCollection
    Bonjour,
    J'ai une erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:761)
            at java.util.LinkedList$ListItr.next(LinkedList.java:696)
            at java.util.Collections$UnmodifiableCollection$1.next(Collections.java:1010)
    au niveau de la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Collections.unmodifiableCollection(getMaListe())
    Sachant que j'ai une méthode addMaListe qui ajoute un élément dans maliste, et getMaListe() qui récuprè liste ma liste.
    Je me suis dis que c'est une problème de synchronisation car getMaListe() est appelé dans une classe et addMaListe appelée dans une autre classe, ce qui fait que la liste est modifiée.
    Donc est ce que le fait de rajouter synchronized aux 2 méthodes addMaListe et getMaListe résoudrait le problème? Ou bien le fait de faire un synchronized sur la liste le résoudrait plutôt?

    Cordialement.

  2. #2
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Points : 2 560
    Points
    2 560
    Par défaut
    Bonjour,
    http://docs.oracle.com/javase/6/docs...til.Collection)
    Ca t'explique tu ne peux pas modifier la collection retournée.
    Tu vois bien que tes exceptions sont liées au fait que ta collection est immuable, ce n'est pas un problème de concurrence comme tu sembles le craindre.

    Cordialement,
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas hésiter à visiter !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 26
    Points : 22
    Points
    22
    Par défaut
    Oui effectivement.
    Mais comment remédier à cela?

    Si je fait un synchroniozed de maliste dans les traitement de parcours, comme cela personne ne peut la manipuler résoudrait il le problème?
    Cordialement.

  4. #4
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Points : 2 560
    Points
    2 560
    Par défaut
    Je connais pas la logique de ton programme ^^
    Mais tout ce que je peux te dire, c'est que tu ne peux pas modifier une liste immuable (c'est l'évidence même).
    Tes synchronized et cie n'y changeront rien, .. c'est loin d'être la solution et ça complexifie ton programme
    Tu devrais juste revoir ton code et voir si tu as vraiment besoin de créer une liste non modifiable. ... Sinon bah, tu peux par exemple créer une autre liste modifiable à partir de ta liste non modifiable (j'aime pas trop cette solution, car il s'agit d'une recopie ...)
    Voilà.
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas hésiter à visiter !

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 26
    Points : 22
    Points
    22
    Par défaut
    Même en enlevant le unmodifiableCollection l'erreur persiste.

  6. #6
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Quelle est l'exception exacte ? (parce qu'elle n'est pas indiqué dans le petit bout de stacktrace que tu donne)

    Quel est le code exact qui pose problème ? (et pas seulement un appel de méthode)


    a++

Discussions similaires

  1. Java Collection Map<String, Map<String,List<Object>>
    Par Malatok dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 17/08/2011, 14h07
  2. équivalent du synchronized Java
    Par leame dans le forum Langage
    Réponses: 8
    Dernier message: 02/11/2010, 13h59
  3. java méthodes synchronized imbriquées
    Par tet.dum dans le forum Langage
    Réponses: 4
    Dernier message: 14/05/2007, 14h41
  4. Passage d'une collection depuis une Appli java
    Par Florent Coulon dans le forum iReport
    Réponses: 2
    Dernier message: 09/11/2006, 11h30

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