Bug 1055896

Summary: [GSS] (6.3.0) Cannot get exception as pass-by-reference
Product: [JBoss] JBoss Enterprise Application Platform 6 Reporter: Eiichi Nagai <enagai>
Component: EJBAssignee: Osamu Nagano <onagano>
Status: CLOSED CURRENTRELEASE QA Contact: Jan Martiska <jmartisk>
Severity: unspecified Docs Contact: Russell Dickenson <rdickens>
Priority: unspecified    
Version: 6.2.0CC: kkhan, onagano, smumford
Target Milestone: DR2   
Target Release: EAP 6.3.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
A bug that prevented servlets from getting EJB exceptions as a pass-by reference, even if it was configured to do so, has been corrected in this release.
Story Points: ---
Clone Of:
: 1082880 (view as bug list) Environment:
Last Closed: 2014-06-28 15:29:02 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1082880    

Description Eiichi Nagai 2014-01-21 07:49:48 UTC
Created attachment 853002 [details]
TestEAR.ear - Reproducer

Description of problem:
Even if the pass-by-reference was configured, a servlet cannot get EJB exception as pass-by-reference.

Version-Release number of selected component (if applicable):
EAP 6.2

How reproducible:
always

Steps to Reproduce:
1. Configure EJB pass-by-reference.

ex) standalone.xml
  <subsystem xmlns="urn:jboss:domain:ejb3:1.4">
    --- snip ---
    <in-vm-remote-interface-invocation pass-by-value="false"/>
  </subsystem>

2. Run EAP 6 server.
3. Deploy a TestEAR.ear.
4. Execute "http://localhost:8080/TestApp/TestServlet".
5. Occur following exception

16:43:27,875 ERROR [stderr] (http-/127.0.0.1:8080-1) java.lang.RuntimeException: JBAS014154: Failed to marshal EJB parameters
16:43:27,876 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.as.ejb3.remote.LocalEjbReceiver.clone(LocalEjbReceiver.java:297)
16:43:27,876 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.as.ejb3.remote.LocalEjbReceiver.processInvocation(LocalEjbReceiver.java:253)
16:43:27,876 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181)
16:43:27,876 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.ejb.client.EJBObjectInterceptor.handleInvocation(EJBObjectInterceptor.java:58)
16:43:27,876 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:183)
16:43:27,876 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.ejb.client.EJBHomeInterceptor.handleInvocation(EJBHomeInterceptor.java:83)
16:43:27,877 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:183)
16:43:27,877 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.ejb.client.TransactionInterceptor.handleInvocation(TransactionInterceptor.java:42)
16:43:27,877 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:183)
16:43:27,877 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:125)
16:43:27,877 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:183)
16:43:27,877 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.ejb.client.EJBInvocationHandler.sendRequestWithPossibleRetries(EJBInvocationHandler.java:253)
16:43:27,878 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:198)
16:43:27,878 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:181)
16:43:27,878 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:144)
16:43:27,878 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at com.sun.proxy.$Proxy18.test(Unknown Source)
16:43:27,879 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at test.servlet.TestServlet.doPost(TestServlet.java:50)
16:43:27,879 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at test.servlet.TestServlet.doGet(TestServlet.java:40)
16:43:27,879 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
16:43:27,880 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
16:43:27,880 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295)
16:43:27,880 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
16:43:27,880 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
16:43:27,881 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
16:43:27,881 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
16:43:27,881 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145)
16:43:27,882 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
16:43:27,882 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
16:43:27,882 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336)
16:43:27,882 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
16:43:27,883 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653)
16:43:27,883 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:920)
16:43:27,883 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at java.lang.Thread.run(Thread.java:744)
16:43:27,884 ERROR [stderr] (http-/127.0.0.1:8080-1) Caused by: java.io.NotSerializableException: com.sun.xml.messaging.saaj.soap.ver1_1.SOAPPart1_1Impl
16:43:27,884 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.marshalling.cloner.SerializingCloner.clone(SerializingCloner.java:251)
16:43:27,884 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.marshalling.cloner.SerializingCloner.clone(SerializingCloner.java:129)
16:43:27,884 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.marshalling.cloner.SerializingCloner.cloneFields(SerializingCloner.java:345)
16:43:27,885 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.marshalling.cloner.SerializingCloner.initSerializableClone(SerializingCloner.java:305)
16:43:27,885 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.marshalling.cloner.SerializingCloner.clone(SerializingCloner.java:249)
16:43:27,885 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.marshalling.cloner.SerializingCloner.clone(SerializingCloner.java:129)
16:43:27,885 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.marshalling.cloner.SerializingCloner.cloneFields(SerializingCloner.java:345)
16:43:27,922 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.marshalling.cloner.SerializingCloner.initSerializableClone(SerializingCloner.java:297)
16:43:27,922 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.marshalling.cloner.SerializingCloner.initSerializableClone(SerializingCloner.java:281)
16:43:27,923 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.marshalling.cloner.SerializingCloner.initSerializableClone(SerializingCloner.java:281)
16:43:27,923 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.marshalling.cloner.SerializingCloner.initSerializableClone(SerializingCloner.java:281)
16:43:27,923 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.marshalling.cloner.SerializingCloner.initSerializableClone(SerializingCloner.java:281)
16:43:27,924 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.marshalling.cloner.SerializingCloner.initSerializableClone(SerializingCloner.java:281)
16:43:27,924 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.marshalling.cloner.SerializingCloner.initSerializableClone(SerializingCloner.java:281)
16:43:27,924 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.marshalling.cloner.SerializingCloner.initSerializableClone(SerializingCloner.java:281)
16:43:27,924 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.marshalling.cloner.SerializingCloner.clone(SerializingCloner.java:249)
16:43:27,925 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.marshalling.cloner.SerializingCloner.clone(SerializingCloner.java:129)
16:43:27,925 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.marshalling.cloner.SerializingCloner.cloneFields(SerializingCloner.java:345)
16:43:27,925 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.marshalling.cloner.SerializingCloner.initSerializableClone(SerializingCloner.java:305)
16:43:27,926 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.marshalling.cloner.SerializingCloner.clone(SerializingCloner.java:249)
16:43:27,926 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.marshalling.cloner.SerializingCloner.clone(SerializingCloner.java:129)
16:43:27,926 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.marshalling.cloner.SerializingCloner.cloneFields(SerializingCloner.java:345)
16:43:27,927 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.marshalling.cloner.SerializingCloner.initSerializableClone(SerializingCloner.java:297)
16:43:27,927 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.marshalling.cloner.SerializingCloner.initSerializableClone(SerializingCloner.java:281)
16:43:27,927 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.marshalling.cloner.SerializingCloner.initSerializableClone(SerializingCloner.java:281)
16:43:27,927 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.marshalling.cloner.SerializingCloner.initSerializableClone(SerializingCloner.java:281)
16:43:27,928 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.marshalling.cloner.SerializingCloner.clone(SerializingCloner.java:249)
16:43:27,929 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.marshalling.cloner.SerializingCloner.clone(SerializingCloner.java:129)
16:43:27,930 ERROR [stderr] (http-/127.0.0.1:8080-1) 	at org.jboss.as.ejb3.remote.LocalEjbReceiver.clone(LocalEjbReceiver.java:295)
16:43:27,931 ERROR [stderr] (http-/127.0.0.1:8080-1) 	... 32 more

Comment 2 Osamu Nagano 2014-02-25 05:05:40 UTC
Pull request sent:
https://github.com/jbossas/jboss-eap/pull/968

Comment 3 Jan Martiska 2014-03-06 12:13:55 UTC
Verified in EAP 6.3.0.DR2.