NullPointerException when trying to perform a hotswap in tomcat7

1,015 views
Skip to first unread message

Phil Armstrong

unread,
Mar 13, 2015, 4:54:17 PM3/13/15
to hotswa...@googlegroups.com
I am trying to get hotswap working with tomcat7.0.11.0.  I am using java version 1.7.0_75 that has been patched.   I am running the project through netbeans 8.0.  I followed the instructions at: http://hotswapagent.org/quick-start for the basic stuff and https://groups.google.com/forum/#!topic/hotswapagent/ydW5bQMwQqU for the netbeans specific stuff.  I was able to run a normal stand alone java app with the hotswapagent and everything seemed to work quite well.  I ran it and saw that the agent started and I could modify a class by adding a new method and call that method.  On save everything updated as expected.  

Attempting to do the same thing  for a tomcat application does not seem to be working quite right.  I have modified the tomcat platform in netbeans by adding -XXaltjvm=dcevm -javaagent:<mypathtohotspot>/hotswapjava/hotswap-agent.jar.  When I start tomcat everything appears to start correctly.  I get:

HOTSWAP AGENT: 14:38:50.134 INFO (org.hotswap.agent.config.PluginRegistry) - Plugin 'org.hotswap.agent.plugin.tomcat.TomcatPlugin' initialized in ClassLoader 'WebappClassLoader
  context: /perseus-controller
  delegate: false
  repositories:
    /WEB-INF/classes/
----------> Parent Classloader:

When I go in and make any change to a class however I get the following error:

HOTSWAP AGENT: 14:39:27.562 ERROR (org.hotswap.agent.util.HotswapTransformer) - Error transforming class 'com/ca/perseus/perseuscontrollerclient/JobQueueClient$RequestRetryHandler'.
java.lang.NullPointerException
at org.apache.catalina.loader.WebappClassLoader.findResources(WebappClassLoader.java:1271)
at java.lang.ClassLoader.getResources(ClassLoader.java:1185)
at org.hotswap.agent.config.PluginConfiguration.<init>(PluginConfiguration.java:63)
at org.hotswap.agent.config.PluginManager.initClassLoader(PluginManager.java:154)
at org.hotswap.agent.annotation.handler.OnClassLoadedHandler.transform(OnClassLoadedHandler.java:104)
at org.hotswap.agent.annotation.handler.OnClassLoadedHandler$1.transform(OnClassLoadedHandler.java:76)
at org.hotswap.agent.util.HotswapTransformer.transform(HotswapTransformer.java:129)
at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:424)

I'm not sure what I should be doing here...



Roy Ling

unread,
May 17, 2015, 10:19:51 PM5/17/15
to hotswa...@googlegroups.com
I encountered the same problem, any solution on this?
Message has been deleted

vladimir dvorak

unread,
May 20, 2015, 11:24:19 AM5/20/15
to hotswa...@googlegroups.com

Could you build last hotswapagent from github repository please? This problem should be already solved, last official release is little bit obsolete. Anyway you can disable tomcat plugin in hotswap-agent.properties - it helped me.

Reply all
Reply to author
Forward
0 new messages