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

Java Discussion :

Exception en Java : Unknown Source


Sujet :

Java

  1. #1
    Membre confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Août 2007
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Août 2007
    Messages : 509
    Points : 622
    Points
    622
    Par défaut Exception en Java : Unknown Source
    Bonjour,
    quand je lance mon appl j'ai un message d'erreur qui apparait sans pour autant faire planter quoi que ce soit... comme fait on pour degugguer un truc sur lequel on a aucune info ? (Unknown Source).

    L'exception :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Exception in thread "main" java.lang.NullPointerException
    	at com.jgraph.editor.JGraphEditorFactory.getAction(Unknown Source)
    	at com.jgraph.editor.JGraphEditorFactory.createMenuItem(Unknown Source)
    	at com.jgraph.editor.JGraphEditorFactory.configureMenuBar(Unknown Source)
    	at com.jgraph.editor.JGraphEditorFactory.configureMenuBar(Unknown Source)
    	at com.jgraph.editor.JGraphEditorFactory.createMenuBar(Unknown Source)
    	at fr.upmc.dsi.siview.factory.SIViewPane$FactoryMethod.createInstance(SIViewPane.java:635)
    	at com.jgraph.editor.JGraphEditorFactory.executeMethod(Unknown Source)
    	at fr.upmc.dsi.siview.SIView.createMainWindow(SIView.java:203)
    	at fr.upmc.dsi.siview.SIView.createApplication(SIView.java:132)
    	at fr.upmc.dsi.siview.SIView.main(SIView.java:366)

    La ligne qui contient l'appel à la méthode createMenubar est celle qui provoque l'exception.

    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
     
    public Component createInstance(Node configuration) {
    			final JFrame frame = new JFrame();
    			frame.getContentPane().setLayout(new BorderLayout());
     
    			final SIViewPane editorpane = new SIViewPane(this.editor,this.mode);
    			frame.getContentPane().add(editorpane,BorderLayout.CENTER);
     
    			Node menubar = JGraphEditorSettings.getNodeByName(configuration.getChildNodes(),NODENAME_MENUBAR);
    			frame.setJMenuBar((JMenuBar) editor.getFactory().createMenuBar(menubar));
     
     
    			Component statusbar = editor.getFactory().executeMethod(SIViewStatusBar.FactoryMethod.NAME);
    			frame.getContentPane().add(statusbar, BorderLayout.SOUTH);
     
     
    			return frame;
     
    		}
    Pouvez vous m'aider svp?

  2. #2
    Membre expérimenté

    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2009
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2009
    Messages : 553
    Points : 1 672
    Points
    1 672
    Par défaut
    Comment faire pour pour trouver l'erreur ? Pour commencer, une seule instruction par ligne, car sinon tu auras du mal à déterminer la source du problème.
    En effet, dans:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    frame.setJMenuBar((JMenuBar) editor.getFactory().createMenuBar(menubar));
    frame peut être null, editor peut être null, l'objet retourné par getFactory() peut être null, menubar peut être null...
    Donc la première chose à faire est de décomposer cette ligne et de debugger à nouveau pour voir précisément lequel de ces objets est null.

    Quant à "unknown source", cela signifie que tu n'as pas le code source dans lequel l'erreur se situe. Cela arrive généralement quand l'erreur se produit dans une librairie que tu n'as pas écrite toi-même.

  3. #3
    Membre confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Août 2007
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Août 2007
    Messages : 509
    Points : 622
    Points
    622
    Par défaut
    Voilà,
    je fais ca depuis hier. J'ai testé la frame, la variable menubar et l'editor.getFactory() et sont tous non nuls.
    Je ne vois d'où peut provient l'erreur.

  4. #4
    Membre confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Août 2007
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Août 2007
    Messages : 509
    Points : 622
    Points
    622
    Par défaut
    Juste pour info, j'ai mis un screenshot du lancement de mon appli en mode Debug sur Eclipse. Et j'ai fait un Inspect sur la variable menubar, Eclipse m'affiche [menubar : null]. Est ce que cela signifie que ma variable est nulle??

  5. #5
    Membre expérimenté

    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2009
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2009
    Messages : 553
    Points : 1 672
    Points
    1 672
    Par défaut
    Ca veut dire que, au moment où tu veux t'en servir, menuBar n'a pas été instancié. Autrement dit, il n'existe pas.

  6. #6
    Membre confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Août 2007
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Août 2007
    Messages : 509
    Points : 622
    Points
    622
    Par défaut
    OK, c'est qd meme bizarre mais je vais jeter un coup d'oeil.

  7. #7
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Donne le code complet minimal qui compile et qui reproduit le problème.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  8. #8
    Membre confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Août 2007
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Août 2007
    Messages : 509
    Points : 622
    Points
    622
    Par défaut
    En fait, je travaille avec un framework appelé JGraphPad. Ce framework est basé sur JGraph et permet de créer facilement en java des interfaces graphiques pour manipuler des graphes. L'interface est décrite dans un fichier XML et est crée (par le framework) en passant par une factory qui appelle la méthode createInstance.Le paramètre configuration correspond à un noeud de mon fichier XML.


    Code java : 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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    public static class FactoryMethod extends JGraphEditorFactoryMethod {
     
    		/**
                     * Defines the default name for factory methods of this kind.
                     */
    		public static String NAME = "createFrame";
     
    		/**
                     * Node name used for menu configurations.
                     */
    		public static final String NODENAME_MENUBAR = "menubar";
     
    		/**
                     * Node name used for toolbar configurations.
                     */
    		public static final String NODENAME_TOOLBAR = "toolbar";
     
     
    		/**
                     * References the enclosing editor.
                     */
    		protected JGraphEditor editor;
     
     
    		/**
                     * References siview mode
                     * */
    		protected SIVIEW_MODE mode;
    		/**
                     * Constructs a new factory method for the specified enclosing editor
                     * using {@link #NAME}.
                     * 
                     * @param editor
                     *            The editor that contains the factory method.
                     */
    		public FactoryMethod(JGraphEditor editor, SIVIEW_MODE mode) {
    			super(NAME);
    			this.editor = editor;
    			this.mode = mode;
    		}
     
    		/*
    		 * (non-Javadoc)
    		 */
    		public Component createInstance(Node configuration) {
    			final JFrame frame = new JFrame();
    			frame.getContentPane().setLayout(new BorderLayout());
     
    			Node menubar = JGraphEditorSettings.getNodeByName(configuration.getChildNodes(),NODENAME_MENUBAR);
    			JMenuBar bar = editor.getFactory().createMenuBar(menubar);
    			frame.setJMenuBar(bar);
     
     
    			final SIViewPane editorpane = new SIViewPane(this.editor,this.mode);
    			frame.getContentPane().add(editorpane,BorderLayout.CENTER);
     
    			Component statusbar = editor.getFactory().executeMethod(SIViewStatusBar.FactoryMethod.NAME);
    			frame.getContentPane().add(statusbar, BorderLayout.SOUTH);
     
     
    			return frame;
     
    		}
    	}
    Si t'as besoin de plus d'infos, n'hésite pas à m'en demander. Merci pour votre aide

    Juste un petit rappel :
    j'enregistre ma méthode dans la factory de cette facon :

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    factory.addMethod(new SIViewPane.FactoryMethod(editor, mode));

  9. #9
    Membre confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Août 2007
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Août 2007
    Messages : 509
    Points : 622
    Points
    622
    Par défaut
    C'est résolu. J'avais mal initialisé ma factory en oubliant de lui passer un parametre. Voilà trop content

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

Discussions similaires

  1. erreur java (unknown source)
    Par jpclutier dans le forum Général Java
    Réponses: 5
    Dernier message: 15/12/2010, 14h02
  2. Erreur at java.awt.Container.addImpl(Unknown Source)
    Par saloua2200 dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 25/10/2010, 11h38
  3. Java heap space - ArrayList.ensureCapacity(Unknown Source)
    Par phoenix420 dans le forum Collection et Stream
    Réponses: 18
    Dernier message: 19/05/2010, 12h46
  4. Réponses: 3
    Dernier message: 19/03/2009, 15h53
  5. pb "java.util.Arrays.mergeSort(Unknown Source)"
    Par kamalkam dans le forum API standards et tierces
    Réponses: 12
    Dernier message: 08/05/2006, 12h38

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