Uploaded image for project: 'Weld'
  1. Weld
  2. WELD-908

Random NPE while serializing bean sent

    XMLWordPrintable

Details

    • Bug
    • Resolution: Can't Do
    • Major
    • None
    • 1.1.0.Final
    • None
    • None

    Description

      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); }

      }

      Attachments

        Activity

          People

            Unassigned Unassigned
            ymenager_jira Yannick Menager (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: