Rapporter un bug

Aller en bas

Rapporter un bug

Message par Jolan le Dim 2 Déc - 2:16

Bonjour, ce sujet a pour but de signaler tout les bugs rencontrés afin de les corriger.

Je commence, j'ai déjà eu à plusieurs reprises cette exception :

Code:
Exception in thread "main" java.lang.NoClassDefFoundError: gui/containers/gm/EditorListener
   at gui.containers.gm.GMWindow.initializeMainPanel(GMWindow.java:41)
   at gui.containers.Window.<init>(Window.java:21)
   at gui.containers.gm.GMWindow.<init>(GMWindow.java:31)
   at mj.ClientMJ.loop(ClientMJ.java:35)
   at mj.Main.main(Main.java:24)
Caused by: java.lang.ClassNotFoundException: gui.containers.gm.EditorListener
   at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
   at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
   ... 5 more

Et je pense que je ne suis pas le seul. Cependant, habituellement, un simple make mj ou make clean après l'exception résolvait le problème.
Mais cette fois, non.

J'ai donc essayé quelques trucs et j'en suis arrivé à la conclusion que j'y comprenais rien aux Exceptions Java. Crying or Very sad

- Mise en commentaire de plein de trucs -> aucun changement. No
- Remplacement de "abstract class EditorListener ..." par "class EditorListener" (j'ai viré abstract)
-> Résultat, l'exception n'apparait plus MAIS j'en ai une autre ! confused


Code:
Exception in thread "main" java.lang.NoClassDefFoundError: gui/components/gm/MonCellRenderer
   at gui.components.gm.MapElementSelector.<init>(MapElementSelector.java:117)
   at gui.containers.gm.GMMapEditorTab.<init>(GMMapEditorTab.java:264)
   at gui.containers.gm.GMWindow.initializeMainPanel(GMWindow.java:41)
   at gui.containers.Window.<init>(Window.java:21)
   at gui.containers.gm.GMWindow.<init>(GMWindow.java:31)
   at mj.ClientMJ.loop(ClientMJ.java:35)
   at mj.Main.main(Main.java:24)
Caused by: java.lang.ClassNotFoundException: gui.components.gm.MonCellRenderer
   at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
   at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
   ... 7 more

Je me dis "Lol WTF?" puis "Quitte à bricoler, autant bricoler crade".
Du coup je passe "MonCellRenderer" qui pose problème en abstract.
Résultat : ça ne compile plus : on ne peut pas instancier une classe abstraite (normal quoi).

Du coup je retire le abstract et là... WHAT THE FUCK ?! affraid
Je recompile (SANS RIEN CHANGER D'AUTRE, j'insiste parce que j'ai VRAIMENT RIEN CHANGÉ D'AUTRE)
et devinez quoi ? ça marche -_-". Suspect
Du coup je me dis "et si je remet abstract sur EditorListener l'exception va revenir :S", je remet abstract et :O surprise... pas d'exception. Shocked

Pour résumer :
- Je vire abstract sur EditorListener -> exception sur monCellrender -> je le passe en abstract -> erreur compilation -> j'enleve le abstract de monCellRenderer -> ça compile -> je remet abstract sur EditorListener -> ÇA COMPILE WHAT?! What a Face

Si quelqu'un aurait la moindre idée de comment un tel truc est possible ça m'intéresse, et si vous savez comment le résoudre, encore plus.

_________________
I got pwnd hard.
Keynub

jolan : c'est la perfection.
DarthKeynub
avatar
Jolan
Admin

Messages : 58
Age : 98
Localisation : Voie Lactée, bordure extérieure, ceinture d'astéroïdes, Kashyyk, Kamino centre, 22 rue des légendes.

Feuille de personnage
Nom du personnage:

Revenir en haut Aller en bas

Re: Rapporter un bug

Message par Jérémy le Dim 2 Déc - 10:40

Je ne sais pas quand le problème intervient.
Par contre, il vient de la gestion des .class et du Makefile.

J'ai eu le problème aussi, plusieurs fois, et toujours avec des classes internes.
Je crois qu'un des moyens de résoudre le problème est de sauvegarder le fichier (ou faire un "touch", quelque chose pour changer la date de dernière modication), ce qui provoque la recompilation du fichier.

J'vais essayer de voir d'où ça peut venir.

EDIT :
En fait, dans GearCreation et dans WeaponCreation, on avait des classes ayant le même nom (MatListener, ImageComponent).
Javac sauvegarde ces classes là dans des fichiers .class normaux, comme MatListener.class.
Le problème, c'est qu'on avait 2 MatListener différents (donc constructeurs différents). C'est pour ça que lorsque WeaponCreation fonctionnait, GearCreation ne fonctionnait pas.

Pour résoudre ça, j'ai créé une MatList dans le package "mj" (à déplacer dans gui/ si on s'en sert pour l'interface MJ un jour), et j'ai renommé "TypeListener" en "GearTypeListener" et "WeaponTypeListener".
Au passage, j'ai amélioré un peu le Makefile (plus rapide, et affichage plus clair).

_________________
Cordialement,
Anger Jérémy.
avatar
Jérémy
Analyste-programmeur
Analyste-programmeur

Messages : 79

Feuille de personnage
Nom du personnage:

http://projetdd.etudions.net

Revenir en haut Aller en bas

Re: Rapporter un bug

Message par Djidane Zokawa le Jeu 24 Jan - 13:24

J'ai un bug qui arrive sur les déplacements de créatures (généralement les grosses).
1 - Soit le déplacement ne s'effectue pas malgré qu'on a demandé le déplacement
2 - le déplacement est effectué et des fois la liste des pos atteignables ne se refresh pas
3 - d'autres bugs mineurs non visibles...

4 - (pas un bug mais à corriger) Le joueur n'est pas censé pouvoir voir la liste des pos atteignables des créatures adversaires. Il faut le cacher.

_________________
Oyo, ici Alban Brunet !
[Vous devez être inscrit et connecté pour voir ce lien]
avatar
Djidane Zokawa
Analyste-programmeur
Analyste-programmeur

Messages : 74

Feuille de personnage
Nom du personnage:

Revenir en haut Aller en bas

Re: Rapporter un bug

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum