GithubHelp home page GithubHelp logo

spring-projects / spring-loaded Goto Github PK

View Code? Open in Web Editor NEW
2.7K 205.0 510.0 34.4 MB

Java agent that enables class reloading in a running JVM

License: Apache License 2.0

Java 98.71% Groovy 1.29% Shell 0.01%

spring-loaded's Introduction

Welcome to Spring-Loaded

What is Spring Loaded?

Spring Loaded is a JVM agent for reloading class file changes whilst a JVM is running. It transforms classes at loadtime to make them amenable to later reloading. Unlike 'hot code replace' which only allows simple changes once a JVM is running (e.g. changes to method bodies), Spring Loaded allows you to add/modify/delete methods/fields/constructors. The annotations on types/methods/fields/constructors can also be modified and it is possible to add/remove/change values in enum types.

Spring Loaded is usable on any bytecode that may run on a JVM, and is actually the reloading system used in Grails 2,3,4 (on java 8).

Installation

1.3.0 has now been released!

1.3.0 Enables support for Grails 4.0.4+ Running on Java 8 (Java 11 is not yet supported and is in Development)

1.2.6 snapshots are in this repo area (grab the most recently built .jar): repo.spring.io

The download is the agent jar and needs no further unpacking before use.

Running with reloading

java -javaagent:<pathTo>/springloaded-{VERSION}.jar -noverify SomeJavaClass

The verifier is being turned off because some of the bytecode rewriting stretches the meaning of some of the bytecodes - in ways the JVM doesn't mind but the verifier doesn't like. Once up and running what effectively happens is that any classes loaded from jar files (dependencies) are not treated as reloadable, whilst anything loaded from .class files on disk is made reloadable. Once loaded the .class file will be watched (once a second) and should a new version appear SpringLoaded will pick it up. Any live instances of that class will immediately see the new form of the object, the instances do not need to be discarded and recreated.

No doubt that raises a lot of questions and hopefully a proper FAQ will appear here shortly! But in the meantime, here are some basic Qs and As:

Q. Does it reload anything that might change in a class file? A. No, you can't change the hierarchy of a type. Also there are certain constructor patterns of usage it can't actually handle right now.

Q. With objects changing shape, what happens with respect to reflection? A. Reflection results change over time as the objects are reloaded. For example, modifying a class with a new method and calling getDeclaredMethods() after reloading has occurred will mean you see the new method in the results. But this does mean if you have existing caches in your system that stash reflective information assuming it never changes, those will need to be cleared after a reload.

Q. How do I know when a reload has occurred so I can clear my state? A. You can write a plugin that is called when reloads occur and you can then take the appropriate action. Create an implementation of ReloadEventProcessorPlugin and then register it via SpringLoadedPreProcessor.registerGlobalPlugin(plugin). (There are other ways to register plugins, which will hopefully get some documentation!)

Q. What's the state of the codebase? A. The technology is successfully being used by Grails for reloading. It does need some performance work and a few smacks with a refactoring hammer. It needs upgrading here and there to tolerate the invokedynamic instruction and associated new constant pool entries that arrived in Java 7.

Working with the code

git clone https://github.com/spring-projects/spring-loaded

Once cloned there will be some projects suitable for import into eclipse. The main project and some test projects. One of the test projects is an AspectJ project (containing both Java and AspectJ code), and one is a Groovy project. To compile these test projects in Eclipse you will need the relevant eclipse plugins:

AJDT: update site: https://download.eclipse.org/tools/ajdt/42/dev/update Groovy-Eclipse: update site: https://dist.springsource.org/snapshot/GRECLIPSE/e4.2/

After importing them you can run the tests. There are two kinds of tests, hand crafted and generated. Running all the tests including the generated ones can take a while. To run just the hand crafted ones supply this to the JVM when launching the tests:

-Dspringloaded.tests.generatedTests=false

NOTE: When running the tests you need to pass -noverify to the JVM also.

Two launch configurations are already included if you are importing these projects into eclipse, which run with or without the generated tests.

A gradle build script is included, run './gradlew build' to rebuild the agent - it will be created as something like: springloaded/build/libs/springloaded-1.3.0.BUILD-SNAPSHOT.jar

Can I contribute?

Sure! This is based on the original Spring Source Project work done by Andy Clement. As Spring was moving away from spring-loaded in favor of spring-dev-tools (a more basic alternative), Community efforts were made to update spring-loaded to work in more recent builds of Grails.

spring-loaded's People

Contributors

aclement avatar bobbywarner avatar davydotcom avatar graemerocher avatar joeschweitzer avatar kaklakariada avatar lhartikk avatar liuzhengyang avatar rwinch avatar sam-ma avatar sdeleuze avatar semistrict avatar serceman avatar snicoll avatar spring-builds avatar spring-operator avatar stefaneggerstorfer avatar vcharmcaster avatar zyro23 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

spring-loaded's Issues

NSMError with inheritance and static methods and superclass in JAR-Archive

First thanks for the fast response. We tried the new development build springloaded-1.1.2.20130524.jar and found some issues. I hope my explanation is not too confusing.
This issue is close related to issue#5.
I will explain three different cases. Each of them have a common precondition:
The superclass A with the method getString() is located in a JAR-Archive!!!!

Case 1, superclass A is in a different package as B, class hierachie (B extends A) A<-B:
It behaves like described in issue#5
java.lang.NoSuchMethodError: B.getString()Ljava/lang/String:
B.getString() OR getString()

Works fine:
A.getString()

Case 2, superclass A is in a different package as AB and B, class hierachie(AB extends A, B extends AB)A<-AB<-B:
The call of B.getString() OR getString() fail! (A.getString() works fine)
Now recompilation of class B results in 100% CPU-usage and constantly increasing memory (monitored via jconsole)
Stack trace:
org.springsource.loaded.TypeRegistry.istcheck(TypeRegistry.java:1124)
ttt.B$$EO4DKlnM.callGetString(B.java:13)
ttt.B$$DO4DKlnM.callGetString(Unknown Source)
ttt.B.callGetString(B.java)
ttt.B.main(B.java:8)

case 3, superclass A is in the SAME package as AB and B:
The startup failed with java.lang.NoSuchFieldError. Startup without the agent works.

(B extends A) A<-B:
Exception in thread "main" java.lang.NoSuchFieldError: r$sfields
at ttt.B.(B.java)

(AB extends A, B extends AB)A<-AB<-B:
Exception in thread "main" java.lang.NoSuchFieldError: r$sfields
at ttt.AB.(AB.java)

Bildschirmfoto 2013-04-27 um 16 03 48
Bildschirmfoto 2013-04-27 um 16 04 45
Bildschirmfoto 2013-04-27 um 16 05 27

Agent instrumentation is slow

I just profiled the startup of a Grails 2.1.4 application in development mode. When running the application with reloading enabled, it takes 30 seconds longer to start than without (1 minute without, 1:30 with the agent enabled).

The profiling shows that most time is spent in ReflectiveInterceptor#jlrMethodInvoke.

Are there any plans to work on the performance of spring-loaded? I am coming from a Play framework project which takes just a few seconds to start up in development mode, and am quite shocked as to how long it takes for Grails to start.

Thanks!

reload throws Duplicated class defintion.

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:787)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1960)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:931)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1405)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1284)
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2317)
at java.lang.Class.getDeclaredFields(Class.java:1762)
at org.springsource.loaded.ri.ReflectiveInterceptor.jlClassGetDeclaredFields(ReflectiveInterceptor.java:1566)
at org.apache.catalina.loader.WebappClassLoader.clearReferences(WebappClassLoader.java:1702)
at org.apache.catalina.loader.WebappClassLoader.stop(WebappClassLoader.java:1575)
at org.apache.catalina.loader.WebappLoader.stop(WebappLoader.java:734)
at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4400)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4282)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:448)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1243)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
Caused by: org.springsource.loaded.ReloadException: Problem defining class common.dao.CategorySelectListDao__I
at org.springsource.loaded.TypeRegistry.defineClass(TypeRegistry.java:1074)
at org.springsource.loaded.ReloadableType.rewriteCallSitesAndDefine(ReloadableType.java:807)
at org.springsource.loaded.ReloadableType.(ReloadableType.java:151)
at org.springsource.loaded.TypeRegistry.addType(TypeRegistry.java:889)
at org.springsource.loaded.agent.SpringLoadedPreProcessor.preProcess(SpringLoadedPreProcessor.java:245)
at org.springsource.loaded.agent.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:102)
... 32 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor32.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.springsource.loaded.TypeRegistry.defineClass(TypeRegistry.java:1069)
... 37 more
Caused by: java.lang.LinkageError: loader (instance of org/apache/catalina/loader/WebappClassLoader): attempted duplicate class definition for name: "common/dao/CategorySelectListDao__I"
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:787)
at java.lang.ClassLoader.defineClass(ClassLoader.java:630)
... 41 more
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:787)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1960)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:931)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1405)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1284)
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2317)
at java.lang.Class.getDeclaredFields(Class.java:1762)
at org.springsource.loaded.ri.ReflectiveInterceptor.jlClassGetDeclaredFields(ReflectiveInterceptor.java:1566)
at org.apache.catalina.loader.WebappClassLoader.clearReferences(WebappClassLoader.java:1702)
at org.apache.catalina.loader.WebappClassLoader.stop(WebappClassLoader.java:1575)
at org.apache.catalina.loader.WebappLoader.stop(WebappLoader.java:734)
at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4400)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4282)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:448)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1243)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
Caused by: org.springsource.loaded.ReloadException: Problem defining class common.dao.CategorySelectListDao__I
at org.springsource.loaded.TypeRegistry.defineClass(TypeRegistry.java:1074)
at org.springsource.loaded.ReloadableType.rewriteCallSitesAndDefine(ReloadableType.java:807)
at org.springsource.loaded.ReloadableType.(ReloadableType.java:151)
at org.springsource.loaded.TypeRegistry.addType(TypeRegistry.java:889)
at org.springsource.loaded.agent.SpringLoadedPreProcessor.preProcess(SpringLoadedPreProcessor.java:245)
at org.springsource.loaded.agent.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:102)
... 32 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor32.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.springsource.loaded.TypeRegistry.defineClass(TypeRegistry.java:1069)
... 37 more
Caused by: java.lang.LinkageError: loader (instance of org/apache/catalina/loader/WebappClassLoader): attempted duplicate class definition for name: "/common/dao/CategorySelectListDao__I"
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:787)
at java.lang.ClassLoader.defineClass(ClassLoader.java:630)
... 41 more
WARN: The method class org.apache.commons.logging.impl.SLF4JLogFactory#release() was invoked.

JSR-223 & @Grab - No suitable ClassLoader found for grab

when trying to load a groovy script using @Grab with GroovyScriptEngineImpl in a grails app with reloading enabled, i get a exception from GrapeIvy saying "No suitable ClassLoader found for grab".
(https://github.com/groovy/groovy-core/blob/master/src/main/groovy/grape/GrapeIvy.groovy#L178)

if the app is run as run-war or as run-app without reloading (reloading: false as arg for the forked grails process), the same code works.

example code (similar to the stackoverflow post linked in the nabble post):

def manager = new javax.script.ScriptEngineManager()
def engine = manager.getEngineByName "groovy"
def script = """
    @Grab('commons-lang:commons-lang:2.6')
    import org.apache.commons.lang.StringUtils

    println StringUtils.join('a', 'b', 'c')
"""
engine.eval script

to reproduce, for example,

  • create an empty grails app an put the code into BootStrap.init
  • run-app --> exception
  • add reloading: false to BuildConfig.grails.project.fork.run
  • run-app --> "abc" is printed to stdout

for reference:
http://groovy.329449.n5.nabble.com/JSR-223-Grab-No-suitable-ClassLoader-found-for-grab-tp5718650.html

Bean injection doesn't work

I'm using:

If I inject an existing Bean in a controller, I get a NPE when accessing the Bean. I tried to inject it with @Inject and @Autowired.

I also tried with a simple Bean I created with

yo jhipster:service Boo

And Then just do a

@Inject BooService booService

Accessing the "booService" gives this stacktrace

[ERROR] org.springframework.boot.actuate.web.BasicErrorController - java.lang.NullPointerException
[ERROR] org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
java.lang.NullPointerException: null
at com.mycompany.myapp.web.rest.AccountResource$$EOVBDDKK.boo(AccountResource.java:87) ~[na:na]
at com.mycompany.myapp.web.rest.AccountResource$$DOVBDDKK.boo(Unknown Source) ~[na:na]
at com.mycompany.myapp.web.rest.AccountResource.boo(AccountResource.java) ~[classes/:na]
at com.mycompany.myapp.web.rest.AccountResource$$FastClassByCGLIB$$bb2cce5e$$EOVBDDKK.invoke() ~[na:na]
at com.mycompany.myapp.web.rest.AccountResource$$FastClassByCGLIB$$bb2cce5e$$DOVBDDKK.invoke(Unknown Source) ~[na:na]
at com.mycompany.myapp.web.rest.AccountResource$$FastClassByCGLIB$$bb2cce5e.invoke() ~[spring-core-4.0.1.RELEASE.jar:na]
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) ~[spring-core-4.0.1.RELEASE.jar:4.0.1.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:710) ~[spring-aop-4.0.1.RELEASE.jar:4.0.1.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) ~[spring-aop-4.0.1.RELEASE.jar:4.0.1.RELEASE]
at com.ryantenney.metrics.spring.TimedMethodInterceptor.invoke(TimedMethodInterceptor.java:46) ~[metrics-spring-3.0.0-RC4.jar:na]
at com.ryantenney.metrics.spring.TimedMethodInterceptor.invoke(TimedMethodInterceptor.java:32) ~[metrics-spring-3.0.0-RC4.jar:na]
at com.ryantenney.metrics.spring.AbstractMetricMethodInterceptor.invoke(AbstractMetricMethodInterceptor.java:58) ~[metrics-spring-3.0.0-RC4.jar:na]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.0.1.RELEASE.jar:4.0.1.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:643) ~[spring-aop-4.0.1.RELEASE.jar:4.0.1.RELEASE]
at com.mycompany.myapp.web.rest.AccountResource$$EnhancerByCGLIB$$b2586ace$$EOVBDDKK.boo() ~[na:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_51]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_51]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_51]
at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_51]
at org.springsource.loaded.ri.ReloadedTypeInvoker$2.invoke(ReloadedTypeInvoker.java:122) ~[springloaded-1.1.5-dev.jar:1.1.5.BUILD-SNAPSHOT]
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1283) ~[springloaded-1.1.5-dev.jar:1.1.5.BUILD-SNAPSHOT]
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:214) ~[spring-web-4.0.1.RELEASE.jar:4.0.1.RELEASE]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132) ~[spring-web-4.0.1.RELEASE.jar:4.0.1.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) ~[spring-webmvc-4.0.1.RELEASE.jar:4.0.1.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749) ~[spring-webmvc-4.0.1.RELEASE.jar:4.0.1.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:690) ~[spring-webmvc-4.0.1.RELEASE.jar:4.0.1.RELEASE]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83) ~[spring-webmvc-4.0.1.RELEASE.jar:4.0.1.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:945) ~[spring-webmvc-4.0.1.RELEASE.jar:4.0.1.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876) ~[spring-webmvc-4.0.1.RELEASE.jar:4.0.1.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961) ~[spring-webmvc-4.0.1.RELEASE.jar:4.0.1.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852) ~[spring-webmvc-4.0.1.RELEASE.jar:4.0.1.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) ~[tomcat-embed-core-7.0.47.jar:7.0.47]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) ~[spring-webmvc-4.0.1.RELEASE.jar:4.0.1.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) ~[tomcat-embed-core-7.0.47.jar:7.0.47]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) ~[tomcat-embed-core-7.0.47.jar:7.0.47]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) ~[tomcat-embed-core-7.0.47.jar:7.0.47]
at com.mycompany.myapp.web.filter.gzip.GZipServletFilter.doFilter(GZipServletFilter.java:46) ~[classes/:na]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) ~[tomcat-embed-core-7.0.47.jar:7.0.47]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) ~[tomcat-embed-core-7.0.47.jar:7.0.47]
at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) ~[metrics-servlet-3.0.1.jar:3.0.1]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) ~[tomcat-embed-core-7.0.47.jar:7.0.47]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) ~[tomcat-embed-core-7.0.47.jar:7.0.47]
at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilter(WebRequestTraceFilter.java:114) ~[spring-boot-actuator-1.0.0.RC1.jar:1.0.0.RC1]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) ~[tomcat-embed-core-7.0.47.jar:7.0.47]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) ~[tomcat-embed-core-7.0.47.jar:7.0.47]
at org.springframework.boot.actuate.autoconfigure.EndpointWebMvcAutoConfiguration$ApplicationContextFilterConfiguration$1.doFilterInternal(EndpointWebMvcAutoConfiguration.java:131) ~[spring-boot-actuator-1.0.0.RC1.jar:1.0.0.RC1]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) ~[spring-web-4.0.1.RELEASE.jar:4.0.1.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) ~[tomcat-embed-core-7.0.47.jar:7.0.47]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) ~[tomcat-embed-core-7.0.47.jar:7.0.47]
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77) ~[spring-web-4.0.1.RELEASE.jar:4.0.1.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) ~[spring-web-4.0.1.RELEASE.jar:4.0.1.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) ~[tomcat-embed-core-7.0.47.jar:7.0.47]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) ~[tomcat-embed-core-7.0.47.jar:7.0.47]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) ~[spring-security-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118) ~[spring-security-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84) ~[spring-security-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) ~[spring-security-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103) ~[spring-security-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) ~[spring-security-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146) ~[spring-security-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154) ~[spring-security-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) ~[spring-security-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199) ~[spring-security-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110) ~[spring-security-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:57) ~[spring-security-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) ~[spring-web-4.0.1.RELEASE.jar:4.0.1.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) ~[spring-security-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50) ~[spring-security-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) ~[spring-web-4.0.1.RELEASE.jar:4.0.1.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) ~[spring-security-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) ~[spring-security-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) ~[tomcat-embed-core-7.0.47.jar:7.0.47]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) ~[tomcat-embed-core-7.0.47.jar:7.0.47]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) ~[tomcat-embed-core-7.0.47.jar:7.0.47]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) [tomcat-embed-core-7.0.47.jar:7.0.47]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) [tomcat-embed-core-7.0.47.jar:7.0.47]
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:680) [tomcat-embed-core-7.0.47.jar:7.0.47]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) [tomcat-embed-core-7.0.47.jar:7.0.47]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) [tomcat-embed-core-7.0.47.jar:7.0.47]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) [tomcat-embed-core-7.0.47.jar:7.0.47]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) [tomcat-embed-core-7.0.47.jar:7.0.47]
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) [tomcat-embed-core-7.0.47.jar:7.0.47]
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) [tomcat-embed-core-7.0.47.jar:7.0.47]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1721) [tomcat-embed-core-7.0.47.jar:7.0.47]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1679) [tomcat-embed-core-7.0.47.jar:7.0.47]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_51]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_51]
at java.lang.Thread.run(Thread.java:744) [na:1.7.0_51]

Problem when reloading code calling super methods that are protected

Some class defines a protected method and this class is not reloadable.
If a subtype is reloaded and the reloaded code contains a super call to the protected method, the reloaded code will not run because it breaks visibility (the generated executor containing the new version of that code cannot see the protected method because it isn't in the same hierarchy).

The solution is to add super dispatchers to the subtype that expose that super method for access from elsewhere, then remap reloaded code to use the super dispatcher.

See GRAILS -10411

Where you i can set properties for your plugin

During profiling my app, i see what you plugin eat memory. I wan`t to reduce it(really big values ~300MB overhead). Where i can change settings of your plugin? I have more than 20000 classes and write them in "-noverify" is a bad idea

Spring Data JPA NoSuchMethodError after reloading

Sometimes when I modify some code, and then re-execute it I have some problems with the repositories interfaces implementation created by Spring Data JPA, ending up with exceptions like this:

java.lang.NoSuchMethodError: UtenteRepository.findOne(Ljava/io/Serializable;)Ljava/lang/Object;
at org.springsource.loaded.TypeRegistry.iincheck(TypeRegistry.java:1297)

Using:

 java version "1.7.0_21"
 Java(TM) SE Runtime Environment (build 1.7.0_21-b11)
 Java HotSpot(TM) Server VM (build 23.21-b01, mixed mode)

Agent exits due to ConcurrentModficiationException

Occasionally I see the dreaded Spring loaded agent exiting error which is caused by:

| Error Caused by: java.util.ConcurrentModificationException
| Error at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
| Error at java.util.AbstractList$Itr.next(AbstractList.java:343)
| Error at org.springsource.loaded.TypeRegistry.isReloadableTypeName(TypeRegistry.java:695)
| Error at org.springsource.loaded.agent.SpringLoadedPreProcessor.preProcess(SpringLoadedPreProcessor.java:160)
| Error at org.springsource.loaded.agent.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:102)
| Error ... 187 more

Tomcat 7.0.25 startup error

I've a webapp (Spring-3.1.0 + Struts 1.3.10 + JSF 2.1) which runs on Tomcat 7.0.25 with sun jdk 1.6.0_30.
After adding springloaded-1.1.5 javaagent to the tomcat vm parameters, the below exception is thrown and tomcat does not start.

INFO: Initializing Spring root WebApplicationContext
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:169)
at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:365)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2836)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1160)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1668)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1546)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:257)
at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:417)
at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1283)
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1254)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:576)
at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1331)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:317)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:396)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:612)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:446)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:384)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4779)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1568)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1558)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: com.teb.pusula.frmw.common.utils.StringUtil__I
at sl.org.objectweb.asm.ClassWriter.getCommonSuperClass(Unknown Source)
at sl.org.objectweb.asm.ClassWriter.a(Unknown Source)
at sl.org.objectweb.asm.Frame.a(Unknown Source)
at sl.org.objectweb.asm.Frame.a(Unknown Source)
at sl.org.objectweb.asm.MethodWriter.visitMaxs(Unknown Source)
at sl.org.objectweb.asm.ClassReader.accept(Unknown Source)
at sl.org.objectweb.asm.ClassReader.accept(Unknown Source)
at sl.org.objectweb.asm.ClassWriter.toByteArray(Unknown Source)
at org.springsource.loaded.ReloadableType$MergedRewrite$ChainedAdapters.getBytes(ReloadableType.java:856)
at org.springsource.loaded.ReloadableType$MergedRewrite.rewrite(ReloadableType.java:836)
at org.springsource.loaded.ReloadableType.rewriteCallSitesAndDefine(ReloadableType.java:809)
at org.springsource.loaded.ReloadableType.(ReloadableType.java:155)
at org.springsource.loaded.TypeRegistry.addType(TypeRegistry.java:909)
at org.springsource.loaded.agent.SpringLoadedPreProcessor.preProcess(SpringLoadedPreProcessor.java:283)
at org.springsource.loaded.agent.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:102)
... 33 more

1.1.4 and 1.1.5dev NPE ReloadableType.reloadProxiesIfNecessary

When I hit Control+S my class files go right to my WEB-INF/classes. I am using Tomcat-7.0.42.A.RELEASE included with TC Server. Using Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode). Tried with 1.1.4 and 1.1.5dev versions of the JARs.

java.lang.RuntimeException: FileWatcher caught serious error, see cause.
at org.springsource.loaded.agent.Watcher.determineChangesSince(FileSystemWatcher.java:230)
at org.springsource.loaded.agent.Watcher.run(FileSystemWatcher.java:205)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.NullPointerException
at org.springsource.loaded.ReloadableType.reloadProxiesIfNecessary(ReloadableType.java:456)
at org.springsource.loaded.ReloadableType.loadNewVersion(ReloadableType.java:398)
at org.springsource.loaded.TypeRegistry.loadNewVersion(TypeRegistry.java:808)
at org.springsource.loaded.agent.ReloadableFileChangeListener.fileChanged(ReloadableFileChangeListener.java:51)
at org.springsource.loaded.agent.Watcher.determineChangesSince(FileSystemWatcher.java:218)
... 2 more

Spring-data Repository not reloadable

Hi,

I often see this message on the console saying
GRAILS-7799: Subtype 'com.sun.proxy.$Proxy251' of reloadable type com.xxx.xxxRepository is not
reloadable: may not see changes reloaded in this hierarchy (please comment on th
at jira)

does this mean there is no JPA Repository support in spring-loaded? If so, I am willing to contribute, any pointers on where should I start.

NPE in TypeRegistry.loadPropertiesConfiguration

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:169)
    at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:365)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
    at org.drools.rule.JavaDialectRuntimeData$PackageClassLoader.fastFindClass(JavaDialectRuntimeData.java:570)
    at org.drools.util.CompositeClassLoader$CachingLoader.load(CompositeClassLoader.java:254)
    at org.drools.util.CompositeClassLoader$CachingLoader.load(CompositeClassLoader.java:237)
    at org.drools.util.CompositeClassLoader.loadClass(CompositeClassLoader.java:88)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    at org.drools.rule.JavaDialectRuntimeData.wire(JavaDialectRuntimeData.java:405)
    at org.drools.rule.JavaDialectRuntimeData.wire(JavaDialectRuntimeData.java:396)
    at org.drools.rule.JavaDialectRuntimeData.onBeforeExecute(JavaDialectRuntimeData.java:237)
    at org.drools.rule.DialectRuntimeRegistry.onBeforeExecute(DialectRuntimeRegistry.java:132)
    at org.drools.compiler.PackageBuilder.reloadAll(PackageBuilder.java:850)
    at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:803)
    at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:385)
    at org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:563)
    at org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:35)
    at hr.ispcard.lynx.model.rule.RuleEngine.createKnowledgeBaseFromRules(RuleEngine.java:140)
    at hr.ispcard.lynx.service.statistics.StatisticalRuleEngineManagerImpl.performStatisticalChecks(StatisticalRuleEngineManagerImpl.java:61)
    at hr.ispcard.lynx.service.StatisticsServiceImpl.performStatistics(StatisticsServiceImpl.java:65)
    at hr.ispcard.lynx.service.StatisticsServiceImpl.performStatistics(StatisticsServiceImpl.java:37)
    at hr.ispcard.lynxadmin.job.StatisticsCalculationJob.calculateForLnets(StatisticsCalculationJob.java:58)
    at hr.ispcard.lynxadmin.job.StatisticsCalculationJob.execute(StatisticsCalculationJob.java:44)
    at org.quartz.core.JobRunShell.run(JobRunShell.java:207)
    at org.springframework.scheduling.commonj.DelegatingWork.run(DelegatingWork.java:61)
    at de.myfoo.commonj.work.FooWorkItem.run(FooWorkItem.java:100)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:619)
Caused by: org.springsource.loaded.ReloadException: loadPropertiesConfiguration: Problem accessing springloaded.properties file resources
    at org.springsource.loaded.TypeRegistry.loadPropertiesConfiguration(TypeRegistry.java:524)
    at org.springsource.loaded.TypeRegistry.ensureConfigured(TypeRegistry.java:347)
    at org.springsource.loaded.TypeRegistry.<init>(TypeRegistry.java:206)
    at org.springsource.loaded.TypeRegistry.getTypeRegistryFor(TypeRegistry.java:279)
    at org.springsource.loaded.agent.SpringLoadedPreProcessor.preProcess(SpringLoadedPreProcessor.java:121)
    at org.springsource.loaded.agent.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:102)
    ... 31 more
Caused by: java.lang.NullPointerException
    at org.springsource.loaded.TypeRegistry.loadPropertiesConfiguration(TypeRegistry.java:494)
    ... 36 more

Referenced types reloaded don't seem to reference the same class as the parent classloader

Not sure where else to post this but I've been trying to hunt down inconsistent domain class reloading behavior in our Grails application. I'm the author of the Guard plugin which allows for reloading and re-running integration tests without restarting and domain objects are constant source of frustration, even with Grails 2.2.0.

I pulled the spring-loaded source and have been debugging to try and figure out what's going on. The basic scenario is like this:

I have a domain class Santa which references the Child class via a hasMany. Child also reference Santa. I'm not sure the GORM details are important other than Santa needs a Child class reference in order to compile.

If I modify a method on the Santa class, a FileSystemWatcher which has a URLClassLoader instance (and the majority of the watched classes) invokes callbacks to Grails to redecorate the GORM methods, etc. Everything is happy is for Santa.

However....b/c Santa has a Child and that child is also processed again by the classLoader, we also get a preProcess() for Child with a class loader type of GroovyClassLoader (parent of GrailsRootClassLoader). That class loader is not in the typeRegistry so we get a new entry and start a new FileSystemWatcher thread for Child with just a couple of classes (the Child object and the Child__I interface). Now, if I make a change to the Child object, I get a callback from the new FileSystemWatcher (with a name like [FileSystemWatcher: files=#3 cl=groovy.lang.GroovyClassLoader@3500b854]). Grails (and my plugin) instrument that class and everything seems to be fine except I don't think that's the actual class that Grails is using. None of the dynamic methods are available on the class (find, findAll, etc.) within the application and you start getting errors trying to do anything GORM related.

Incidentally, if you start by first modifying Child, everything is fine with Child but you will have the same problem with the Santa object.

I'm happy to keep digging into this but I'm afraid I would need a bit more guidance as I'm not sure if what I'm seeing is expected or not.

Rgds,
Aaron

GRAILS-7799 Exception - SpringBoot RC4 and springloaded-1.2.0.BUILD-SNAPSHOT.jar

I develop the project JHipster (https://github.com/jhipster/generator-jhipster) and yesterday I tried to upgrade our projet to 1.0.0.RC4 and I have an big issue when springloaded 1.2.0 is used (-javaagent:spring_loaded/springloaded-1.2.0.BUILD-SNAPSHOT.jar -noverify)

After adding an RolesAllowed annotation on method in a controller class and after compiling the class, I got an exception. If I change the version of spring-boot to RC3, I don't have the issue.

Here is the exception.
[ERROR] org.springframework.boot.actuate.web.BasicErrorController - java.lang.NullPointerException
GRAILS-7799: Subtype 'com.mycompany.myapp.web.rest.AccountResource$$EnhancerBySpringCGLIB$$efacef39' of reloadable type com.mycompany.myapp.web.rest.AccountResource is not reloadable: may not see changes reloaded in this hierarchy (please comment on that jira)
[ERROR] org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
java.lang.NullPointerException: null
at java.lang.Class.isAssignableFrom(Native Method) ~[na:1.7.0_51]
at org.springframework.web.servlet.mvc.method.annotation.ModelAndViewMethodReturnValueHandler.supportsReturnType(ModelAndViewMethodReturnValueHandler.java:47) ~[spring-webmvc-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.getReturnValueHandler(HandlerMethodReturnValueHandlerComposite.java:83) ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:69) ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:122) ~[spring-webmvc-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749) ~[spring-webmvc-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:690) ~[spring-webmvc-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83) ~[spring-webmvc-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:945) ~[spring-webmvc-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876) ~[spring-webmvc-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961) ~[spring-webmvc-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852) ~[spring-webmvc-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:620) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) ~[spring-webmvc-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
at com.mycompany.myapp.web.filter.gzip.GZipServletFilter.doFilter(GZipServletFilter.java:46) ~[classes/:na]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97) ~[metrics-servlet-3.0.2.jar:3.0.2]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilter(WebRequestTraceFilter.java:115) ~[spring-boot-actuator-1.0.0.RC4.jar:1.0.0.RC4]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
at org.springframework.boot.actuate.autoconfigure.EndpointWebMvcAutoConfiguration$ApplicationContextFilterConfiguration$1.doFilterInternal(EndpointWebMvcAutoConfiguration.java:128) ~[spring-boot-actuator-1.0.0.RC4.jar:1.0.0.RC4]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77) ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) ~[spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118) ~[spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84) ~[spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) ~[spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103) ~[spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) ~[spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146) ~[spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154) ~[spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) ~[spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199) ~[spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110) ~[spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:57) ~[spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) ~[spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50) ~[spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) ~[spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) ~[spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:683) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1721) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1679) [tomcat-embed-core-7.0.52.jar:7.0.52]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_51]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_51]
at java.lang.Thread.run(Thread.java:744) [na:1.7.0_51]

Frequent ArrayIndexOutOfBoundsExceptions

I'm seeing exceptions like this quite often:

java.lang.ArrayIndexOutOfBoundsException: 3210
at org.springsource.loaded.NameRegistry.getIdFor(NameRegistry.java:56)
at org.springsource.loaded.NameRegistry.getIdOrAllocateFor(NameRegistry.java:71)
at org.springsource.loaded.TypeRegistry.getTypeIdFor(TypeRegistry.java:769)
at org.springsource.loaded.MethodInvokerRewriter$RewriteClassAdaptor$RewritingMethodAdapter.rewritePUTSTATIC(MethodInvokerRewriter.java:866)
at org.springsource.loaded.MethodInvokerRewriter$RewriteClassAdaptor$RewritingMethodAdapter.visitFieldInsn(MethodInvokerRewriter.java:785)
at sl.org.objectweb.asm.ClassReader.accept(Unknown Source)
at sl.org.objectweb.asm.ClassReader.accept(Unknown Source)
at org.springsource.loaded.MethodInvokerRewriter.rewrite(MethodInvokerRewriter.java:330)

If adding new ctors and new fields to a type, the instance state manager can be left uninitialized on new instances

Reported via email.

If a new constructor is added then it is possible that future constructions of instances will avoid the logic that creates the instance state manager field in a type. The instance state manager is responsible for all fields that are added to a type (that were not in the original) or that have changed type since the initial load.

This meant if a new field and new ctor was added the caller might see an exception about an uninitialized state manager when attempting reflection on the new field.

Two possible ways to fix, generated yet more bytecode into the special constructors that represent reloaded (new) constructors or change the reflector logic that was looking for the field to initialize it if it hasn't already been set. I went with the latter.

NPE in FileSystemWatcher

java.lang.RuntimeException: FileWatcher caught serious error, see cause.
    at org.springsource.loaded.agent.Watcher.determineChangesSince(FileSystemWatcher.java:230)
    at org.springsource.loaded.agent.Watcher.run(FileSystemWatcher.java:205)
    at java.lang.Thread.run(Thread.java:679)
Caused by: java.lang.NullPointerException
    at org.springsource.loaded.ReloadableType.reloadProxiesIfNecessary(ReloadableType.java:456)
    at org.springsource.loaded.ReloadableType.loadNewVersion(ReloadableType.java:398)
    at org.springsource.loaded.TypeRegistry.loadNewVersion(TypeRegistry.java:808)
    at org.springsource.loaded.agent.ReloadableFileChangeListener.fileChanged(ReloadableFileChangeListener.java:51)

JBoss issue with SLF4J

Trying to use the latest build with jboss 5. I modified JAVA_OPTS in jBoss's run.sh file as seen at very end of this text..

Jboss starts ok, but when I deploy my add (via gradle script) I get the following issue:

Am I supposed to add something somewhere so that springloaded knows where my codebase is? e.g. like jrebel/rebel.xml

11:14:13,539 ERROR [STDERR] SLF4J: Class path contains multiple SLF4J bindings.
11:14:13,539 ERROR [STDERR] SLF4J: Found binding in [vfszip:/Developer/tools/jboss-5.1.0.GA/server/default/deploy/mbank.war/WEB-INF/lib/slf4j-jdk14-1.6.4.jar/org/slf4j/impl/StaticLoggerBinder.class]
11:14:13,539 ERROR [STDERR] SLF4J: Found binding in [vfszip:/Developer/tools/jboss-5.1.0.GA/common/lib/slf4j-jboss-logging.jar/org/slf4j/impl/StaticLoggerBinder.class]
11:14:13,539 ERROR [STDERR] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
11:14:13,719 ERROR [STDERR] java.lang.RuntimeException: Reloading agent exited via exception, please raise a jira
11:14:13,720 ERROR [STDERR] at org.springsource.loaded.agent.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:104)
11:14:13,720 ERROR [STDERR] at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
11:14:13,720 ERROR [STDERR] at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:424)
11:14:13,720 ERROR [STDERR] at java.lang.ClassLoader.defineClass1(Native Method)
11:14:13,720 ERROR [STDERR] at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
11:14:13,720 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
11:14:13,720 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
11:14:13,720 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
11:14:13,720 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:601)
11:14:13,720 ERROR [STDERR] at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1243)
11:14:13,720 ERROR [STDERR] at net.sf.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:384)
11:14:13,720 ERROR [STDERR] at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:219)
11:14:13,721 ERROR [STDERR] at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
11:14:13,721 ERROR [STDERR] at net.sf.cglib.proxy.Enhancer.create(Enhancer.java:285)
11:14:13,721 ERROR [STDERR] at org.springframework.aop.framework.Cglib2AopProxy.getProxy(Cglib2AopProxy.java:201)
11:14:13,721 ERROR [STDERR] at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:112)
11:14:13,721 ERROR [STDERR] at org.springframework.aop.scope.ScopedProxyFactoryBean.setBeanFactory(ScopedProxyFactoryBean.java:109)
11:14:13,721 ERROR [STDERR] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeAwareMethods(AbstractAutowireCapableBeanFactory.java:1475)
11:14:13,721 ERROR [STDERR] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1443)
11:14:13,721 ERROR [STDERR] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
11:14:13,721 ERROR [STDERR] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
11:14:13,721 ERROR [STDERR] at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
11:14:13,721 ERROR [STDERR] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
11:14:13,721 ERROR [STDERR] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
11:14:13,721 ERROR [STDERR] at org.springframework.beans.factory.support.AbstractBeanFactory.getTypeForFactoryBean(AbstractBeanFactory.java:1355)
11:14:13,721 ERROR [STDERR] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:710)
11:14:13,722 ERROR [STDERR] at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:519)
11:14:13,722 ERROR [STDERR] at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:319)
11:14:13,722 ERROR [STDERR] at org.springframework.beans.factory.BeanFactoryUtils.beanNamesForTypeIncludingAncestors(BeanFactoryUtils.java:185)
11:14:13,722 ERROR [STDERR] at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:833)
11:14:13,722 ERROR [STDERR] at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:790)
11:14:13,722 ERROR [STDERR] at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:707)
11:14:13,722 ERROR [STDERR] at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:478)
11:14:13,722 ERROR [STDERR] at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
11:14:13,722 ERROR [STDERR] at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:284)
11:14:13,722 ERROR [STDERR] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106)
11:14:13,722 ERROR [STDERR] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
11:14:13,722 ERROR [STDERR] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
11:14:13,722 ERROR [STDERR] at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
11:14:13,722 ERROR [STDERR] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
11:14:13,723 ERROR [STDERR] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
11:14:13,723 ERROR [STDERR] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
11:14:13,723 ERROR [STDERR] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
11:14:13,723 ERROR [STDERR] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
11:14:13,723 ERROR [STDERR] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
11:14:13,723 ERROR [STDERR] at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:384)
11:14:13,723 ERROR [STDERR] at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283)
11:14:13,723 ERROR [STDERR] at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
11:14:13,723 ERROR [STDERR] at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3910)
11:14:13,723 ERROR [STDERR] at org.apache.catalina.core.StandardContext.start(StandardContext.java:4393)
11:14:13,723 ERROR [STDERR] at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:310)
11:14:13,723 ERROR [STDERR] at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:142)
11:14:13,723 ERROR [STDERR] at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:461)
11:14:13,724 ERROR [STDERR] at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118)
11:14:13,724 ERROR [STDERR] at org.jboss.web.deployers.WebModule.start(WebModule.java:97)
11:14:13,724 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
11:14:13,724 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
11:14:13,724 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
11:14:13,724 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:601)
11:14:13,724 ERROR [STDERR] at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1243)
11:14:13,724 ERROR [STDERR] at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
11:14:13,724 ERROR [STDERR] at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
11:14:13,724 ERROR [STDERR] at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
11:14:13,724 ERROR [STDERR] at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
11:14:13,724 ERROR [STDERR] at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
11:14:13,724 ERROR [STDERR] at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206)
11:14:13,724 ERROR [STDERR] at $Proxy38.start(Unknown Source)
11:14:13,724 ERROR [STDERR] at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42)
11:14:13,725 ERROR [STDERR] at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37)
11:14:13,725 ERROR [STDERR] at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
11:14:13,725 ERROR [STDERR] at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
11:14:13,725 ERROR [STDERR] at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
11:14:13,725 ERROR [STDERR] at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
11:14:13,725 ERROR [STDERR] at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:286)
11:14:13,725 ERROR [STDERR] at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
11:14:13,725 ERROR [STDERR] at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
11:14:13,725 ERROR [STDERR] at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
11:14:13,725 ERROR [STDERR] at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
11:14:13,725 ERROR [STDERR] at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
11:14:13,725 ERROR [STDERR] at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
11:14:13,725 ERROR [STDERR] at org.jboss.system.ServiceController.doChange(ServiceController.java:688)
11:14:13,725 ERROR [STDERR] at org.jboss.system.ServiceController.start(ServiceController.java:460)
11:14:13,726 ERROR [STDERR] at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:163)
11:14:13,726 ERROR [STDERR] at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:99)
11:14:13,726 ERROR [STDERR] at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:46)
11:14:13,726 ERROR [STDERR] at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62)
11:14:13,726 ERROR [STDERR] at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)
11:14:13,726 ERROR [STDERR] at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)
11:14:13,726 ERROR [STDERR] at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)
11:14:13,726 ERROR [STDERR] at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)
11:14:13,726 ERROR [STDERR] at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1178)
11:14:13,726 ERROR [STDERR] at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)
11:14:13,726 ERROR [STDERR] at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
11:14:13,726 ERROR [STDERR] at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
11:14:13,726 ERROR [STDERR] at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
11:14:13,726 ERROR [STDERR] at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
11:14:13,726 ERROR [STDERR] at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
11:14:13,726 ERROR [STDERR] at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
11:14:13,726 ERROR [STDERR] at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
11:14:13,726 ERROR [STDERR] at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
11:14:13,726 ERROR [STDERR] at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:702)
11:14:13,726 ERROR [STDERR] at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117)
11:14:13,726 ERROR [STDERR] at org.jboss.system.server.profileservice.hotdeploy.HDScanner.scan(HDScanner.java:362)
11:14:13,727 ERROR [STDERR] at org.jboss.system.server.profileservice.hotdeploy.HDScanner.run(HDScanner.java:255)
11:14:13,727 ERROR [STDERR] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
11:14:13,727 ERROR [STDERR] at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351)
11:14:13,727 ERROR [STDERR] at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
11:14:13,727 ERROR [STDERR] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
11:14:13,727 ERROR [STDERR] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
11:14:13,727 ERROR [STDERR] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
11:14:13,727 ERROR [STDERR] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
11:14:13,727 ERROR [STDERR] at java.lang.Thread.run(Thread.java:722)
11:14:13,727 ERROR [STDERR] Caused by: java.lang.IllegalArgumentException: URI is not hierarchical
11:14:13,727 ERROR [STDERR] at java.io.File.(File.java:392)
11:14:13,728 ERROR [STDERR] at org.springsource.loaded.agent.SpringLoadedPreProcessor.getWatchPathFromProtectionDomain(SpringLoadedPreProcessor.java:447)
11:14:13,728 ERROR [STDERR] at org.springsource.loaded.agent.SpringLoadedPreProcessor.preProcess(SpringLoadedPreProcessor.java:174)
11:14:13,728 ERROR [STDERR] at org.springsource.loaded.agent.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:102)
11:14:13,728 ERROR [STDERR] ... 111 more
11:14:13,750 ERROR [STDERR] java.lang.RuntimeException: Reloading agent exited via exception, please raise a jira
11:14:13,751 ERROR [STDERR] at org.springsource.loaded.agent.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:104)

!/bin/sh

======================================================================

JBoss Bootstrap Script

======================================================================

$Id: run.sh 88978 2009-05-16 18:18:45Z [email protected] $

JAVA_OPTS="$JAVA_OPTS -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"
JAVA_OPTS="-javaagent:/Developer/tools/springloaded/springloaded-1.1.2.20130430.jar -noverify -Xms256m -Xmx1600m -XX:MaxPermSize=650m $JAVA_OPTS"
DIRNAME=dirname $0
PROGNAME=basename $0
GREP="grep"

Use the maximum available, or set MAX_FD != -1 to use that

MAX_FD="maximum"

mvn compile - generate exceptions

When I did a mvn compile on the root of the project with spring-loaded enabled I did an exception (see below).

It is not a real issue for me because I don't use it but a issue has been opened (jhipster/generator-jhipster#187) on the Jhipster project and I think it's important for you to know that.

If we add our JHipster plugin which reloads most of the spring beans, I got another exceptions. So I put in this issue the two generated exceptions. You can use the Jhipster sample project to reproduce it (https://github.com/jhipster/jhipster-sample-app)

With only spring-loaded

[ERROR] org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Filter execution threw an exception] with root cause
java.lang.NoSuchMethodError: PersistentTokenRepository.findOne(Ljava/io/Serializable;)Ljava/lang/Object;
at org.springsource.loaded.TypeRegistry.iincheck(TypeRegistry.java:1397) ~[springloaded-1.2.0.BUILD-20140325.150949-10.jar:1.2.0.BUILD-SNAPSHOT]
at com.mycompany.myapp.security.CustomPersistentRememberMeServices$$EOZtbvYW.getPersistentToken(CustomPersistentRememberMeServices.java:164) ~[na:na]
at com.mycompany.myapp.security.CustomPersistentRememberMeServices$$EOZtbvYW.processAutoLoginCookie(CustomPersistentRememberMeServices.java:87) ~[na:na]
at com.mycompany.myapp.security.CustomPersistentRememberMeServices$$DOZtbvYW.processAutoLoginCookie(Unknown Source) ~[na:na]
at com.mycompany.myapp.security.CustomPersistentRememberMeServices.processAutoLoginCookie(CustomPersistentRememberMeServices.java) ~[classes/:na]
at org.springframework.security.web.authentication.rememberme.AbstractRememberMeServices.autoLogin(AbstractRememberMeServices.java:115) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_51]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_51]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_51]
at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_51]
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1276) ~[springloaded-1.2.0.BUILD-20140325.150949-10.jar:1.2.0.BUILD-SNAPSHOT]
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) ~[spring-aop-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:201) ~[spring-aop-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at com.sun.proxy.$Proxy99.autoLogin(Unknown Source) ~[na:na]
at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:97) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:683) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1721) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1679) [tomcat-embed-core-7.0.52.jar:7.0.52]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_51]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_51]
at java.lang.Thread.run(Thread.java:744) [na:1.7.0_51]
[ERROR] org.springframework.boot.actuate.web.BasicErrorController - java.lang.NoSuchMethodError: PersistentTokenRepository.findOne(Ljava/io/Serializable;)Ljava/lang/Object;

With only spring-loaded and jhipster

[WARN] org.hibernate.jpa.internal.EntityManagerFactoryRegistry - HHH000436: Entity manager factory name (default) is already registered. If entity manager will be clustered or passivated, specify a unique value for property 'hibernate.ejb.entitymanager_factory_name'
[DEBUG] io.github.jhipster.loaded.JHipsterReloaderThread - There are 6 Spring repositories updated, adding them to be reloaded
[DEBUG] io.github.jhipster.loaded.JHipsterReloaderThread - There are 4 Spring services updated, adding them to be reloaded
[DEBUG] io.github.jhipster.loaded.JHipsterReloaderThread - There are 20 Spring components updated, adding them to be reloaded
[DEBUG] io.github.jhipster.loaded.JHipsterReloaderThread - There are 5 Spring controllers updated, adding them to be reloaded
[INFO] io.github.jhipster.loaded.reloader.SpringReloader - JHipster reload - New Spring bean 'class com.mycompany.myapp.config.metrics.JHipsterHealthIndicatorConfiguration' has been reloaded.
[INFO] io.github.jhipster.loaded.reloader.SpringReloader - JHipster reload - New Spring bean 'class com.mycompany.myapp.config.MetricsConfiguration$GraphiteRegistry' has been reloaded.
[WARN] io.github.jhipster.loaded.reloader.SpringReloader - Could not hot reload Spring bean!
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'authorityRepository': Post-processing of the FactoryBean's object failed; nested exception is java.lang.NullPointerException
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:167) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:103) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1514) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:252) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:295) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:985) ~[spring-context-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at io.github.jhipster.loaded.reloader.SpringReloader.start(SpringReloader.java:162) [core-0.3.jar:na]
at io.github.jhipster.loaded.reloader.SpringReloader.start(SpringReloader.java:97) [core-0.3.jar:na]
at io.github.jhipster.loaded.JHipsterReloaderThread.batchReload(JHipsterReloaderThread.java:185) [core-0.3.jar:na]
at io.github.jhipster.loaded.JHipsterReloaderThread.run(JHipsterReloaderThread.java:151) [core-0.3.jar:na]
at java.lang.Thread.run(Thread.java:744) [na:1.7.0_51]
Caused by: java.lang.NullPointerException: null
at org.springsource.loaded.MethodMember.isCatcher(MethodMember.java:250) ~[springloaded-1.2.0.BUILD-20140325.150949-10.jar:1.2.0.BUILD-SNAPSHOT]
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodGetDeclaredAnnotations(ReflectiveInterceptor.java:939) ~[springloaded-1.2.0.BUILD-20140325.150949-10.jar:1.2.0.BUILD-SNAPSHOT]
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodGetAnnotation(ReflectiveInterceptor.java:1317) ~[springloaded-1.2.0.BUILD-20140325.150949-10.jar:1.2.0.BUILD-SNAPSHOT]
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrAccessibleObjectGetAnnotation(ReflectiveInterceptor.java:1543) ~[springloaded-1.2.0.BUILD-20140325.150949-10.jar:1.2.0.BUILD-SNAPSHOT]
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrAnnotatedElementGetAnnotation(ReflectiveInterceptor.java:1533) ~[springloaded-1.2.0.BUILD-20140325.150949-10.jar:1.2.0.BUILD-SNAPSHOT]
at org.springframework.cache.annotation.SpringCacheAnnotationParser.getAnnotations(SpringCacheAnnotationParser.java:146) ~[spring-context-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.cache.annotation.SpringCacheAnnotationParser.parseCacheAnnotations(SpringCacheAnnotationParser.java:48) ~[spring-context-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.cache.annotation.AnnotationCacheOperationSource.determineCacheOperations(AnnotationCacheOperationSource.java:131) ~[spring-context-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.cache.annotation.AnnotationCacheOperationSource.findCacheOperations(AnnotationCacheOperationSource.java:115) ~[spring-context-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.cache.interceptor.AbstractFallbackCacheOperationSource.computeCacheOperations(AbstractFallbackCacheOperationSource.java:142) ~[spring-context-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.cache.interceptor.AbstractFallbackCacheOperationSource.getCacheOperations(AbstractFallbackCacheOperationSource.java:102) ~[spring-context-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.cache.interceptor.CacheOperationSourcePointcut.matches(CacheOperationSourcePointcut.java:39) ~[spring-context-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:225) ~[spring-aop-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:262) ~[spring-aop-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.aop.support.AopUtils.findAdvisorsThatCanApply(AopUtils.java:294) ~[spring-aop-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findAdvisorsThatCanApply(AbstractAdvisorAutoProxyCreator.java:118) ~[spring-aop-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findEligibleAdvisors(AbstractAdvisorAutoProxyCreator.java:88) ~[spring-aop-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.getAdvicesAndAdvisorsForBean(AbstractAdvisorAutoProxyCreator.java:69) ~[spring-aop-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:376) ~[spring-aop-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:339) ~[spring-aop-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:421) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.postProcessObjectFromFactoryBean(AbstractAutowireCapableBeanFactory.java:1698) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:164) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
... 11 common frames omitted
[INFO] io.github.jhipster.loaded.JHipsterReloaderThread - Batch reload in progress...
[DEBUG] io.github.jhipster.loaded.JHipsterReloaderThread - There are 0 entities and 2 dtos updated, invalidating Jackson cache
[DEBUG] io.github.jhipster.loaded.reloader.JacksonReloader - Hot reloading Jackson classes
[WARN] io.github.jhipster.loaded.reloader.SpringReloader - Could not hot reload Spring bean!
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'authorityRepository': Post-processing of the FactoryBean's object failed; nested exception is java.lang.NullPointerException
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:167) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:103) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1514) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:252) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:295) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:985) ~[spring-context-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at io.github.jhipster.loaded.reloader.SpringReloader.start(SpringReloader.java:162) [core-0.3.jar:na]
at io.github.jhipster.loaded.reloader.SpringReloader.start(SpringReloader.java:97) [core-0.3.jar:na]
at io.github.jhipster.loaded.JHipsterReloaderThread.batchReload(JHipsterReloaderThread.java:185) [core-0.3.jar:na]
at io.github.jhipster.loaded.JHipsterReloaderThread.run(JHipsterReloaderThread.java:151) [core-0.3.jar:na]
at java.lang.Thread.run(Thread.java:744) [na:1.7.0_51]
Caused by: java.lang.NullPointerException: null
at org.springsource.loaded.MethodMember.isCatcher(MethodMember.java:250) ~[springloaded-1.2.0.BUILD-20140325.150949-10.jar:1.2.0.BUILD-SNAPSHOT]
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodGetDeclaredAnnotations(ReflectiveInterceptor.java:939) ~[springloaded-1.2.0.BUILD-20140325.150949-10.jar:1.2.0.BUILD-SNAPSHOT]
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodGetAnnotation(ReflectiveInterceptor.java:1317) ~[springloaded-1.2.0.BUILD-20140325.150949-10.jar:1.2.0.BUILD-SNAPSHOT]
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrAccessibleObjectGetAnnotation(ReflectiveInterceptor.java:1543) ~[springloaded-1.2.0.BUILD-20140325.150949-10.jar:1.2.0.BUILD-SNAPSHOT]
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrAnnotatedElementGetAnnotation(ReflectiveInterceptor.java:1533) ~[springloaded-1.2.0.BUILD-20140325.150949-10.jar:1.2.0.BUILD-SNAPSHOT]
at org.springframework.cache.annotation.SpringCacheAnnotationParser.getAnnotations(SpringCacheAnnotationParser.java:146) ~[spring-context-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.cache.annotation.SpringCacheAnnotationParser.parseCacheAnnotations(SpringCacheAnnotationParser.java:48) ~[spring-context-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.cache.annotation.AnnotationCacheOperationSource.determineCacheOperations(AnnotationCacheOperationSource.java:131) ~[spring-context-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.cache.annotation.AnnotationCacheOperationSource.findCacheOperations(AnnotationCacheOperationSource.java:115) ~[spring-context-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.cache.interceptor.AbstractFallbackCacheOperationSource.computeCacheOperations(AbstractFallbackCacheOperationSource.java:142) ~[spring-context-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.cache.interceptor.AbstractFallbackCacheOperationSource.getCacheOperations(AbstractFallbackCacheOperationSource.java:102) ~[spring-context-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.cache.interceptor.CacheOperationSourcePointcut.matches(CacheOperationSourcePointcut.java:39) ~[spring-context-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:225) ~[spring-aop-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:262) ~[spring-aop-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.aop.support.AopUtils.findAdvisorsThatCanApply(AopUtils.java:294) ~[spring-aop-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findAdvisorsThatCanApply(AbstractAdvisorAutoProxyCreator.java:118) ~[spring-aop-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findEligibleAdvisors(AbstractAdvisorAutoProxyCreator.java:88) ~[spring-aop-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.getAdvicesAndAdvisorsForBean(AbstractAdvisorAutoProxyCreator.java:69) ~[spring-aop-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:376) ~[spring-aop-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:339) ~[spring-aop-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:421) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.postProcessObjectFromFactoryBean(AbstractAutowireCapableBeanFactory.java:1698) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:164) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
... 11 common frames omitted

EnableWebSecurity Exception - RC4 with springloaded-1.2.0.BUILD-SNAPSHOT.jar

Hi,

I develop JHipster (https://github.com/jhipster/generator-jhipster) and yesterday I tried to upgrade our projet to 1.0.0.RC4 and I have an big issue when springloaded 1.2.0 is used (-javaagent:spring_loaded/springloaded-1.2.0.BUILD-SNAPSHOT.jar -noverify)

In this project, we have a SecurityConfiguration class which extends WebSecurityConfigurerAdapter. This class has two annotations @configuration and @EnableWebSecurity.

When the application is started, I got the an exception. After some researches, I found that the autowired annotation on the setObjectPostProcessor method of the parent class is not called. If I override the setObjectPostProcessor in the SecurityConfiguration and like this, the application starts.

@Autowired
public void setObjectPostProcessor(ObjectPostProcessor objectPostProcessor) {
super.setObjectPostProcessor(objectPostProcessor);
}
Here is the exeption

[ERROR] org.apache.catalina.core.ContainerBase - A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]
at java.util.concurrent.FutureTask.report(FutureTask.java:122) [na:1.7.0_51]
at java.util.concurrent.FutureTask.get(FutureTask.java:188) [na:1.7.0_51]
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:799) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) [tomcat-embed-core-7.0.52.jar:7.0.52]
at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_51]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_51]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_51]
at java.lang.Thread.run(Thread.java:744) [na:1.7.0_51]
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) [tomcat-embed-core-7.0.52.jar:7.0.52]
... 6 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'springSecurityFilterChain' defined in class path resource [org/springframework/security/config/annotation/web/configuration/WebSecurityConfiguration.class]: Instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public javax.servlet.Filter org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration.springSecurityFilterChain() throws java.lang.Exception] threw exception; nested exception is java.lang.IllegalStateException: org.springframework.security.config.annotation.ObjectPostProcessor is a required bean. Ensure you have used @EnableWebSecurity and @configuration
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:591) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1094) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:989) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.getOrderedBeansOfType(EmbeddedWebApplicationContext.java:367) ~[spring-boot-1.0.0.RC4.jar:1.0.0.RC4]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.getServletContextInitializerBeans(EmbeddedWebApplicationContext.java:268) ~[spring-boot-1.0.0.RC4.jar:1.0.0.RC4]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext$1.onStartup(EmbeddedWebApplicationContext.java:213) ~[spring-boot-1.0.0.RC4.jar:1.0.0.RC4]
at org.springframework.boot.context.embedded.tomcat.ServletContextInitializerLifecycleListener.lifecycleEvent(ServletContextInitializerLifecycleListener.java:54) ~[spring-boot-1.0.0.RC4.jar:1.0.0.RC4]
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5355) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-7.0.52.jar:7.0.52]
... 6 common frames omitted
Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public javax.servlet.Filter org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration.springSecurityFilterChain() throws java.lang.Exception] threw exception; nested exception is java.lang.IllegalStateException: org.springframework.security.config.annotation.ObjectPostProcessor is a required bean. Ensure you have used @EnableWebSecurity and @configuration
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:188) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:580) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
... 22 common frames omitted
Caused by: java.lang.IllegalStateException: org.springframework.security.config.annotation.ObjectPostProcessor is a required bean. Ensure you have used @EnableWebSecurity and @configuration
at org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter$1.postProcess(WebSecurityConfigurerAdapter.java:68) ~[spring-security-config-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter.getHttp(WebSecurityConfigurerAdapter.java:165) ~[spring-security-config-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter.init(WebSecurityConfigurerAdapter.java:273) ~[spring-security-config-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at com.mycompany.myapp.config.SecurityConfiguration.init(SecurityConfiguration.java) ~[classes/:na]
at org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter.init(WebSecurityConfigurerAdapter.java:58) ~[spring-security-config-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at com.mycompany.myapp.config.SecurityConfiguration.init(SecurityConfiguration.java) ~[classes/:na]
at com.mycompany.myapp.config.SecurityConfiguration$$EnhancerBySpringCGLIB$$68811ac8.init() ~[spring-core-4.0.2.RELEASE.jar:na]
at org.springframework.security.config.annotation.AbstractConfiguredSecurityBuilder.init(AbstractConfiguredSecurityBuilder.java:369) ~[spring-security-config-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.config.annotation.AbstractConfiguredSecurityBuilder.doBuild(AbstractConfiguredSecurityBuilder.java:322) ~[spring-security-config-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.config.annotation.AbstractSecurityBuilder.build(AbstractSecurityBuilder.java:39) ~[spring-security-config-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration.springSecurityFilterChain(WebSecurityConfiguration.java:92) ~[spring-security-config-3.2.1.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration$$EnhancerBySpringCGLIB$$3a7174c9.CGLIB$springSecurityFilterChain$1() ~[spring-core-4.0.2.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration$$EnhancerBySpringCGLIB$$3a7174c9$$FastClassBySpringCGLIB$$ec6705e6.invoke() ~[spring-core-4.0.2.RELEASE.jar:3.2.1.RELEASE]
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) ~[spring-core-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:312) ~[spring-context-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration$$EnhancerBySpringCGLIB$$3a7174c9.springSecurityFilterChain() ~[spring-core-4.0.2.RELEASE.jar:3.2.1.RELEASE]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_51]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_51]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_51]
at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_51]
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1254) ~[springloaded.jar:1.2.0.BUILD-SNAPSHOT]
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:166) ~[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
... 23 common frames omitted
[ERROR] org.apache.catalina.core.ContainerBase - A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]]
at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[na:1.7.0_51]
at java.util.concurrent.FutureTask.get(FutureTask.java:188) ~[na:1.7.0_51]
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:731) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.startup.Tomcat.start(Tomcat.java:341) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:79) [spring-boot-1.0.0.RC4.jar:1.0.0.RC4]
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.(TomcatEmbeddedServletContainer.java:69) [spring-boot-1.0.0.RC4.jar:1.0.0.RC4]
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getTomcatEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:256) [spring-boot-1.0.0.RC4.jar:1.0.0.RC4]
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:135) [spring-boot-1.0.0.RC4.jar:1.0.0.RC4]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:159) [spring-boot-1.0.0.RC4.jar:1.0.0.RC4]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:132) [spring-boot-1.0.0.RC4.jar:1.0.0.RC4]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:476) [spring-context-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:120) [spring-boot-1.0.0.RC4.jar:1.0.0.RC4]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:619) [spring-boot-1.0.0.RC4.jar:1.0.0.RC4]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:306) [spring-boot-1.0.0.RC4.jar:1.0.0.RC4]
at com.mycompany.myapp.Application.main(Application.java:62) [classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_51]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_51]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_51]
at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_51]
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1254) [springloaded.jar:1.2.0.BUILD-SNAPSHOT]
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) [idea_rt.jar:na]
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
at java.util.concurrent.FutureTask.run(FutureTask.java:262) ~[na:1.7.0_51]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_51]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ~[na:1.7.0_51]
at java.lang.Thread.run(Thread.java:744) ~[na:1.7.0_51]
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:799) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-7.0.52.jar:7.0.52]
... 6 common frames omitted
[INFO] com.mycompany.myapp.config.CacheConfiguration - Remove Cache Manager metrics
[INFO] com.mycompany.myapp.config.CacheConfiguration - Closing Cache Manager
[ERROR] com.zaxxer.hikari.HikariMBeanElf - No registered MBean for {0}.
Exception in thread "main" org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to start embedded Tomcat
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:135)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:476)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:120)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:619)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:306)
at com.mycompany.myapp.Application.main(Application.java:62)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1254)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to start embedded Tomcat
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:106)
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.(TomcatEmbeddedServletContainer.java:69)
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getTomcatEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:256)
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:135)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:159)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:132)
... 11 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardServer[-1]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
at org.apache.catalina.startup.Tomcat.start(Tomcat.java:341)
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:79)
... 16 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Tomcat]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:731)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 18 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 20 more
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 22 more

NPE in SpringLoadedPreProcessor

When running Spring-Loaded against an exploded Spring Boot Jar, I go this NPE:

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:792)
    at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1254)
    at org.springframework.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:384)
    at org.springframework.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:219)
    at org.springframework.cglib.reflect.FastClass$Generator.create(FastClass.java:64)
    at org.springframework.cglib.proxy.MethodProxy.helper(MethodProxy.java:121)
    at org.springframework.cglib.proxy.MethodProxy.init(MethodProxy.java:75)
    at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:226)
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:326)
    at com.photonops.photondashboard.Main$$EnhancerByCGLIB$$936dbeef.servletContainer(<generated>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1254)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:166)
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:581)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1094)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:989)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.getEmbeddedServletContainerFactory(EmbeddedWebApplicationContext.java:196)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:159)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:137)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:476)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:124)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:609)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:321)
    at com.photonops.photondashboard.Main.main(Main.java:125)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1254)
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:53)
    at java.lang.Thread.run(Thread.java:724)
Caused by: java.lang.NullPointerException
    at org.springsource.loaded.agent.SpringLoadedPreProcessor.getWatchPathFromProtectionDomain(SpringLoadedPreProcessor.java:466)
    at org.springsource.loaded.agent.SpringLoadedPreProcessor.preProcess(SpringLoadedPreProcessor.java:175)
    at org.springsource.loaded.agent.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:102)
    ... 46 more

IllegalStateException on reload with springloaded-1.1.5 + spring-4.0.0

trying to reload a spring web app (core/mvc/security, classic root- and web-contexts), i get the exception/stacktrace below when reloading any class.

i am not aware of any uninitialized/closed contexts or beanfactories (after all my app is up and running at that point and continues to do so despite the exception...)

env: jdk6, springloaded-1.1.5.RELEASE, spring-4.0.0.RELEASE

java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.springsource.loaded.agent.SpringPlugin.reinvokeInitHandlerMethods(SpringPlugin.java:213)
    at org.springsource.loaded.agent.SpringPlugin.reloadEvent(SpringPlugin.java:120)
    at org.springsource.loaded.TypeRegistry.fireReloadEvent(TypeRegistry.java:1664)
    at org.springsource.loaded.ReloadableType.loadNewVersion(ReloadableType.java:397)
    at org.springsource.loaded.ReloadableType.reloadProxiesIfNecessary(ReloadableType.java:476)
    at org.springsource.loaded.ReloadableType.loadNewVersion(ReloadableType.java:399)
    at org.springsource.loaded.TypeRegistry.loadNewVersion(TypeRegistry.java:828)
    at org.springsource.loaded.agent.ReloadableFileChangeListener.fileChanged(ReloadableFileChangeListener.java:51)
    at org.springsource.loaded.agent.Watcher.determineChangesSince(FileSystemWatcher.java:235)
    at org.springsource.loaded.agent.Watcher.run(FileSystemWatcher.java:219)
    at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext
    at org.springframework.context.support.AbstractRefreshableApplicationContext.getBeanFactory(AbstractRefreshableApplicationContext.java:170)
    at org.springframework.context.support.AbstractApplicationContext.getBeanNamesForType(AbstractApplicationContext.java:1051)
    at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.initHandlerMethods(AbstractHandlerMethodMapping.java:105)
    ... 15 more

Make available via Central

I would love to this jar distributed via Maven Central. This would simplify scripting it into a build.

JAR manifest missing

I get the following error when I run this within my IDE (Intellij)

Error opening zip file or JAR manifest missing : ~/Downloads/springloaded-1.1.4.jar

VerifyError during application start up

When attempting to run a project that contains one of the setups described below, the following exception is risen:

Exception in thread "main" java.lang.VerifyError: class "classname" overrides final method "methodname".

Both run commands contain the -noverify. Tested with jdk 6 and 7.

The first example doesn't print the "Hello World!" while the second does print it.

First Example

Exception

Exception in thread "main" java.lang.VerifyError: class test.Implementation2 overrides final method process1.

Run command

java -javaagent:/work/springloaded-1.1.4.jar -noverify Implementation3

Implementation1.java

public abstract class Implementation1<T> implements Interface1<T> {

    @Override
    public final T process1(T type) {
        return type;
    }

}

Implementation2.java

public abstract class Implementation2<T1,T2> extends Implementation1<T2> implements Interface2<T1,T2> {

}

Implementation3.java

public class Implementation3 extends Implementation2<String, Integer> {

    public static void main(String [] args) {
        System.out.println("Hello World!");
    }

}

Interface1.java

public interface Interface1<T> {

    public T process1(T type);

}

Interface2.java

public interface Interface2<T1, T2> extends Interface1<T2> {

}

Second Example

Exception

Exception in thread "main" java.lang.VerifyError: class test.InnerEnum$sorters overrides final method equals.(Ljava/lang/Object;)

Run command

java -javaagent:/work/springloaded-1.1.4.jar -noverify InnerEnum

InnerEnum.java

import java.util.Comparator;
import java.util.Map;
import java.util.TreeMap;

public class InnerEnum {

            public static void main(String [] args) {
                        System.out.println("Hello World!");
                        Map<String, String> map = new TreeMap<String, String>(sorters.string);
            }

            private static enum sorters implements Comparator<String> {
                        string {
                                    private static final long serialVersionUID = 1L;

                                    @Override
                                    public int compare(String o1, String o2) {
                                                return o1.compareTo(o2);
                                    }
                        }
            }
}

NPE in 1.2.0 snapshot with spring-boot-starter-web:1.0.0.RC4

after creating sample project from http://projects.spring.io/spring-boot/#quick-start and running main with spring-loaded:

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:428)
    at sun.misc.Unsafe.defineAnonymousClass(Native Method)
    at java.lang.invoke.InvokerBytecodeGenerator.loadAndInitializeInvokerClass(InvokerBytecodeGenerator.java:255)
    at java.lang.invoke.InvokerBytecodeGenerator.loadMethod(InvokerBytecodeGenerator.java:247)
    at java.lang.invoke.InvokerBytecodeGenerator.generateCustomizedCode(InvokerBytecodeGenerator.java:490)
    at java.lang.invoke.LambdaForm.compileToBytecode(LambdaForm.java:454)
    at java.lang.invoke.DirectMethodHandle.makePreparedLambdaForm(DirectMethodHandle.java:280)
    at java.lang.invoke.DirectMethodHandle.preparedLambdaForm(DirectMethodHandle.java:221)
    at java.lang.invoke.DirectMethodHandle.preparedLambdaForm(DirectMethodHandle.java:210)
    at java.lang.invoke.DirectMethodHandle.make(DirectMethodHandle.java:82)
    at java.lang.invoke.DirectMethodHandle.make(DirectMethodHandle.java:102)
    at java.lang.invoke.DirectMethodHandle.make(DirectMethodHandle.java:107)
    at java.lang.invoke.LambdaForm$NamedFunction.resolve(LambdaForm.java:1018)
    at java.lang.invoke.DirectMethodHandle$Lazy.<clinit>(DirectMethodHandle.java:711)
    at java.lang.invoke.DirectMethodHandle.makePreparedLambdaForm(DirectMethodHandle.java:265)
    at java.lang.invoke.DirectMethodHandle.preparedLambdaForm(DirectMethodHandle.java:221)
    at java.lang.invoke.DirectMethodHandle.preparedLambdaForm(DirectMethodHandle.java:210)
    at java.lang.invoke.DirectMethodHandle.make(DirectMethodHandle.java:82)
    at java.lang.invoke.DirectMethodHandle.make(DirectMethodHandle.java:102)
    at java.lang.invoke.DirectMethodHandle.make(DirectMethodHandle.java:107)
    at java.lang.invoke.LambdaForm$NamedFunction.initializeInvokers(LambdaForm.java:1050)
    at java.lang.invoke.LambdaForm.<clinit>(LambdaForm.java:1637)
    at java.lang.invoke.DirectMethodHandle.makePreparedLambdaForm(DirectMethodHandle.java:256)
    at java.lang.invoke.DirectMethodHandle.preparedLambdaForm(DirectMethodHandle.java:221)
    at java.lang.invoke.DirectMethodHandle.preparedLambdaForm(DirectMethodHandle.java:210)
    at java.lang.invoke.DirectMethodHandle.make(DirectMethodHandle.java:82)
    at java.lang.invoke.MethodHandles$Lookup.getDirectMethodCommon(MethodHandles.java:1638)
    at java.lang.invoke.MethodHandles$Lookup.getDirectMethodNoSecurityManager(MethodHandles.java:1602)
    at java.lang.invoke.MethodHandles$Lookup.getDirectMethodForConstant(MethodHandles.java:1778)
    at java.lang.invoke.MethodHandles$Lookup.linkMethodHandleConstant(MethodHandles.java:1727)
    at java.lang.invoke.MethodHandleNatives.linkMethodHandleConstant(MethodHandleNatives.java:442)
    at java.time.format.DateTimeFormatterBuilder.<clinit>(DateTimeFormatterBuilder.java:158)
    at java.time.format.DateTimeFormatter.<clinit>(DateTimeFormatter.java:705)
    at org.springframework.format.datetime.standard.DateTimeFormatterRegistrar.getFallbackFormatter(DateTimeFormatterRegistrar.java:198)
    at org.springframework.format.datetime.standard.DateTimeFormatterRegistrar.getFormatter(DateTimeFormatterRegistrar.java:192)
    at org.springframework.format.datetime.standard.DateTimeFormatterRegistrar.registerFormatters(DateTimeFormatterRegistrar.java:154)
    at org.springframework.format.support.DefaultFormattingConversionService.addDefaultFormatters(DefaultFormattingConversionService.java:97)
    at org.springframework.format.support.DefaultFormattingConversionService.<init>(DefaultFormattingConversionService.java:83)
    at org.springframework.format.support.DefaultFormattingConversionService.<init>(DefaultFormattingConversionService.java:56)
    at org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport.mvcConversionService(WebMvcConfigurationSupport.java:402)
    at org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration$$EnhancerBySpringCGLIB$$d6d896c7.CGLIB$mvcConversionService$16(<generated>)
    at org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration$$EnhancerBySpringCGLIB$$d6d896c7$$FastClassBySpringCGLIB$$10c6a6df.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:312)
    at org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration$$EnhancerBySpringCGLIB$$d6d896c7.mvcConversionService(<generated>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1254)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:166)
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:580)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1094)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:989)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:324)
    at org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration$$EnhancerBySpringCGLIB$$d6d896c7.mvcConversionService(<generated>)
    at org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport.getInterceptors(WebMvcConfigurationSupport.java:210)
    at org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport.requestMappingHandlerMapping(WebMvcConfigurationSupport.java:196)
    at org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration$$EnhancerBySpringCGLIB$$d6d896c7.CGLIB$requestMappingHandlerMapping$26(<generated>)
    at org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration$$EnhancerBySpringCGLIB$$d6d896c7$$FastClassBySpringCGLIB$$10c6a6df.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:312)
    at org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration$$EnhancerBySpringCGLIB$$d6d896c7.requestMappingHandlerMapping(<generated>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1254)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:166)
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:580)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1094)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:989)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:700)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:120)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:619)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:306)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:880)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:869)
    at sk.bsmk.hello.Hello.main(Hello.java:23)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1254)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: java.lang.NullPointerException
    at org.springsource.loaded.agent.SpringLoadedPreProcessor.preProcess(SpringLoadedPreProcessor.java:152)
    at org.springsource.loaded.agent.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:102)
    ... 100 more

Doesn't work with sbt 0.13

Hi there I'm on OSX and trying to run but when I start sbt I get

SBT_OPTS="-javaagent:/Users/tyoc213/Downloads/springloaded-1.1.4.jar -noverify -XX:+CMSClassUnloadingEnabled -XX:PermSize=256M -XX:MaxPermSize=756M"
objc[1719]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/bin/java and /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined.

and when I run container:start

java.lang.NoClassDefFoundError: org/springsource/loaded/ri/ReflectiveInterceptor
Caused by: java.lang.ClassNotFoundException: org.springsource.loaded.ri.ReflectiveInterceptor
 FAILED org.eclipse.jetty.server.handler.ContextHandlerCollection@485bbfa4: java.lang.NoClassDefFoundError: org/springsource/loaded/ri/ReflectiveInterceptor
java.lang.NoClassDefFoundError: org/springsource/loaded/ri/ReflectiveInterceptor
Caused by: java.lang.ClassNotFoundException: org.springsource.loaded.ri.ReflectiveInterceptor
FAILED org.eclipse.jetty.server.Server@73da3f0: java.lang.NoClassDefFoundError: org/springsource/loaded/ri/ReflectiveInterceptor
java.lang.NoClassDefFoundError: org/springsource/loaded/ri/ReflectiveInterceptor
Caused by: java.lang.ClassNotFoundException: org.springsource.loaded.ri.ReflectiveInterceptor

If I go back to jdk1.7.0_25 it is the same

I also have tried #13 with 1.3.3

But no luck...

Environmentally sensitive generated values for serialVersionUID and class serialization

The Groovy Remote Control allows Groovy closures to be serialized and injected into a running system. This relies on shipping serialized Java objects and .class files.

When Spring Loaded is active in either of the JVMs involved, this does not work.

If the client (JVM sending the closure) has Spring Loaded enabled, a NPE will be thrown on the server side when the closure object is deserialized.

If the server has Spring Loaded enabled, a failure like the following will occur:

Caused by: java.io.InvalidClassException: Script$_run_closure1; local class incompatible: stream classdesc serialVersionUID = -3252672982768198903, local class serialVersionUID = 1362528599794029384

A similar failure will occur if both JVMs have Spring Loaded enabled.

I have a test project that can be used for running in such a setup.

https://github.com/alkemist/remote-control-springloaded

Inner class modifiers not correctly returned

For an inner class SpringLoaded can return the incorrect modifiers on a call to getModifiers() on the class object. (e.g. if the class is actually static, the static bit may not be set in the returned modifiers).

Hibernate app throws IllegalAccessException

Hi when trying to run an app which uses hibernate am getting exception below, any ideas?

java.lang.IllegalAccessException: Class org.springsource.loaded.ri.ReflectiveInterceptor can not access a member of class org.hibernate.event.EventListeners with modifiers "private" at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:105) at org.springsource.loaded.jvm.JVM.ensureMemberAccess(JVM.java:103) at org.springsource.loaded.ri.ReflectiveInterceptor.asAccessibleField(ReflectiveInterceptor.java:573) at org.springsource.loaded.ri.ReflectiveInterceptor.jlrFieldGet(ReflectiveInterceptor.java:1665) at org.hibernate.event.EventListeners.processListeners(EventListeners.java:167) at org.hibernate.event.EventListeners.initializeListeners(EventListeners.java:194) at org.hibernate.cfg.Configuration.getInitializedEventListeners(Configuration.java:1352) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1341) at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)

NPE when reloading code

Exception is:

Caused by: java.lang.NullPointerException
at org.springsource.loaded.NameRegistry.getIdFor(NameRegistry.java:56)
at org.springsource.loaded.NameRegistry.getIdOrAllocateFor(NameRegistry.java:71)
at org.springsource.loaded.TypeRegistry.getTypeIdFor(TypeRegistry.java:772)
at org.springsource.loaded.MethodInvokerRewriter$RewriteClassAdaptor$RewritingMethodAdapter.rewritePUTSTATIC(MethodInvokerRewriter.java:869)
at org.springsource.loaded.MethodInvokerRewriter$RewriteClassAdaptor$RewritingMethodAdapter.visitFieldInsn(MethodInvokerRewriter.java:788)
at sl.org.objectweb.asm.ClassReader.accept(Unknown Source)
at sl.org.objectweb.asm.ClassReader.accept(Unknown Source)
at

Feature request: be able to exclude some classes from being wrapped

Trying to expose a class to RMI, I get the following exception when using SpringLoaded.

  • the code:
    selfStub = (MyInterface) UnicastRemoteObject.exportObject(this, enginePort);
  • the Exception:
    Caused by: java.lang.IllegalArgumentException: illegal remote method encountered: public abstract java.lang.Object com.company.remote.Retrieve.__execute(java.lang.Object[],java.lang.Object,java.lang.String)
    at sun.rmi.server.Util.checkMethod(Util.java:244)
    at sun.rmi.server.Util.getRemoteInterfaces(Util.java:223)
    at sun.rmi.server.Util.getRemoteInterfaces(Util.java:193)
    at sun.rmi.server.Util.createProxy(Util.java:126)
    at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:177)

My first analysis is that Java's RMI UnicastRemoteObject also tries to expose the method added by SpringLoaded to the object (which is the __execute(...) method ). And as __execute(...) does not declare RemoteException, the object can't be exported.

If there was a mechanism to make SpringLoaded ignore some class, we could configure it to ignore classes aimed at being exposed through RMI. There may also be other way I didn't think of ;)

java.lang.NoSuchMethodError with inheritance and static methods

We are confronted with a java.lang.NoSuchMethodError after reloading, even without any changes (just compile and reload through spring-loaded) in a class, who inherits a static
method from a super-class, and we call that static-method. See Attachment, with explanation of the cases.

Bildschirmfoto 2013-04-25 um 20 44 22

GWT support

Is is in the plans? As of now, it fails badly.

Spring-loaded + intellij 12 + tomcat7 configuration

Hello,

I want to deploy a simple war which uses spring mvc.
What i did is i was able to start tomcat from intellij in debug mode, and the whole thing starts ok. When i make a call from the UI to the backend i can stop at my breakpoints and do hot code replace as usual(not adding methods or changing signatures).

Then i wanted to add spring-loaded so i added the vm option in intellij definition of tomcat. But when i add a new method or change the signature of a method, the class isn't reloaded like it should be. Maybe i'm missing some configuration?

Can someone help with a configuration for intellij + tomcat or eclipse + tomcat?

Thanks

Simple how-to guide

It will be great to have short wiki page explaining how to use spring-loaded in some typical configuration e.g. maven + spring MVC app.

Spring loaded with jdk5?

Hi,

It's possible to run spring-loaded with jdk5? I've tried but this error log appears when starting jvm:

java.lang.UnsupportedClassVersionError: Bad version number in .class file

Agent exit due to NPE

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:791)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
    at org.springsource.loaded.ChildClassLoader.defineClass(ChildClassLoader.java:37)
    at org.springsource.loaded.TypeRegistry.defineClass(TypeRegistry.java:1068)
    at org.springsource.loaded.CurrentLiveVersion.define(CurrentLiveVersion.java:122)
    at org.springsource.loaded.CurrentLiveVersion.<init>(CurrentLiveVersion.java:99)
    at org.springsource.loaded.ReloadableType.loadNewVersion(ReloadableType.java:381)
    at org.springsource.loaded.TypeRegistry.loadNewVersion(TypeRegistry.java:805)
    at org.springsource.loaded.agent.ReloadableFileChangeListener.fileChanged(ReloadableFileChangeListener.java:51)
    at org.springsource.loaded.agent.Watcher.determineChangesSince(FileSystemWatcher.java:218)
    at org.springsource.loaded.agent.Watcher.run(FileSystemWatcher.java:205)
    at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NullPointerException
    at org.springsource.loaded.agent.JVMPlugin.accept(JVMPlugin.java:160)
    at org.springsource.loaded.agent.SpringLoadedPreProcessor.preProcess(SpringLoadedPreProcessor.java:112)
    at org.springsource.loaded.agent.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:102)
    ... 15 more
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:791)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
    at org.springsource.loaded.ChildClassLoader.defineClass(ChildClassLoader.java:37)
    at org.springsource.loaded.TypeRegistry.defineClass(TypeRegistry.java:1068)
    at org.springsource.loaded.CurrentLiveVersion.define(CurrentLiveVersion.java:122)
    at org.springsource.loaded.CurrentLiveVersion.<init>(CurrentLiveVersion.java:99)
    at org.springsource.loaded.ReloadableType.loadNewVersion(ReloadableType.java:381)
    at org.springsource.loaded.TypeRegistry.loadNewVersion(TypeRegistry.java:805)
    at org.springsource.loaded.agent.ReloadableFileChangeListener.fileChanged(ReloadableFileChangeListener.java:51)
    at org.springsource.loaded.agent.Watcher.determineChangesSince(FileSystemWatcher.java:218)
    at org.springsource.loaded.agent.Watcher.run(FileSystemWatcher.java:205)
    at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NullPointerException
    at org.springsource.loaded.agent.JVMPlugin.accept(JVMPlugin.java:160)
    at org.springsource.loaded.agent.SpringLoadedPreProcessor.preProcess(SpringLoadedPreProcessor.java:112)
    at org.springsource.loaded.agent.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:102)
    ... 15 more

[spring plugin] Error message with Spring 4

When running Spring Loaded with Spring 4.0.1 I have the following warning message:

[WARN] org.springsource.loaded.agent.SpringPlugin - problem resetting request mapping handlers - unable to find field 'handlerMethods' on type 'AbstractHandlerMethodMapping' - you probably are not on Spring 3.1

This is caused by the SpringPlugin.reinvokeInitHandlerMethods method.

NPEs in ReflectiveInterceptor.toParamString and Utils.appendDescriptor

both methods accept a class array as argument. the whole array is checked for being null but if the array contains elements that are null, a NPE is thrown.

first i thought this was a problem with Class<?>[] vs. Class<?>...: if you call the latter one like myMethod(null), you get a array with one null element while the former variant gives you just null for the whole array.

however, i am facing a situation where my array looks like this: [java/lang/Long, null] - i do not even know how you manage to call sth. via reflection where the second element of the class array is null, but nevertheless, i think this should be gracefully handled.

Errors seen during class reload.

I was seeing exceptions from Springloaded and the exceptions instructed me to raise a defect.

Here is the stack trace from the exception I was seeing:

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:169)
at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:365)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.util.ResourceBundle$Control.newBundle(ResourceBundle.java:2383)
at java.util.ResourceBundle.loadBundle(ResourceBundle.java:1406)
at java.util.ResourceBundle.findBundle(ResourceBundle.java:1365)
at java.util.ResourceBundle.findBundle(ResourceBundle.java:1292)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1234)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:787)
at curam.util.message.MessageCatalog.getCatalog(MessageCatalog.java:207)
at curam.util.message.CatEntry.getMessageText(CatEntry.java:170)
at curam.util.message.CatEntry.getMessageText(CatEntry.java:157)
at curam.core.sl.impl.LocalizableXMLStringHelper.toLocalisableString(LocalizableXMLStringHelper.java:347)
at curam.core.sl.impl.LocalizableXMLStringHelper.toPlainText(LocalizableXMLStringHelper.java:247)
at curam.core.sl.infrastructure.impl.EvidenceController.listActive(EvidenceController.java:10571)
at curam.pdc.impl.PDCAlternateID.cancelAlternateIDEvidence(PDCAlternateID.java:439)
at curam.pdc.impl.PDCAlternateID.cancel(PDCAlternateID.java:400)
at curam.identityhub.impl.IdentityHubDAOImpl.disconnectConcernFromIdentityHub(IdentityHubDAOImpl.java:295)
at curam.identityhub.facade.impl.IdentityHub.disconnectConcernFromIdentityHub(IdentityHub.java:110)
at curam.identityhub.facade.fact.IdentityHubFactory.disconnectConcernFromIdentityHub(IdentityHubFactory.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springsource.loaded.ri.OriginalClassInvoker.invoke(OriginalClassInvoker.java:47)
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1272)
at curam.util.internal.CuramSessionBean.invoke(CuramSessionBean.java:272)
at curam.util.internal.CuramSessionBean.invoke(CuramSessionBean.java:333)
at curam.util.internal.OnlineMethod.rmiInvoke(OnlineMethod.java:96)
at curam.util.invoke.RMIMethodImpl.invoke(RMIMethodImpl.java:121)
at curam.util.invoke._RMIMethodImpl_Tie.invoke__CORBA_WStringValue__CORBA_WStringValue__org_omg_boxedRMI_java_lang_seq1_Object(_RMIMethodImpl_Tie.java:144)
at curam.util.invoke._RMIMethodImpl_Tie._invoke(_RMIMethodImpl_Tie.java:84)
at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:637)
at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:189)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1682)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1540)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:922)
at com.sun.corba.se.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:181)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:694)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.dispatch(SocketOrChannelConnectionImpl.java:451)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.doWork(SocketOrChannelConnectionImpl.java:1213)
at com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.performWork(ThreadPoolImpl.java:471)
at com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:500)
Caused by: org.springsource.loaded.ReloadException: Problem defining class curam.dynamicevidence.message.DynamicEvidenceGeneral__I
at org.springsource.loaded.TypeRegistry.defineClass(TypeRegistry.java:1071)
at org.springsource.loaded.ReloadableType.rewriteCallSitesAndDefine(ReloadableType.java:807)
at org.springsource.loaded.ReloadableType.(ReloadableType.java:151)
at org.springsource.loaded.TypeRegistry.addType(TypeRegistry.java:886)
at org.springsource.loaded.agent.SpringLoadedPreProcessor.preProcess(SpringLoadedPreProcessor.java:245)
at org.springsource.loaded.agent.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:102)
... 54 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springsource.loaded.TypeRegistry.defineClass(TypeRegistry.java:1066)
... 59 more
Caused by: java.lang.NoClassDefFoundError: curam/dynamicevidence/message/DynamicEvidenceGeneral__I (wrong name: curam/dynamicevidence/message/DYNAMICEVIDENCEGENERAL__I)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.lang.ClassLoader.defineClass(ClassLoader.java:466)
... 63 more

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.