JBoss Community

Re: Lazy modules resolving / linking

created by Ales Justin in JBoss AS7 Development - View the full discussion
I'm looking into properly solving this.

After updating Module, I now simply try to reload based on Module's ClassLoader:

 

Module module = Module.getModule(target);
loader.updateModule(module, dependencySpec);
return new ClassLoaderLocalLoader(module.getClassLoader());

 

but this creates a deadlock:

 

main@1, prio=5, in group 'main', status: 'waiting'

  java.lang.Thread.State: WAITING

      at java.lang.Object.wait(Object.java:-1)

      at java.lang.Object.wait(Object.java:485)

      at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:257)

      at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:52)

      at net.something.xyz.Module$1.run(Module.java:43)

      at org.jboss.as.modules.plugins.run.DefaultRuntime.execute(DefaultRuntime.java:64)

      at org.jboss.as.modules.Main.execute(Main.java:67)

      at org.jboss.asz.test.modules.ModulesTest.execute(ModulesTest.java:123)

      at org.jboss.asz.test.modules.ModulesTest.testArchive(ModulesTest.java:94)

      at org.jboss.asz.test.modules.ondemand.test.OnDemandTestCase.testBasic(OnDemandTestCase.java:47)

      at sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java:-1)

      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)

 

and

 

ClassLoader Thread@1179 daemon, prio=5, in group 'main', status: 'runnable'

  java.lang.Thread.State: RUNNABLE

     blocks main@1

      at java.lang.Class.forName0(Class.java:-1)

      at java.lang.Class.forName(Class.java:247)

      at org.jboss.modules.ClassLoaderLocalLoader.loadClassLocal(ClassLoaderLocalLoader.java:49)

      at org.jboss.as.modules.plugins.run.OnDemandLocalLoader.loadClassLocal(OnDemandLocalLoader.java:99)

      at org.jboss.modules.Module.loadModuleClass(Module.java:727)

      at org.jboss.modules.Module.loadModuleClass(Module.java:692)

      at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:186)

      at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:268)

      at org.jboss.modules.ConcurrentClassLoader.access$400(ConcurrentClassLoader.java:42)

      at org.jboss.modules.ConcurrentClassLoader$LoaderThread.run(ConcurrentClassLoader.java:337)

Reply to this message by going to Community

Start a new discussion in JBoss AS7 Development at Community