Details
-
Bug
-
Resolution: Done
-
Major
-
jboss-fuse-6.3
-
None
-
%
-
6.3 Sprint 3 (Feb 29 - Mar 25)
Description
I stumbled across this problem whilst having a quick look into ENTESB-4379.
HawtIO enables users to add new endpoint configurations to camel contexts. The UI should display a helpful select field which provides a list of available camel components. The Jolokia request that populates this data seems broken ever since the camel subsystem upgraded to the revised camel-cdi implementation.
Given a Jolokia POST to:
http://localhost:8080/hawtio/jolokia/?maxDepth=7&maxCollectionSize=5000&ignoreErrors=true&canonicalNaming=false
With Data:
{"type":"exec","mbean":"org.apache.camel:context=camel-1,type=context,name=\"camel-1\"","operation":"findComponentNames"}
Results in the error response:
{"request":{"mbean":"org.apache.camel:context=camel-1,type=context,name=\"camel-1\"","type":"exec","operation":"findComponentNames"},"stacktrace":"java.lang.IllegalStateException: JBAS016071: Singleton not set for ModuleClassLoader for Module \"org.apache.camel.core:main\" from local module loader @77ec78b9 (finder: local module finder @1a3869f4 (roots: \/tmp\/appserver\/jboss-eap-6.4\/modules,\/tmp\/appserver\/jboss-eap-6.4\/modules\/system\/layers\/fuse,\/tmp\/appserver\/jboss-eap-6.4\/modules\/system\/layers\/soa,\/tmp\/appserver\/jboss-eap-6.4\/modules\/system\/layers\/base)). This means that you are trying to access a weld deployment with a Thread Context ClassLoader that is not associated with the deployment. at org.jboss.as.weld.services.ModuleGroupSingletonProvider$TCCLSingleton.get(ModuleGroupSingletonProvider.java:76) at org.jboss.weld.Container.instance(Container.java:54) at org.jboss.weld.bean.proxy.ClientProxyProvider$1.load(ClientProxyProvider.java:49) at org.jboss.weld.bean.proxy.ClientProxyProvider$1.load(ClientProxyProvider.java:46) at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589) at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374) at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2337) at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2252) at com.google.common.cache.LocalCache.get(LocalCache.java:3990) at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3994) at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4878) at org.jboss.weld.util.cache.LoadingCacheUtils.getCacheValue(LoadingCacheUtils.java:49) at org.jboss.weld.util.cache.LoadingCacheUtils.getCastCacheValue(LoadingCacheUtils.java:73) at org.jboss.weld.bean.proxy.ClientProxyProvider.getClientProxy(ClientProxyProvider.java:102) at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:621) at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:653) at org.apache.camel.cdi.BeanManagerHelper.getReference(BeanManagerHelper.java:56) at org.apache.camel.cdi.CdiCamelRegistry.findByTypeWithName(CdiCamelRegistry.java:71) at org.apache.camel.impl.PropertyPlaceholderDelegateRegistry.findByTypeWithName(PropertyPlaceholderDelegateRegistry.java:70) at org.apache.camel.util.CamelContextHelper.findComponents(CamelContextHelper.java:454) at org.apache.camel.util.CamelContextHelper.findComponents(CamelContextHelper.java:378) at org.apache.camel.impl.DefaultCamelContext.findComponents(DefaultCamelContext.java:1321) at org.apache.camel.management.mbean.ManagedCamelContext.findComponents(ManagedCamelContext.java:546) at org.apache.camel.management.mbean.ManagedCamelContext.findComponentNames(ManagedCamelContext.java:571) 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:497) at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71) at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275) at javax.management.modelmbean.RequiredModelMBean$4.run(RequiredModelMBean.java:1252) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1246) at javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:1085) at org.apache.camel.management.MixinRequiredModelMBean.invoke(MixinRequiredModelMBean.java:70) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) at org.jboss.as.jmx.PluggableMBeanServerImpl$TcclMBeanServer.invoke(PluggableMBeanServerImpl.java:1468) at org.jboss.as.jmx.PluggableMBeanServerImpl.invoke(PluggableMBeanServerImpl.java:740) at org.jolokia.handler.ExecHandler.doHandleRequest(ExecHandler.java:98) at org.jolokia.handler.ExecHandler.doHandleRequest(ExecHandler.java:40) at org.jolokia.handler.JsonRequestHandler.handleRequest(JsonRequestHandler.java:89) at org.jolokia.backend.MBeanServerExecutorLocal.handleRequest(MBeanServerExecutorLocal.java:109) at org.jolokia.backend.MBeanServerHandler.dispatchRequest(MBeanServerHandler.java:159) at org.jolokia.backend.LocalRequestDispatcher.dispatchRequest(LocalRequestDispatcher.java:99) at org.jolokia.backend.BackendManager.callRequestDispatcher(BackendManager.java:411) at org.jolokia.backend.BackendManager.handleRequest(BackendManager.java:158) at org.jolokia.http.HttpRequestHandler.executeRequest(HttpRequestHandler.java:197) at org.jolokia.http.HttpRequestHandler.handlePostRequest(HttpRequestHandler.java:137) at org.jolokia.http.AgentServlet$3.handleRequest(AgentServlet.java:420) at org.jolokia.http.AgentServlet.handleSecurely(AgentServlet.java:313) at org.jolokia.http.AgentServlet.handle(AgentServlet.java:284) at org.jolokia.http.AgentServlet.doPost(AgentServlet.java:252) at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at io.hawt.web.AuthenticationFilter$2.run(AuthenticationFilter.java:166) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at io.hawt.web.AuthenticationFilter.executeAs(AuthenticationFilter.java:163) at io.hawt.web.AuthenticationFilter.doFilter(AuthenticationFilter.java:130) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at io.hawt.web.XFrameOptionsFilter.doFilter(XFrameOptionsFilter.java:28) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at io.hawt.web.CORSFilter.doFilter(CORSFilter.java:42) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at io.hawt.web.SessionExpiryFilter.process(SessionExpiryFilter.java:148) at io.hawt.web.SessionExpiryFilter.doFilter(SessionExpiryFilter.java:46) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:231) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:150) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:854) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:926) at java.lang.Thread.run(Thread.java:745)\n","error_type":"java.lang.IllegalStateException","error":"java.lang.IllegalStateException : JBAS016071: Singleton not set for ModuleClassLoader for Module \"org.apache.camel.core:main\" from local module loader @77ec78b9 (finder: local module finder @1a3869f4 (roots: \/tmp\/appserver\/jboss-eap-6.4\/modules,\/tmp\/appserver\/jboss-eap-6.4\/modules\/system\/layers\/fuse,\/tmp\/appserver\/jboss-eap-6.4\/modules\/system\/layers\/soa,\/tmp\/appserver\/jboss-eap-6.4\/modules\/system\/layers\/base)). This means that you are trying to access a weld deployment with a Thread Context ClassLoader that is not associated with the deployment.","status":500}
Not sure whether the fault lies in Weld, camel-cdi or the camel subsystem.