0

I am trying to adopt HotSwapAgent for my project in IntelliJ. I set decvm-11.0.15 as my project SDK. Within my Run/Debug configuration, I set as: Run/Debug Configuration

I packaged my application as an ear, and under directory of META-INF/resources, I put a hotswap-agent.properties. The file looks like:

extraClasspath=
watchResources=
webappDir=
disabledPlugins=
autoHotswap=true
LOGGER=info

When I tried to run/debug the application, I got errors like:

HOTSWAP AGENT: 16:21:53.631 INFO (org.hotswap.agent.HotswapAgent) - Loading Hotswap agent {1.4.2-SNAPSHOT} - unlimited runtime class redefinition.
HOTSWAP AGENT: 16:21:53.910 INFO (org.hotswap.agent.config.PluginRegistry) - Discovered plugins: [Hotswapper, WatchResources, AnonymousClassPatch, ClassInitPlugin, JdkPlugin, Hibernate, Hibernate3JPA, Hibernate3, Spring, Jersey1, Jersey2, Jetty, Tomcat, ZK, Logback, Log4j2, MyFaces, Mojarra, Omnifaces, ELResolver, WildFlyELResolver, OsgiEquinox, Owb, OwbJakarta, Proxy, WebObjects, Weld, WeldJakarta, JBossModules, ResteasyRegistry, Deltaspike, GlassFish, Weblogic, Vaadin, Wicket, CxfJAXRS, FreeMarker, Undertow, MyBatis, IBatis, JacksonPlugin, Idea]
HOTSWAP AGENT: 16:21:53.912 INFO (org.hotswap.agent.HotswapAgent) - Loading Hotswap agent {1.4.2-SNAPSHOT} - unlimited runtime class redefinition.
HOTSWAP AGENT: 16:21:53.973 INFO (org.hotswap.agent.config.PluginRegistry) - Discovered plugins: []
HOTSWAP AGENT: 16:21:53.975 INFO (org.hotswap.agent.HotswapAgent) - Loading Hotswap agent {1.4.2-SNAPSHOT} - unlimited runtime class redefinition.
HOTSWAP AGENT: 16:21:54.073 INFO (org.hotswap.agent.config.PluginRegistry) - Discovered plugins: []
Starting HotswapAgent 'C:\Java\dcevm-11.0.15+1\lib\hotswap\hotswap-agent.jar'
HOTSWAP AGENT: 16:21:54.247 ERROR (org.hotswap.agent.annotation.handler.PluginClassFileTransformer) - InvocationTargetException in transform method on plugin 'class org.hotswap.agent.plugin.jbossmodules.JBossModulesPlugin' class 'org/jboss/modules/ModuleClassLoader'.
java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.hotswap.agent.annotation.handler.PluginClassFileTransformer.transform(PluginClassFileTransformer.java:220)
    at org.hotswap.agent.annotation.handler.PluginClassFileTransformer.transform(PluginClassFileTransformer.java:112)
    at org.hotswap.agent.util.HotswapTransformer.transform(HotswapTransformer.java:246)
    at java.instrument/java.lang.instrument.ClassFileTransformer.transform(ClassFileTransformer.java:246)
    at java.instrument/sun.instrument.TransformerManager.transform(TransformerManager.java:188)
    at java.instrument/sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:563)
    at java.base/java.lang.ClassLoader.defineClass1(Native Method)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
    at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
    at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800)
    at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
    at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3166)
    at java.base/java.lang.Class.getMethodsRecursive(Class.java:3307)
    at java.base/java.lang.Class.getMethod0(Class.java:3293)
    at java.base/java.lang.Class.getMethod(Class.java:2106)
    at java.base/sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:816)
    at java.base/sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:675)
Caused by: org.hotswap.agent.javassist.bytecode.DuplicateMemberException: duplicate field: $$ha$prepend
    at org.hotswap.agent.javassist.bytecode.ClassFile.testExistingField(ClassFile.java:677)
    at org.hotswap.agent.javassist.bytecode.ClassFile.addField(ClassFile.java:657)
    at org.hotswap.agent.javassist.CtClassType.addField(CtClassType.java:1432)
    at org.hotswap.agent.javassist.CtClass.addField(CtClass.java:1117)
    at org.hotswap.agent.plugin.jbossmodules.ModuleClassLoaderTransformer.patchModuleClassLoader(ModuleClassLoaderTransformer.java:64)
    ... 26 more

How can I fix those issues to make the agent run?

Joey
  • 45
  • 5

0 Answers0