OVH Cloud OVH Cloud

[Q] java.lang.VerifyError

2 réponses
Avatar
Valdo Tschantre
Aprés Enhancement, pour JPOX, de la classe suivante :


*DEBUT CODE*
public class ResellerBase extends UserBase implements Reseller {

public ResellerBase() {/*...*/}

public ResellerBase(String name) {/*...*/}

public synchronized void addClient(Client client)
throws UserNameAlreadyExistException {/*...*/}

public synchronized void addClient(Collection clients)
throws UserNameAlreadyExistException {/*...*/}

public synchronized void emptyClient() {/*...*/}

public synchronized Collection getClient() {/*...*/}

public synchronized Client getClient(String name) {/*...*/}

public synchronized void removeClient(String name) {/*...*/}
}
*FIN CODE*


l'erreur ci-dessous est levait avant même l'entrée dans un main().


*DEBUT MESSAGE*
Exception in thread "main" java.lang.VerifyError: class
kitsune.user.ResellerBase overrides final method .
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
at kitsune.user.Users.newSuperReseller(Users.java:118)
at kitsune.user.Users.getSuperReseller(Users.java:66)
at kitsune.user.UserTest.main(UserTest.java:39)
*FIN MESSAGE*


Aucune des methodes de cette classe n'étant final dans ses supers
classes et autres interfaces, de quel methode final peut bien parler ce
message ? Et comment suprimer cette erreur ?


Merci,
Valdo.


--
valdo.tschantre@gmail-NOSPAM.com

2 réponses

Avatar
Olivier Thomann
Aucune des methodes de cette classe n'étant final dans ses supers
classes et autres interfaces, de quel methode final peut bien parler ce
message ? Et comment suprimer cette erreur ?
Ceci est un bug du compilateur. En gros, tu ne devrais jamais arriver à

une VerifyError. Le compilateur aurait dû trouver l'erreur avant.
Quel compilateur utilises-tu?
Peux-tu fournir un exemple complet mettant en évidence le problème?
--
Olivier

Avatar
Valdo Tschantre
Olivier Thomann wrote:
Ceci est un bug du compilateur. En gros, tu ne devrais jamais arriver à
une VerifyError. Le compilateur aurait dû trouver l'erreur avant.


En fait, il y avait une erreur dans un fichier .jdo pour JPOX (type
PersistenceCapable non spécifié pour une Map). Le /enhanser/ passait à
côté.

Merci Olivier,
Valdo.