spring-loaded icon indicating copy to clipboard operation
spring-loaded copied to clipboard

RuntimeException during startup: Method code too large!

Open caraboides opened this issue 11 years ago • 4 comments

During start up of my application i see a RuntimeException at org.springsource.loaded.agent.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:104) cause by java.lang.RuntimeException: Method code too large!

java.lang.RuntimeException: Reloading agent exited via exception, please raise a jira at org.springsource.loaded.agent.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:104) at sun.instrument.TransformerManager.transform(TransformerManager.java:188) at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:424) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 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 org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:415) at runjettyrun.ProjectClassLoader.loadClass(ProjectClassLoader.java:88) at de.dpx.hunter.business.core.i18n.SmsI18nKeys8.(SmsI18nKeys8.java:22) at de.dpx.hunter.business.core.email.system.SystemMailType.(SystemMailType.java:234) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:190) at com.sun.proxy.$Proxy406.(Unknown Source) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at java.lang.reflect.Proxy.newInstance(Proxy.java:764) at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:755) at org.springframework.aop.framework.JdkDynamicAopProxy.getProxy(JdkDynamicAopProxy.java:119) at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:110) at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.createProxy(AbstractAutoProxyCreator.java:473) at de.dpx.hunter.business.core.common.monitoring.HunterPerformanceMonitoringAutoProxyCreator.createProxy(HunterPerformanceMonitoringAutoProxyCreator.java) at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:359) at de.dpx.hunter.business.core.common.monitoring.HunterPerformanceMonitoringAutoProxyCreator.wrapIfNecessary(HunterPerformanceMonitoringAutoProxyCreator.java) at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:319) at de.dpx.hunter.business.core.common.monitoring.HunterPerformanceMonitoringAutoProxyCreator.postProcessAfterInitialization(HunterPerformanceMonitoringAutoProxyCreator.java) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:412) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1492) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:607) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479) at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:383) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112) at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:733) at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:233) at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1222) at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:676) at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:455) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:90) at org.eclipse.jetty.server.Server.doStart(Server.java:261) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) at runjettyrun.Bootstrap.main(Bootstrap.java:82) Caused by: java.lang.RuntimeException: Method code too large! at sl.org.objectweb.asm.MethodWriter.a(Unknown Source) at sl.org.objectweb.asm.ClassWriter.toByteArray(Unknown Source) at org.springsource.loaded.ReloadableType$MergedRewrite$ChainedAdapters.getBytes(ReloadableType.java:872) at org.springsource.loaded.ReloadableType$MergedRewrite.rewrite(ReloadableType.java:852) at org.springsource.loaded.ReloadableType.rewriteCallSitesAndDefine(ReloadableType.java:825) at org.springsource.loaded.ReloadableType.(ReloadableType.java:155) at org.springsource.loaded.TypeRegistry.addType(TypeRegistry.java:926) at org.springsource.loaded.agent.SpringLoadedPreProcessor.preProcess(SpringLoadedPreProcessor.java:298) at org.springsource.loaded.agent.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:102) ... 56 more

caraboides avatar Sep 23 '14 08:09 caraboides

The max size for code in a method is 64k. We add a lot of byte code during load time as the types are modified. If you have big methods already, the limit can get blown. This can be properly handled by breaking the method into pieces at an appropriate boundary but unfortunately right now it is not handled.

aclement avatar Sep 25 '14 20:09 aclement

I get this exception when I run on a certain computer, but not when the same code is run on many other computers. Any ideas why that would happen?

| Error java.lang.RuntimeException: Reloading agent exited via exception, please raise a jira
| Error         at org.springsource.loaded.agent.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:104)
| Error         at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
| Error         at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:424)
| Error         at java.lang.ClassLoader.defineClass1(Native Method)
| Error         at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
| Error         at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
| Error         at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
| Error         at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
| Error         at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
| Error         at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
| Error         at java.security.AccessController.doPrivileged(Native Method)
| Error         at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
| Error         at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
| Error         at java.lang.ClassLoader.loadClass(ClassLoader.java:412)
| Error         at org.grails.plugins.tomcat.ParentDelegatingClassLoader.loadClass(ParentDelegatingClassLoader.java)
| Error         at java.lang.ClassLoader.loadClass(ClassLoader.java:412)
| Error         at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:655)
| Error         at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:765)
| Error         at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:753)
| Error         at org.codehaus.groovy.grails.commons.DefaultGrailsApplication.<init>(DefaultGrailsApplication.java:123)
| Error         at org.codehaus.groovy.grails.commons.GrailsApplicationFactoryBean.afterPropertiesSet(GrailsApplicationFactoryBean.java:99)
| Error         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1612)
| Error         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1549)
| Error         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
| Error         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
| Error         at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302)
| Error         at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228
)
| Error         at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298)
| Error         at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
| Error         at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:684)
| Error         at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760)
| Error         at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
| Error         at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)
| Error         at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
| Error         at org.codehaus.groovy.grails.web.context.GrailsContextLoaderListener.initWebApplicationContext(GrailsContextLoaderListener.java:71)
| Error         at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
| Error         at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4992)
| Error         at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5490)
| Error         at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
| Error         at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
| Error         at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
| Error         at java.util.concurrent.FutureTask.run(FutureTask.java:262)
| Error         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
| Error         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
| Error         at java.lang.Thread.run(Thread.java:745)
| Error Caused by: java.lang.RuntimeException: Method code too large!
| Error         at sl.org.objectweb.asm.MethodWriter.a(Unknown Source)
| Error         at sl.org.objectweb.asm.ClassWriter.toByteArray(Unknown Source)
| Error         at org.springsource.loaded.ReloadableType$MergedRewrite$ChainedAdapters.getBytes(ReloadableType.java:872)
| Error         at org.springsource.loaded.ReloadableType$MergedRewrite.rewrite(ReloadableType.java:852)
| Error         at org.springsource.loaded.ReloadableType.rewriteCallSitesAndDefine(ReloadableType.java:825)
| Error         at org.springsource.loaded.ReloadableType.<init>(ReloadableType.java:155)
| Error         at org.springsource.loaded.TypeRegistry.addType(TypeRegistry.java:926)
| Error         at org.springsource.loaded.agent.SpringLoadedPreProcessor.preProcess(SpringLoadedPreProcessor.java:298)
| Error         at org.springsource.loaded.agent.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:102)
| Error         ... 44 more

Anyone know of a fix? I am also getting this issue and I really don't have very large methods anywhere. Anyone have any good debugging tips?

tgsoverly avatar Jul 03 '16 20:07 tgsoverly

Hi everyone! Is anybody know how to fix this problem?

vnovakovskyi avatar Nov 07 '17 08:11 vnovakovskyi