CDV ❯ Seems like we run into an ASM exception when instrumenting a specific class from a ColdFusion package
-
Bug
-
Status: Closed
-
2 Major
-
Resolution: Cannot Reproduce
-
DSO:L1
-
-
drb
-
Reporter: siyer
-
July 11, 2007
-
0
-
Watchers: 1
-
July 27, 2012
-
October 23, 2008
Description
Might be related to http://jira.terracotta.org/jira/browse/CDV-286
java.lang.IllegalStateException: Unknown local variable 2 : value Ljava/lang/Object; at com.tc.asm.commons.LocalVariablesSorter.visitLocalVariable(LocalVariablesSorter.java:156) at com.tc.asm.ClassReader.accept(ClassReader.java:1429) at com.tc.asm.ClassReader.accept(ClassReader.java:394) at com.tc.object.bytecode.hook.impl.DefaultWeavingStrategy.transform(DefaultWeavingStrategy.java:269) at com.tc.object.bytecode.hook.impl.DSOContextImpl.preProcess(DSOContextImpl.java:137) at com.tc.object.bytecode.hook.impl.ClassProcessorHelper.defineClass0Pre(ClassProcessorHelper.java:439) at java.lang.ClassLoader.defineClass(ClassLoader.java:620) at java.security.SecureClassLoader.defineClass(Unknown Source) at coldfusion.runtime.TemplateClassLoader.findClass(TemplateClassLoader.java:144) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at coldfusion.runtime.TemplateClassLoader$1.fetch(TemplateClassLoader.java:352) at coldfusion.util.LruCache.get(LruCache.java:180) at coldfusion.runtime.TemplateClassLoader$TemplateCache.fetchSerial(TemplateClassLoader.java:256) at coldfusion.util.AbstractCache.fetch(AbstractCache.java:5 at coldfusion.util.SoftCache.get(SoftCache.java:81) at coldfusion.runtime.TemplateClassLoader.findClass(TemplateClassLoader.java:477) at coldfusion.filter.PathFilter.invoke(PathFilter.java:79) at coldfusion.filter.LicenseFilter.invoke(LicenseFilter.java:27) at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70) at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:2 at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:3 at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46) at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:3 at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22) at coldfusion.CfmServlet.service(CfmServlet.java:175) at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42) at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.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:17 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 com.tc.tomcat55.session.SessionValve55.tcInvoke(SessionValve55.java:61) at com.tc.tomcat55.session.SessionValve55.invoke(SessionValve55.java:4 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:14 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(Unknown Source) 07/11 10:04:29 Error [http-9081-Processor4] - Unknown local variable 2 : value Ljava/lang/Object; The specific sequence of files included or processed is: C:\environment2\terracotta\terracotta-2.4-stable1\tools\sessions\configurator-sandbox\tomcat5.5\9081\webapps\cfusion.war\test.cfm’’ java.lang.IllegalStateException: Unknown local variable 2 : value Ljava/lang/Object; at com.tc.asm.commons.LocalVariablesSorter.visitLocalVariable(LocalVariablesSorter.java:156) at com.tc.asm.ClassReader.accept(ClassReader.java:1429) at com.tc.asm.ClassReader.accept(ClassReader.java:394) at com.tc.object.bytecode.hook.impl.DefaultWeavingStrategy.transform(DefaultWeavingStrategy.java:269) at com.tc.object.bytecode.hook.impl.DSOContextImpl.preProcess(DSOContextImpl.java:137) at com.tc.object.bytecode.hook.impl.ClassProcessorHelper.defineClass0Pre(ClassProcessorHelper.java:439) at java.lang.ClassLoader.defineClass(ClassLoader.java:620) at java.security.SecureClassLoader.defineClass(Unknown Source) at coldfusion.runtime.TemplateClassLoader.findClass(TemplateClassLoader.java:144) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at coldfusion.runtime.TemplateClassLoader$1.fetch(TemplateClassLoader.java:352) at coldfusion.util.LruCache.get(LruCache.java:180) at coldfusion.runtime.TemplateClassLoader$TemplateCache.fetchSerial(TemplateClassLoader.java:256) at coldfusion.util.AbstractCache.fetch(AbstractCache.java:5 at coldfusion.util.SoftCache.get(SoftCache.java:81) at coldfusion.runtime.TemplateClassLoader.findClass(TemplateClassLoader.java:477) at coldfusion.runtime.TemplateClassLoader.newInstance(TemplateClassLoader.java:434) at coldfusion.tagext.lang.IncludeTag.setTemplate(IncludeTag.java:156) at coldfusion.tagext.lang.IncludeTag.setTemplatePath(IncludeTag.java:91) at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:64) at coldfusion.filter.CfincludeFilter.include(CfincludeFilter.java:33) at coldfusion.filter.ExceptionFilter.runBuiltInHandler(ExceptionFilter.java:552) at coldfusion.filter.ExceptionFilter.handleException(ExceptionFilter.java:329) at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:84) at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:2 at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:3 at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46) at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:3 at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22) at coldfusion.CfmServlet.service(CfmServlet.java:175) at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42) at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.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:17 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 com.tc.tomcat55.session.SessionValve55.tcInvoke(SessionValve55.java:61) at com.tc.tomcat55.session.SessionValve55.invoke(SessionValve55.java:4 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:14 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(Unknown Source) 07/11 10:04:29 Error [http-9081-Processor4] - Exception thrown by error-handling template: 07/11 10:04:29 Error [http-9081-Processor4] - Unknown local variable 2 : value Ljava/lang/Object; The specific sequence of files included or processed is: C:\environment2\terracotta\terracotta-2.4-stable1\tools\sessions\configurator-sandbox\tomcat5.5\9081\webapps\cfusion.war\WEB-INF\exception\java\lang\Exception.cfm’’ Exception thrown by error-handling template: java.lang.IllegalStateException: Unknown local variable 2 : value Ljava/lang/Object; at com.tc.asm.commons.LocalVariablesSorter.visitLocalVariable(LocalVariablesSorter.java:156) at com.tc.asm.ClassReader.accept(ClassReader.java:1429) at com.tc.asm.ClassReader.accept(ClassReader.java:394) at com.tc.object.bytecode.hook.impl.DefaultWeavingStrategy.transform(DefaultWeavingStrategy.java:269) at com.tc.object.bytecode.hook.impl.DSOContextImpl.preProcess(DSOContextImpl.java:137) at com.tc.object.bytecode.hook.impl.ClassProcessorHelper.defineClass0Pre(ClassProcessorHelper.java:439) at java.lang.ClassLoader.defineClass(ClassLoader.java:620) at java.security.SecureClassLoader.defineClass(Unknown Source) at coldfusion.runtime.TemplateClassLoader.findClass(TemplateClassLoader.java:144) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at coldfusion.runtime.TemplateClassLoader$1.fetch(TemplateClassLoader.java:352) at coldfusion.util.LruCache.get(LruCache.java:180) at coldfusion.runtime.TemplateClassLoader$TemplateCache.fetchSerial(TemplateClassLoader.java:256) at coldfusion.util.AbstractCache.fetch(AbstractCache.java:5 at coldfusion.util.SoftCache.get(SoftCache.java:81) at coldfusion.runtime.TemplateClassLoader.findClass(TemplateClassLoader.java:477) at coldfusion.filter.PathFilter.invoke(PathFilter.java:79) at coldfusion.filter.LicenseFilter.invoke(LicenseFilter.java:27) at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70) at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:2 at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:3 at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46) at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:3 at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22) at coldfusion.CfmServlet.service(CfmServlet.java:175) at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42) at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.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:17 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 com.tc.tomcat55.session.SessionValve55.tcInvoke(SessionValve55.java:61) at com.tc.tomcat55.session.SessionValve55.invoke(SessionValve55.java:4 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:14 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(Unknown Source)
Comments
Eugene Kuleshov 2007-07-11
Sreenivasan Iyer 2007-07-11
” The Tomcat version is the one used as default by terracotta, Version 5.5. The JDK is again the one provided within terracotta C:\environment2\terracotta\terracotta-2.4-stable1\jre. (1.5 I suppose)…I am using the terracotta 2.4-stable1 “
Eugene Kuleshov 2007-07-11
Iyer, it got to be some class from the user app of framework that is being loaded…
Tim Eck 2007-07-11
You might be able to figure out what class is being loaded by decompiling the place where the loadClass starts:
coldfusion.runtime.TemplateClassLoader$1.fetch(TemplateClassLoader.java:352)
A copy of that class might help (note: it is the anonymous inner class, not TemplateClassLoader)
Fiona OShea 2007-07-12
Iyer assigning back to you to follow up on Tim and Eugene’s comments
Tim Eck 2007-07-12
I ran the code from coldfusion mx7 through our instrumentation – didn’t reproduce this issue. Now that I look at the CF code, the bytecode issue might actually be in an application class. If one turns on instrumentation logging in dso, you should be able to figure out which class is causing the problem (it will be last one reported as “… included for instrumentation”).
We’d still want to see the problematic class to figure out why it trips up the LocalVariableSorter
Fiona OShea 2008-01-11
Any updates on this?
Can we find out what the class is and get the bytecode?