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

AWT/Swing Java Discussion :

Erreur lors de l'utilisation de TableSorter.java


Sujet :

AWT/Swing Java

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

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Points : 465
    Points
    465
    Par défaut synchronisations java
    Eh bien c'est partout où tu as besoin de contrôler l'accès à la ressource. Je dirais dans les 2 classes qui accèdent à la même ressource.
    le schéma ressemble à ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    synchronized(<Ressource>) <= Thread1.fonction access resource()
    ^
    "                  
    Thread2.fonction access resource()
    // l'accès  est contrôlé par le dé/vérouillage de la resource pour chaque Thread qui tente d'accéder à celle-ci
    fonctionaccessresource().queue[] = {ThreadsEnAttenteDeDévérouillage}
    Citation Envoyé par Bloodscalp

    @broumbroum : je ne connais pas les synchronisations. Je dois la placer ou ? Dans la classe TableSorter ? Ou quand je l'ajoute a mon model ?
    c.f. Java et la synchronisation

  2. #22
    Membre confirmé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Points : 645
    Points
    645
    Par défaut
    Citation Envoyé par jproto
    je ne me suis pas contenté de contrôler que cela remplissait le tableau. Cela ne lève aucune exception non-plus .
    chez moi non plus.


    Citation Envoyé par Bloodscalp
    En fait ca me déprime, je ne sais plus que faire.
    catch la sans rien mettre dans le catch, ce que le client ne voit pas ne lui pose pas de problème
    Pas taper

  3. #23
    Membre averti

    Profil pro
    Coach Agile
    Inscrit en
    Décembre 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Coach Agile

    Informations forums :
    Inscription : Décembre 2005
    Messages : 316
    Points : 371
    Points
    371
    Par défaut
    En fait ca me déprime, je ne sais plus que faire.
    Je comprends bien, nous passons tous par des phases comme ça de temps en temps.

    Quoi qu'il en soit, je m'orienterais vers un problème de plateforme. Tu travaille sous quel environnement, quel JDK, et quelle version de NB ?

  4. #24
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 147
    Points : 120
    Points
    120
    Par défaut
    catch la sans rien mettre dans le catch, ce que le client ne voit pas ne lui pose pas de problème
    J'arrive pas à fermer les yeux

    Quoi qu'il en soit, je m'orienterais vers un problème de plateforme. Tu travaille sous quel environnement, quel JDK, et quelle version de NB ?
    java version "1.5.0_09"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_09-b03)
    Java HotSpot(TM) Client VM (build 1.5.0_09-b03, mixed mode, sharing)


  5. #25
    Membre du Club Avatar de Frac10
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 81
    Points : 43
    Points
    43
    Par défaut
    Je vois que le sujet a bien avancé !
    Merci bien à tout le monde pour essayer de nous aider et désolé de revenir que maintenant dans la conversation...

    Sinon je sais pas pour toi Bloodscalp, mais moi çà me le faisait pas tout le temps en fait, et là j'ai essayer de provoquer une exception, mais rien à faire çà ne bugge pas...

    Bref, comme l'a dit broumbroum çà doit effectivement venir d'un problème de synchronization de la table.
    Je vais attendre de revoir l'exception pour tenter de synchronizer la table (vu que je ne sais pas à quel niveau de l'application l'erreur se produit : j'utilise plusieurs tableaux).

    [EDIT] : Je ne programme pas sur un EDI mais sur un éditeur (la flemme de me mettre à un EDI ), donc çà ne vient pas de NetBeans je pense.

  6. #26
    Membre averti

    Profil pro
    Coach Agile
    Inscrit en
    Décembre 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Coach Agile

    Informations forums :
    Inscription : Décembre 2005
    Messages : 316
    Points : 371
    Points
    371
    Par défaut
    De mon côté, cela ressemble à ça :

    NetBeans IDE 5.5 (Build 200610171010)

    Windows XP

    Java : 1.5.0_06
    VM : Java HotSpot(TM) Client VM 1.5.0_06-b05

    Bref, j'utilise le même JDK que celui avec lequel je développe.

    Essai peut-être d'en récupérer un plus vieux (on ne sait jamais). De toute façon, tu sais manifestement déjà comment en faire cohabiter plusieurs.

    Chris.

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

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Points : 465
    Points
    465
    Par défaut
    Citation Envoyé par Frac10
    (...)
    Bref, comme l'a dit broumbroum çà doit effectivement venir d'un problème de synchronization de la table.
    Je vais attendre de revoir l'exception pour tenter de synchronizer la table (vu que je ne sais pas à quel niveau de l'application l'erreur se produit : j'utilise plusieurs tableaux).

    [EDIT] : Je ne programme pas sur un EDI mais sur un éditeur (la flemme de me mettre à un EDI ), donc çà ne vient pas de NetBeans je pense.
    A ce niveau là j'utilise le debugger pour trouver le bug...

  8. #28
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 147
    Points : 120
    Points
    120
    Par défaut
    Pareil j'utilise le débogueur, mais là, c'est vraiment pas évident.

    Comme le dit Frac10, les exceptions ne sont pas levées tout le temps, au début ça ne me le faisait que rarement, mais maintenant c'est tout le temps.

  9. #29
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 147
    Points : 120
    Points
    120
    Par défaut
    C'est très étrange, la première fois que j'exécute mon programme après un reboot du système, aucune exception n'est levée, alors que les fois suivants, ça recommence.

  10. #30
    Membre confirmé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Points : 645
    Points
    645
    Par défaut
    Citation Envoyé par Bloodscalp
    C'est très étrange, la première fois que j'exécute mon programme après un reboot du système, aucune exception n'est levée, alors que les fois suivants, ça recommence.
    Est-ce que la JVM est bien arrêtée quand tu quites ton programme ?

    Si tu le lances avec ton netbean, que tu le fermes, que tu fermes netbean, que tu rouvres netbean, et que tu relances ton prog, est-ce que l'exception est toujours levée ?

  11. #31
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 147
    Points : 120
    Points
    120
    Par défaut
    J'ai un peu de peine avec la synchronisation. J'ajoute mes enregistrements dans un model, j'ai donc synchronisé mon model.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                Thread RechercherUtilisateurs = new Thread() {
                    @Override public void run() {
                        synchronized(dtmModel) {
                            for(int i = 0; i<2000; i++){
                            dtmModel.addRow(new String[] {i+"", "texte", "texte", "texte"});
                            }
                        }
     
                    }
                };
    Est-ce correct ?

    Et pourquoi faut-il synchroniser ? J'ai lu que la synchronistation était utilie uniquement si plusieurs threads vont faire appel à la méthode, or ce n'est pas mon cas...

  12. #32
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 147
    Points : 120
    Points
    120
    Par défaut
    Citation Envoyé par Satch
    Est-ce que la JVM est bien arrêtée quand tu quites ton programme ?

    Si tu le lances avec ton netbean, que tu le fermes, que tu fermes netbean, que tu rouvres netbean, et que tu relances ton prog, est-ce que l'exception est toujours levée ?
    Si j'arrête et je relance NB, la première exécution se passe sans problèmes.

    Comment je peux savoir si la JVM est arrêtée ? Il me semble que non, mais j'en sais rien ^^

  13. #33
    Membre confirmé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Points : 645
    Points
    645
    Par défaut
    Citation Envoyé par Bloodscalp
    Si j'arrête et je relance NB, la première exécution se passe sans problèmes.
    Dans ce cas, essaye de mettre un System.exit(); quand tu fermes la fenêtre, comme ça au moins tu seras sur que quand c'est quité, c'est quité.

    Il m'arrivait sur Eclipse que même pour un simple hello world, la jvm ne s'arrête pas sans un system.exit.

    C'est peut-être un pb lié à ça.

    Je peux difficilement t'aider plus, je connais très mal Swing et AWT.

  14. #34
    Membre averti

    Profil pro
    Coach Agile
    Inscrit en
    Décembre 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Coach Agile

    Informations forums :
    Inscription : Décembre 2005
    Messages : 316
    Points : 371
    Points
    371
    Par défaut
    Cela ressemble beaucoup au problème décrit par Satch.

    Mais une question en l'air : Tu as le problème avec le projet que tu nous as envoyé ?

    En fait, je viens de reproduire ton problème en commentant la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    //        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    Dans ce cas, lors du second lancement de l'appli, j'ai bien la pile d'erreur décrite au début du sujet.
    Vérifie donc que tu as cette instruction dans ton vrai projet.

    Chris.

  15. #35
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 147
    Points : 120
    Points
    120
    Par défaut
    Ça ne ferais que contourner le problème. Un utilisateur doit pouvoir faire plusieurs recherches sans fermer le programme entre deux, ça ne résout donc pas le problème.

  16. #36
    Membre averti

    Profil pro
    Coach Agile
    Inscrit en
    Décembre 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Coach Agile

    Informations forums :
    Inscription : Décembre 2005
    Messages : 316
    Points : 371
    Points
    371
    Par défaut
    Cette instruction n'est pas à mettre dans ton bouton Rechercher. Elle doit être placée dans la construction de ta fenêtre principale afin de fermer la JVM associée à ton process lorsque tu sors de l'application (Bref pour libérer proprement les ressources).
    Ainsi, tant que ton utilisateur est dans ton appli, il fait autant de recherche qu'il le veut.

    S'il a plusieurs appli qui tournent en //, il n'y a pas de problème non plus (je viens d'essayer sur ton exemple).

    Chris.

  17. #37
    Membre confirmé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Points : 645
    Points
    645
    Par défaut
    Citation Envoyé par Bloodscalp
    Ça ne ferais que contourner le problème. Un utilisateur doit pouvoir faire plusieurs recherches sans fermer le programme entre deux, ça ne résout donc pas le problème.
    Le pb survient lors de second lancement, pas si on ne le ferme pas. Donc ça devrait marcher non ?

  18. #38
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 147
    Points : 120
    Points
    120
    Par défaut
    @jproto : ma réponse concernait Satch, on a répondu en même temps. Le code que je vous ai donnée provoque les même erreurs que celles de mon projet principal. Et j'ai bien la ligne setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); dans mon code, au bon endroit.

    @Satch : le problème vient dès la seconde recherche, peu importe le nombre de lancements.

    Ne faudrait-il pas libérer les ressource après une recherche ?

  19. #39
    Membre confirmé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Points : 645
    Points
    645
    Par défaut
    J'ai retesté comme un malade avec le code fourni sans rien changer.

    J'ai cette erreur peut-être une fois sur 100. Et quand je l'ai elle ne se répète pas.

    J'ai essayé en lançant, 2,3,5,10 fois le truc, en cliquant 20 fois sur rechercher, vite, très vite, moins vite, en fermant, en fermant pas, et même en dansant sur un pied. Impossible de trouver un moyen de le reproduire à coup sur.

  20. #40
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 147
    Points : 120
    Points
    120
    Par défaut
    J'ai pris le tablesorter de la première page, on a exactement les même trucs, et pourtant, j'ai une erreur à chaque fois.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. [POO] Erreur lors de l'utilisation de $this en PHP5
    Par Ekimasu dans le forum Langage
    Réponses: 4
    Dernier message: 03/11/2006, 20h21
  2. Erreur lors de l'utilisation de session_start();
    Par nane1474 dans le forum Langage
    Réponses: 8
    Dernier message: 30/06/2006, 12h06
  3. Erreur lors de l' utilisation des objets ADO
    Par aityahia dans le forum Bases de données
    Réponses: 10
    Dernier message: 24/03/2006, 13h46
  4. Eviter les erreurs lors de l'utilisation des compo Tsocket
    Par Coussati dans le forum Composants VCL
    Réponses: 5
    Dernier message: 01/02/2006, 19h14
  5. Erreur lors de l'utilisation de strlwr ?!
    Par MonsieurAk dans le forum C++
    Réponses: 4
    Dernier message: 05/12/2005, 10h22

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