La compréhension de la façon de résoudre “Incompatible stackmap images” exception

J'obtiens une exception au démarrage de l'application web que guice est d'essayer de construire la classe.

java.lang.VerifyError: Inconsistent stackmap frames at branch target 2770 in method com.aptusi.apps.magazine.api.servlet.internal.EditorServlet.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljava/lang/String;Lcom/aptusi/persistence/runtime/framework/DboSession;)V at offset 200
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2483)
at java.lang.Class.getDeclaredConstructors(Class.java:1891)
at com.google.inject.spi.InjectionPoint.forConstructorOf(InjectionPoint.java:243)
at com.google.inject.internal.ConstructorBindingImpl.create(ConstructorBindingImpl.java:96)
at com.google.inject.internal.InjectorImpl.createUninitializedBinding(InjectorImpl.java:629)
at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:845)
at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:772)
at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:256)
at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:205)
at com.google.inject.internal.InjectorImpl.getBinding(InjectorImpl.java:146)
at com.google.inject.internal.InjectorImpl.getBinding(InjectorImpl.java:66)
at com.google.inject.servlet.ServletDefinition.init(ServletDefinition.java:103)
at com.google.inject.servlet.ManagedServletPipeline.init(ManagedServletPipeline.java:82)
at com.google.inject.servlet.ManagedFilterPipeline.initPipeline(ManagedFilterPipeline.java:102)
at com.google.inject.servlet.GuiceFilter.init(GuiceFilter.java:172)`

Je sais à propos de la -XX:-UseSplitVerifier et -noverify options jvm, mais je ne veux pas l'utiliser comme je veux m'assurer que tout le code de ce projet est d'au moins la version java 7.

Pour ce faire, Il serait utile de comprendre d'où vient exactement ce qui se passe dans mon code, il n'est pas clair pour moi ce que le décalage de 200 mentionné est mais peut-il être lié à un numéro de ligne?

Aussi personne ne sait d'une manière que je peux trouver les versions de java de toutes les classes sur mon chemin de classe, je suis en utilisant maven donc il y a beaucoup de dépendances, donc je suis à la recherche d'un moyen automatisé de constatation des classes sur le chemin de la classe qui ont été compilées dans une moindre java la version 1.7?

OriginalL'auteur PiersyP | 2013-10-01