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

Composants Java Discussion :

[JTree] Venu du JDK, un message "Editing exception: java.lang.RuntimeException" très délicat à débogguer.


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 608
    Par défaut [JTree] Venu du JDK, un message "Editing exception: java.lang.RuntimeException" très délicat à débogguer.
    Bonjour,

    Un arbre héritant JTree pourvu d'un Editor customisé et aussi d'un Listener sur sélection fonctionne bien dans une configuration de développement lorsque Eclipse lance mon projet.

    Alors, j'ai entrepris de préparer ma livraison, telle que le client s'exécute maintenant en dehors d'éclipse cette fois. Et là, je rencontre une difficulté. Lorsque je sélectionne un élément dans mon arbre, ce message apparait:
    Editing exception: java.lang.RuntimeException

    Recherche faite, il vient du JDK. Précisément de ce source là: BasicTreeUI.java

    Et là où je ne suis pas tiré d'affaire, c'est que la portion de code responsable de l'émission du message est celle-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Rectangle  visRect = tree.getVisibleRect();
     
    tree.paintImmediately(nodeBounds.x, nodeBounds.y, visRect.width + visRect.x - nodeBounds.x, editorSize.height);
     
    if(cellEditor.shouldSelectCell(event)) {
    stopEditingInCompleteEditing = false;
    try {
    tree.setSelectionRow(row);
    } catch (Exception e) {
    System.err.println("Editing exception: " + e);
    }
    stopEditingInCompleteEditing = true;
    On a vu plus avisé comme traitement d'exception, n'est ce pas?

    Ce qui m'embarrasse, c'est que même si je mets un point d'arrêt dans la classe de rt.jar dans mon JDK Eclipse, en mettant Eclipse dans une situation où il reproduit mon problème, je ne parviens pas à lire le contenu de l'exception e.
    Peut-être est-ce du au fait que j'ai mis un point d'arrêt dans une classe binaire?

    Quoiqu'il en soit, quelle stratégie pour trouver quelle est précisément cette RuntimeException et ce qu'elle condamne?

    Ce message Editing exception: java.lang.RuntimeException vous est-il déjà connu?

    En vous remerciant,

    Grunt.

  2. #2
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    try {
    	tree.setSelectionRow(row);
    } catch (Exception e) {
    	System.err.println("Editing exception: " + e);
    }
    Tu te tires une balle dans le pied avec cette façon de gérer les exceptions !
    "Editing exception: java.lang.RuntimeException" ok, mais la pile des appels elle est où ? Parce que avant de trifouiller le rt.jar que se passe-t-il dans ta méthode "tree.setSelectionRow(row);" qui n'est pas une méthode standard du JTree ?

  3. #3
    Membre très actif

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 608
    Par défaut
    Ce code que tu mets en exergue n'est pas le mien, mais celui du JDK. Ce n'est pas moi qui l'ai écrit, c'est Sun. J'aimerais bien moi aussi qu'il soit différent. Je n'aurais pas écrit une exception ainsi.

    Je n'ai pas overridé la méthode setSelectionRow moi-même. Je ne fais que réagir à un listener, et c'est l'invocation du listener qui semble poser ce problème.

  4. #4
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    Quoi qu'il en soit pour résoudre ton problème tu ne pourras pas modifier le JRE donc mieux vaut te concentrer sur ton code qui est le seul endroit où tu as les mains libres.

  5. #5
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Ce que tu peux faire pour voir l'exception, c'est recopier cette classe BasicTreeUI dans ton programmet et la configurer sur ton arbre avec setUI(), ça devrait marcher et avec ça, tu peux modifier le code de gestion de l'exception pour voir ce qu'il en est et isoler le problème.

  6. #6
    Membre très actif

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 608
    Par défaut
    Bravo!

    Ça m'a l'air d'être une superbe piste.
    Je vais expérimenter cela Lundi, et il y a de bonnes chances que cela m'explique ce qui se passe.

    Grunt.

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

Discussions similaires

  1. Envoi d'un message Lotus Notes depuis Java
    Par link182 dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 25/03/2008, 11h05
  2. Message d'erreur en java
    Par Elandril dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 05/03/2006, 17h28
  3. [JAVA et XML] Message XML avec paramètre JAVA
    Par MiJack dans le forum Format d'échange (XML, JSON...)
    Réponses: 9
    Dernier message: 09/11/2005, 10h22
  4. [Print]Edition en java : JTable ou JasperReports
    Par calimero82 dans le forum Composants
    Réponses: 5
    Dernier message: 05/11/2004, 15h50

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