[weld-issues] [JBoss JIRA] Commented: (WELD-908) Random NPE while serializing bean sent

Stuart Douglas (JIRA) jira-events at lists.jboss.org
Tue Jul 12 20:47:23 EDT 2011


    [ https://issues.jboss.org/browse/WELD-908?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12613841#comment-12613841 ] 

Stuart Douglas commented on WELD-908:
-------------------------------------

This looks like a bug on the GF side. That NPE appears to only be reproducable with a custom object output stream. 

> Random NPE while serializing bean sent 
> ---------------------------------------
>
>                 Key: WELD-908
>                 URL: https://issues.jboss.org/browse/WELD-908
>             Project: Weld
>          Issue Type: Bug
>    Affects Versions: 1.1.0.Final
>         Environment: Glassfish 3.1
>            Reporter: Yannick Menager
>
> The problem happens randomly (like 50% of the time), when calling an EJB through it's remote interface, and passing a Session scoped object as an argument, resulting in an NPE:
> java.lang.NullPointerException
>         at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1088)
>         at java.io.ObjectOutputStream.writeUnshared(ObjectOutputStream.java:397)
>         at org.jboss.weld.bean.proxy.util.SerializableProxy.writeObject(SerializableProxy.java:92)
>         at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at com.sun.corba.ee.impl.io.IIOPOutputStream.invokeObjectWriter(IIOPOutputStream.java:646)
>         at com.sun.corba.ee.impl.io.IIOPOutputStream.outputObject(IIOPOutputStream.java:612)
>         at com.sun.corba.ee.impl.io.IIOPOutputStream.simpleWriteObject(IIOPOutputStream.java:196)
>         at com.sun.corba.ee.impl.io.ValueHandlerImpl.writeValueInternal(ValueHandlerImpl.java:235)
>         at com.sun.corba.ee.impl.io.ValueHandlerImpl.writeValueWithVersion(ValueHandlerImpl.java:216)
>         at com.sun.corba.ee.impl.io.ValueHandlerImpl.writeValue(ValueHandlerImpl.java:180)
>         at com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.callWriteValue(CDROutputStream_1_0.java:852)
>         at com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.writeRMIIIOPValueType(CDROutputStream_1_0.java:837)
>         at com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.write_value(CDROutputStream_1_0.java:962)
>         at com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.write_value(CDROutputStream_1_0.java:976)
>         at com.sun.corba.ee.impl.encoding.CDROutputObject.write_value(CDROutputObject.java:521)
>         at com.sun.corba.ee.impl.corba.TCUtility.marshalIn(TCUtility.java:157)
>         at com.sun.corba.ee.impl.corba.AnyImpl.write_value(AnyImpl.java:627)
>         at com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.write_any(CDROutputStream_1_0.java:627)
>         at com.sun.corba.ee.impl.encoding.CDROutputObject.write_any(CDROutputObject.java:489)
>         at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.writeAny(Util.java:366)
>         at com.sun.corba.ee.impl.io.ValueHandlerImpl.write_Array(ValueHandlerImpl.java:499)
>         at com.sun.corba.ee.impl.io.ValueHandlerImpl.writeValueInternal(ValueHandlerImpl.java:233)
>         at com.sun.corba.ee.impl.io.ValueHandlerImpl.writeValueWithVersion(ValueHandlerImpl.java:216)
>         at com.sun.corba.ee.impl.io.ValueHandlerImpl.writeValue(ValueHandlerImpl.java:180)
>         at com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.callWriteValue(CDROutputStream_1_0.java:852)
>         at com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.writeArray(CDROutputStream_1_0.java:768)
>         at com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.write_value(CDROutputStream_1_0.java:949)
>         at com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.write_value(CDROutputStream_1_0.java:976)
>         at com.sun.corba.ee.impl.encoding.CDROutputObject.write_value(CDROutputObject.java:521)
>         at com.sun.corba.ee.impl.copyobject.ORBStreamObjectCopierImpl.copy(ORBStreamObjectCopierImpl.java:76)
>         at com.sun.corba.ee.impl.copyobject.ORBStreamObjectCopierImpl.copy(ORBStreamObjectCopierImpl.java:65)
>         at com.sun.corba.ee.impl.orbutil.copyobject.FallbackObjectCopierImpl.copy(FallbackObjectCopierImpl.java:69)
>         at com.sun.corba.ee.impl.orbutil.copyobject.FallbackObjectCopierImpl.copy(FallbackObjectCopierImpl.java:59)
>         at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.copyObject(Util.java:771)
>         at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.copyObjects(Util.java:742)
>         at com.sun.corba.ee.impl.presentation.rmi.DynamicMethodMarshallerImpl.copyArguments(DynamicMethodMarshallerImpl.java:439)
>         at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:227)
>         at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
> ------------------------------------------
> import java.io.Serializable;
> public class TestObj implements Serializable{
>     private String val;
>     public TestObj() {
>     }
>     public TestObj(String val) {
>         this.val = val;
>     }
>     public String getVal() {
>         return val;
>     }
>     public void setVal(String val) {
>         this.val = val;
>     }
> }
> ------------------------------------------
> @RequestScoped
> @Named("test")
> public class TestWeb {
>     @EJB
>     private RemoteService remoteService;
>     @Inject
>     private TestObj testObj;
>     @Produces
>     @SessionScoped
>     public TestObj create() {
>         return new TestObj("ads");
>     }
>     public String getVal()  {
>         return remoteService.test(testObj);
>     }
> }

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the weld-issues mailing list