Uploaded image for project: 'Red Hat Fuse'
  1. Red Hat Fuse
  2. ENTESB-5134

Fuse on EAP: Hawtio findComponentNames lookup fails

    XMLWordPrintable

Details

    • % %
    • 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.

      Attachments

        Activity

          People

            jnethert@redhat.com James Netherton
            jnethert@redhat.com James Netherton
            Lenka Vecera Lenka Vecera (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: