Modify the cluster demo to use the following deployment (see Readme.md) 1 RTGov server node1, node2, node3 When collection is disabled, then the demo works. When collection is enabled on node2 and node3 then the demo works. When collection is enabled on node1 then the demo fails - the client returns log4j:WARN No appenders could be found for logger (org.jboss.logging). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. Oops ... something bad happened. org.switchyard.HandlerException: org.switchyard.SwitchYardException: SWITCHYARD010813: Cannot convert from 'org.switchyard.quickstarts.demo.cluster.Offer' to 'org.switchyard.quickstarts.demo.cluster.Application'. No registered Transformer available for transforming from 'java:org.switchyard.quickstarts.demo.cluster.Offer' to 'java:org.switchyard.quickstarts.demo.cluster.Application'. A Transformer must be registered. And either node2 or node3 contains a NPE in log 09:43:58,419 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/switchyard-remote].[SwitchYardRemotingServlet]] (http-/127.0.0.1:11080-1) JBWEB000236: Servlet.service() for servlet SwitchYardRemotingServlet threw exception: java.lang.NullPointerException at org.switchyard.bus.camel.CamelCompositeContext.setProperties(CamelCompositeContext.java:207) [switchyard-bus-camel-1.1.1-p4-redhat-1.jar:1.1.1-p4-redhat-1] at org.switchyard.component.sca.SwitchYardRemotingServlet.doPost(SwitchYardRemotingServlet.java:90) [switchyard-component-sca-1.1.1-p4-redhat-1.jar:1.1.1-p4-redhat-1] at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1] at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_25] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_25] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_25] at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_25] at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:263) at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:261) at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.7.0_25] at javax.security.auth.Subject.doAsPrivileged(Subject.java:536) [rt.jar:1.7.0_25] at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:295) at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:155) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:288) at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:59) at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:197) at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.7.0_25] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) at org.jboss.modcluster.container.jbossweb.JBossWebContext$RequestListenerValve.event(JBossWebContext.java:91) at org.jboss.modcluster.container.jbossweb.JBossWebContext$RequestListenerValve.invoke(JBossWebContext.java:72) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145) 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:336) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:920) at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25]
The issue is caused ba property 'rtgov.request.received' having null value.
Looks like a change in behaviour in swyd as https://bugzilla.redhat.com/show_bug.cgi?id=1014496 shows clustering worked in ER7. However interestingly the same node1 exception occurred when testing the fix in the community edition at the time - but did not affect the clustered invocation.
Jiri found that remote invoker quickstart is not affected by this issue, so it looks like it is specific to the cluster demo. He tracked the problem down to the fact that the TransientWrapper class is not accessible according to the org.switchyard.serial.graph.node.NodeBuilder class. Therefore have switched to using the Transient property label, which Jiri has tested and seems to work.
Gary Brown <gary> updated the status of jira RTGOV-324 to Resolved
Verified in CR2
Gary Brown <gary> updated the status of jira RTGOV-324 to Closed