I've run into a problem that has me scratching my head. On my local
machine my application is working fine but when I deploy to Unix I get
the following error. The jdk versions are:
Windows: 1.6.0_01
Unix: 1.6.0-b105
Any ideas?
java.lang.AssertionError: java.lang.VerifyError: (class: com/sensis/
ems/core/json/PrintHandler$$FastClassByGuice$$3ad0a517, method: invoke
signature: (ILjava
/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;) Inconsistent
stack height 1 != 2
at
com.google.inject.InjectorImpl.getImplicitBinding(InjectorImpl.java:
984)
at
com.google.inject.InjectorImpl.getInternalFactory(InjectorImpl.java:
308)
at
com.google.inject.InjectorImpl.getProvider(InjectorImpl.java:693)
at
com.google.inject.InjectorImpl.getProvider(InjectorImpl.java:689)
at
com.google.inject.InjectorImpl.getInstance(InjectorImpl.java:728)
at com.sensis.ems.core.json.JSONServlet.doGet(JSONServlet.java:
59)
at
com.sensis.ems.core.json.JSONServlet.doPost(JSONServlet.java:25)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:
709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:
802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
173)
at
com.sensis.ems.common.RequestCleanupFilter.doFilter(RequestCleanupFilter.java:
20)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
173)
at
com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:46)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
178)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
105)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
107)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
541)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
148)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:
869)
at org.apache.coyote.http11.Http11BaseProtocol
$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:
664)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:
527)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:
80)
at org.apache.tomcat.util.threads.ThreadPool
$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.VerifyError: (class: com/sensis/ems/core/json/
PrintHandler$$FastClassByGuice$$3ad0a517, method: invoke signature:
(ILjava/lang/Object;[L
java/lang/Object;)Ljava/lang/Object;) Inconsistent stack height 1 != 2
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:
2389)
at java.lang.Class.getConstructor0(Class.java:2699)
at java.lang.Class.getDeclaredConstructor(Class.java:1985)
at
com.google.inject.cglib.core.ReflectUtils.getConstructor(ReflectUtils.java:
244)
at
com.google.inject.cglib.core.ReflectUtils.newInstance(ReflectUtils.java:
220)
at com.google.inject.cglib.reflect.FastClass
$Generator.firstInstance(FastClass.java:76)
at
com.google.inject.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:
231)
at com.google.inject.cglib.reflect.FastClass
$Generator.create(FastClass.java:64)
at
com.google.inject.util.GuiceFastClass.create(GuiceFastClass.java:38)
at
com.google.inject.util.GuiceFastClass.create(GuiceFastClass.java:30)
at
com.google.inject.DefaultConstructionProxyFactory.get(DefaultConstructionProxyFactory.java:
59)
at
com.google.inject.ProxyFactory.createConstructionProxy(ProxyFactory.java:
92)
at com.google.inject.ProxyFactory$1.create(ProxyFactory.java:
57)
at com.google.inject.ProxyFactory$1.create(ProxyFactory.java:
56)
at
com.google.inject.util.ReferenceCache.create(ReferenceCache.java:53)
at
com.google.inject.util.AbstractReferenceCache.internalCreate(AbstractReferenceCache.java:
59)
at
com.google.inject.util.AbstractReferenceCache.get(AbstractReferenceCache.java:
116)
at com.google.inject.ProxyFactory.get(ProxyFactory.java:204)
at
com.google.inject.ConstructorInjector.<init>(ConstructorInjector.java:
41)
at com.google.inject.InjectorImpl$7.create(InjectorImpl.java:
601)
at com.google.inject.InjectorImpl$7.create(InjectorImpl.java:
594)
at
com.google.inject.util.ReferenceCache.create(ReferenceCache.java:53)
at
com.google.inject.util.AbstractReferenceCache.internalCreate(AbstractReferenceCache.java:
59)
at
com.google.inject.util.AbstractReferenceCache.get(AbstractReferenceCache.java:
116)
at
com.google.inject.InjectorImpl.getConstructor(InjectorImpl.java:765)
at
com.google.inject.InjectorImpl.getImplicitBinding(InjectorImpl.java:
973)
... 29 more
No as I'd have a bit of setup to do to get that all sorted out. The
bytecode should really be any different I wouldn't have thought. I'll
give it a shot though.
public class WrappingParent {
public static class MyNestedNotInnerClass {
}
}
I believe this came up some time ago as well, I can't remember if the
problem was fixed (inner classes objects have a default reference to
an instance of the enclosing class).
Static nested classes are on the same level as top-level classes, only
namespaced differently.
Dhanji.
Bytecode verification has changed in Java 6.
One interesting thing I've noticed is that guice the source code in
subversion compiles under jdk 1.5 but not under jdk 1.6. Under 1.6 I
get the following error:
D:\projects\guice-head>ant
Buildfile: build.xml
compile:
[javac] Compiling 97 source files to D:\projects\guice-head\build\classes
[javac] D:\projects\guice-head\src\com\google\inject\InjectorImpl.java:394:
reference to visit is ambiguous, both method
visit(com.google.inject.spi.ConstantBinding<? extends T>) in
com.google.inject.spi.BindingVisitor<capture#952 of ?
super T> and method
visit(com.google.inject.spi.ConvertedConstantBinding<? extends T>) in
com.google.inject.spi.BindingVisitor<capture#952 of ? super T> match
[javac] bindingVisitor.visit(this);
[javac] ^
[javac] 1 error
BUILD FAILED
D:\projects\guice-head\common.xml:15: Compile failed; see the compiler
error output for details.
Not sure what to make of "<capture#952 of ?super T>".
On 26/11/2007, Brian Slesinsky <bsles...@gmail.com> wrote:
>