4 Replies Latest reply on Dec 3, 2001 2:42 AM by 3004

    Marshalling exception

    3004

      Hi
      I have encountered an error marshalling arguments exception with some piece of
      code. This happens while a call is made to the session bean method by the client
      program ,( involves passing of two arguments one of which is a serializable data
      object, and the other being a string).

      This occurs only for very large volume of data processed by the client. These
      data objects are stored in a vector and passed to the session bean in a for loop.
      The error occurs randomly after a certain number of data objects are processed.

      The application uses Weblogic 5.1 as the app. server on Solaris platform ,The
      JDK version used is a jdk 1.2.2_08 with service pack 8.

      Thje exception thrown is as follows:

      java.io.UTFDataFormatException
      at java.io.DataOutputStream.writeUTF(DataOutputStream.java, Compiled Code)
      at java.io.ObjectOutputStream.writeUTF(ObjectOutputStream.java, Compiled
      Code)
      at java.io.ObjectOutputStream.outputString(ObjectOutputStream.java, Compiled
      Code)
      at java.io.ObjectOutputStream.checkSubstitutableSpecialClasses(ObjectOutputStream.java,
      Compiled Code)
      at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java, Compiled
      Code)
      at java.io.ObjectOutputStream.outputClassFields(ObjectOutputStream.java,
      Compiled Code)
      at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java,
      Compiled Code)
      at java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java, Compiled
      Code)
      at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java, Compiled
      Code)
      at weblogic.common.internal.WLObjectOutputStreamBase.writeObject(WLObjectOutputStreamBase.java:118)
      at weblogic.common.internal.WLObjectOutputStreamBase.writeSpecial(WLObjectOutputStreamBase.java,
      Compiled Code)
      at weblogic.common.internal.WLObjectOutputStreamBase.writeObject(WLObjectOutputStreamBase.java,
      Compiled Code)
      at weblogic.common.internal.WLObjectOutputStreamBase.writeObjectWL(WLObjectOutputStreamBase.java,
      Compiled Code)
      at weblogic.rmi.extensions.AbstractOutputStream2.writeObject(AbstractOutputStream2.java,
      Compiled Code)
      at weblogic.rmi.extensions.AbstractOutputStream.writeObject(AbstractOutputStream.java,
      Compiled Code)
      at net.line.ov.etxatx.session.ImportEtxAtxSessionBeanEOImpl_WLStub.updateTasks(ImportEtxAtxSessionBeanEOImpl_WLStub.java:209)
      at net.line.ov.etxatx.session.ImportEtxAtxSessionBeanEOImpl_ServiceStub.updateTasks(ImportEtxAtxSessionBeanEOImpl_ServiceStub.java,
      Compiled C
      ode)
      at net.line.ov.beans.etxatx.client.ImportEtxAtxProcessor.startImportingEtxAtx(ImportEtxAtxProcessor.java,
      Compiled Code)
      at net.line.ov.util.MQPollingClient.onMessage(MQPollingClient.java:265)
      at com.ibm.mq.jms.MQQueueReceiver.receiveAsync(MQQueueReceiver.java, Compiled
      Code)
      at com.ibm.mq.jms.SessionAsyncHelper.run(SessionAsyncHelper.java, Compiled
      Code)

      --------------- nested within: ------------------
      weblogic.rmi.MarshalException: error marshalling arguments
      - with nested exception:
      [java.io.UTFDataFormatException]
      at net.line.ov.etxatx.session.ImportEtxAtxSessionBeanEOImpl_WLStub.updateTasks(ImportEtxAtxSessionBeanEOImpl_WLStub.java:214)
      at net.line.ov.etxatx.session.ImportEtxAtxSessionBeanEOImpl_ServiceStub.updateTasks(ImportEtxAtxSessionBeanEOImpl_ServiceStub.java,
      Compiled C
      ode)
      at net.line.ov.beans.etxatx.client.ImportEtxAtxProcessor.startImportingEtxAtx(ImportEtxAtxProcessor.java,
      Compiled Code)
      at net.line.ov.util.MQPollingClient.onMessage(MQPollingClient.java:265)
      at com.ibm.mq.jms.MQQueueReceiver.receiveAsync(MQQueueReceiver.java, Compiled
      Code)
      at com.ibm.mq.jms.SessionAsyncHelper.run(SessionAsyncHelper.java, Compiled
      Code)


        • 1. Re: Marshalling exception
          3004
          I think there's a 64k limit on the data, imposed by the sun jdk 1.2 version. just turn of JIT , and check the line number from where this
          exception is thrown.


          yeshwant

          Anna wrote:
          Hi
          I have encountered an error marshalling arguments exception with some piece of
          code. This happens while a call is made to the session bean method by the client
          program ,( involves passing of two arguments one of which is a serializable data
          object, and the other being a string).

          This occurs only for very large volume of data processed by the client. These
          data objects are stored in a vector and passed to the session bean in a for loop.
          The error occurs randomly after a certain number of data objects are processed.

          The application uses Weblogic 5.1 as the app. server on Solaris platform ,The
          JDK version used is a jdk 1.2.2_08 with service pack 8.

          Thje exception thrown is as follows:

          java.io.UTFDataFormatException
          at java.io.DataOutputStream.writeUTF(DataOutputStream.java, Compiled Code)
          at java.io.ObjectOutputStream.writeUTF(ObjectOutputStream.java, Compiled
          Code)
          at java.io.ObjectOutputStream.outputString(ObjectOutputStream.java, Compiled
          Code)
          at java.io.ObjectOutputStream.checkSubstitutableSpecialClasses(ObjectOutputStream.java,
          Compiled Code)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java, Compiled
          Code)
          at java.io.ObjectOutputStream.outputClassFields(ObjectOutputStream.java,
          Compiled Code)
          at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java,
          Compiled Code)
          at java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java, Compiled
          Code)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java, Compiled
          Code)
          at weblogic.common.internal.WLObjectOutputStreamBase.writeObject(WLObjectOutputStreamBase.java:118)
          at weblogic.common.internal.WLObjectOutputStreamBase.writeSpecial(WLObjectOutputStreamBase.java,
          Compiled Code)
          at weblogic.common.internal.WLObjectOutputStreamBase.writeObject(WLObjectOutputStreamBase.java,
          Compiled Code)
          at weblogic.common.internal.WLObjectOutputStreamBase.writeObjectWL(WLObjectOutputStreamBase.java,
          Compiled Code)
          at weblogic.rmi.extensions.AbstractOutputStream2.writeObject(AbstractOutputStream2.java,
          Compiled Code)
          at weblogic.rmi.extensions.AbstractOutputStream.writeObject(AbstractOutputStream.java,
          Compiled Code)
          at net.line.ov.etxatx.session.ImportEtxAtxSessionBeanEOImpl_WLStub.updateTasks(ImportEtxAtxSessionBeanEOImpl_WLStub.java:209)
          at net.line.ov.etxatx.session.ImportEtxAtxSessionBeanEOImpl_ServiceStub.updateTasks(ImportEtxAtxSessionBeanEOImpl_ServiceStub.java,
          Compiled C
          ode)
          at net.line.ov.beans.etxatx.client.ImportEtxAtxProcessor.startImportingEtxAtx(ImportEtxAtxProcessor.java,
          Compiled Code)
          at net.line.ov.util.MQPollingClient.onMessage(MQPollingClient.java:265)
          at com.ibm.mq.jms.MQQueueReceiver.receiveAsync(MQQueueReceiver.java, Compiled
          Code)
          at com.ibm.mq.jms.SessionAsyncHelper.run(SessionAsyncHelper.java, Compiled
          Code)

          --------------- nested within: ------------------
          weblogic.rmi.MarshalException: error marshalling arguments
          - with nested exception:
          [java.io.UTFDataFormatException]
          at net.line.ov.etxatx.session.ImportEtxAtxSessionBeanEOImpl_WLStub.updateTasks(ImportEtxAtxSessionBeanEOImpl_WLStub.java:214)
          at net.line.ov.etxatx.session.ImportEtxAtxSessionBeanEOImpl_ServiceStub.updateTasks(ImportEtxAtxSessionBeanEOImpl_ServiceStub.java,
          Compiled C
          ode)
          at net.line.ov.beans.etxatx.client.ImportEtxAtxProcessor.startImportingEtxAtx(ImportEtxAtxProcessor.java,
          Compiled Code)
          at net.line.ov.util.MQPollingClient.onMessage(MQPollingClient.java:265)
          at com.ibm.mq.jms.MQQueueReceiver.receiveAsync(MQQueueReceiver.java, Compiled
          Code)
          at com.ibm.mq.jms.SessionAsyncHelper.run(SessionAsyncHelper.java, Compiled
          Code)
          • 2. Re: Marshalling exception
            3004
            UTF data (String data) is limited to 64k. Find out where you have long
            strings and do custom serialization (externalizable).

            Peace,

            --
            Cameron Purdy
            Tangosol Inc.
            << Tangosol Server: How Weblogic applications are customized >>
            << Download now from http://www.tangosol.com/download.jsp >>


            "Anna" <annapurnac@planetasia.com> wrote in message
            news:3bff9105$1@newsgroups.bea.com...
            >
            Hi
            I have encountered an error marshalling arguments exception with some
            piece of
            code. This happens while a call is made to the session bean method by the
            client
            program ,( involves passing of two arguments one of which is a
            serializable data
            object, and the other being a string).

            This occurs only for very large volume of data processed by the client.
            These
            data objects are stored in a vector and passed to the session bean in a
            for loop.
            The error occurs randomly after a certain number of data objects are
            processed.
            >
            The application uses Weblogic 5.1 as the app. server on Solaris platform
            ,The
            JDK version used is a jdk 1.2.2_08 with service pack 8.

            Thje exception thrown is as follows:

            java.io.UTFDataFormatException
            at java.io.DataOutputStream.writeUTF(DataOutputStream.java,
            Compiled Code)
            at java.io.ObjectOutputStream.writeUTF(ObjectOutputStream.java,
            Compiled
            Code)
            at
            java.io.ObjectOutputStream.outputString(ObjectOutputStream.java, Compiled
            Code)
            at
            java.io.ObjectOutputStream.checkSubstitutableSpecialClasses(ObjectOutputStre
            am.java,
            Compiled Code)
            at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java,
            Compiled
            Code)
            at
            java.io.ObjectOutputStream.outputClassFields(ObjectOutputStream.java,
            Compiled Code)
            at
            java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java,
            Compiled Code)
            at
            java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java, Compiled
            Code)
            at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java,
            Compiled
            Code)
            at
            weblogic.common.internal.WLObjectOutputStreamBase.writeObject(WLObjectOutput
            StreamBase.java:118)
            at
            weblogic.common.internal.WLObjectOutputStreamBase.writeSpecial(WLObjectOutpu
            tStreamBase.java,
            Compiled Code)
            at
            weblogic.common.internal.WLObjectOutputStreamBase.writeObject(WLObjectOutput
            StreamBase.java,
            Compiled Code)
            at
            weblogic.common.internal.WLObjectOutputStreamBase.writeObjectWL(WLObjectOutp
            utStreamBase.java,
            Compiled Code)
            at
            weblogic.rmi.extensions.AbstractOutputStream2.writeObject(AbstractOutputStre
            am2.java,
            Compiled Code)
            at
            weblogic.rmi.extensions.AbstractOutputStream.writeObject(AbstractOutputStrea
            m.java,
            Compiled Code)
            at
            net.line.ov.etxatx.session.ImportEtxAtxSessionBeanEOImpl_WLStub.updateTasks(
            ImportEtxAtxSessionBeanEOImpl_WLStub.java:209)
            at
            net.line.ov.etxatx.session.ImportEtxAtxSessionBeanEOImpl_ServiceStub.updateT
            asks(ImportEtxAtxSessionBeanEOImpl_ServiceStub.java,
            Compiled C
            ode)
            at
            net.line.ov.beans.etxatx.client.ImportEtxAtxProcessor.startImportingEtxAtx(I
            mportEtxAtxProcessor.java,
            Compiled Code)
            at
            net.line.ov.util.MQPollingClient.onMessage(MQPollingClient.java:265)
            at
            com.ibm.mq.jms.MQQueueReceiver.receiveAsync(MQQueueReceiver.java, Compiled
            Code)
            at com.ibm.mq.jms.SessionAsyncHelper.run(SessionAsyncHelper.java,
            Compiled
            Code)

            --------------- nested within: ------------------
            weblogic.rmi.MarshalException: error marshalling arguments
            - with nested exception:
            [java.io.UTFDataFormatException]
            at
            net.line.ov.etxatx.session.ImportEtxAtxSessionBeanEOImpl_WLStub.updateTasks(
            ImportEtxAtxSessionBeanEOImpl_WLStub.java:214)
            at
            net.line.ov.etxatx.session.ImportEtxAtxSessionBeanEOImpl_ServiceStub.updateT
            asks(ImportEtxAtxSessionBeanEOImpl_ServiceStub.java,
            Compiled C
            ode)
            at
            net.line.ov.beans.etxatx.client.ImportEtxAtxProcessor.startImportingEtxAtx(I
            mportEtxAtxProcessor.java,
            Compiled Code)
            at
            net.line.ov.util.MQPollingClient.onMessage(MQPollingClient.java:265)
            at
            com.ibm.mq.jms.MQQueueReceiver.receiveAsync(MQQueueReceiver.java, Compiled
            Code)
            at com.ibm.mq.jms.SessionAsyncHelper.run(SessionAsyncHelper.java,
            Compiled
            Code)

            • 3. Re: Marshalling exception
              3004
              It is a little strange that java.io.DataOutputStream.writeUTF simply
              does

              if (utflen > 65535)
              throw new UTFDataFormatException();

              instead of

              if (utflen > 65535)
              throw new UTFDataFormatException("some meaningful message");

              Cameron Purdy <cpurdy@tangosol.com> wrote:
              UTF data (String data) is limited to 64k. Find out where you have long
              strings and do custom serialization (externalizable).
              Peace,
              --
              Cameron Purdy
              Tangosol Inc.
              << Tangosol Server: How Weblogic applications are customized >>
              << Download now from http://www.tangosol.com/download.jsp >>
              "Anna" <annapurnac@planetasia.com> wrote in message
              news:3bff9105$1@newsgroups.bea.com...
              Hi
              I have encountered an error marshalling arguments exception with some
              piece of
              code. This happens while a call is made to the session bean method by the
              client
              program ,( involves passing of two arguments one of which is a
              serializable data
              object, and the other being a string).

              This occurs only for very large volume of data processed by the client.
              These
              data objects are stored in a vector and passed to the session bean in a
              for loop.
              The error occurs randomly after a certain number of data objects are
              processed.
              The application uses Weblogic 5.1 as the app. server on Solaris platform
              ,The
              JDK version used is a jdk 1.2.2_08 with service pack 8.

              Thje exception thrown is as follows:

              java.io.UTFDataFormatException
              at java.io.DataOutputStream.writeUTF(DataOutputStream.java,
              Compiled Code)
              at java.io.ObjectOutputStream.writeUTF(ObjectOutputStream.java,
              Compiled
              Code)
              at
              java.io.ObjectOutputStream.outputString(ObjectOutputStream.java, Compiled
              Code)
              at
              java.io.ObjectOutputStream.checkSubstitutableSpecialClasses(ObjectOutputStre
              am.java,
              Compiled Code)
              at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java,
              Compiled
              Code)
              at
              java.io.ObjectOutputStream.outputClassFields(ObjectOutputStream.java,
              Compiled Code)
              at
              java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java,
              Compiled Code)
              at
              java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java, Compiled
              Code)
              at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java,
              Compiled
              Code)
              at
              weblogic.common.internal.WLObjectOutputStreamBase.writeObject(WLObjectOutput
              StreamBase.java:118)
              at
              weblogic.common.internal.WLObjectOutputStreamBase.writeSpecial(WLObjectOutpu
              tStreamBase.java,
              Compiled Code)
              at
              weblogic.common.internal.WLObjectOutputStreamBase.writeObject(WLObjectOutput
              StreamBase.java,
              Compiled Code)
              at
              weblogic.common.internal.WLObjectOutputStreamBase.writeObjectWL(WLObjectOutp
              utStreamBase.java,
              Compiled Code)
              at
              weblogic.rmi.extensions.AbstractOutputStream2.writeObject(AbstractOutputStre
              am2.java,
              Compiled Code)
              at
              weblogic.rmi.extensions.AbstractOutputStream.writeObject(AbstractOutputStrea
              m.java,
              Compiled Code)
              at
              net.line.ov.etxatx.session.ImportEtxAtxSessionBeanEOImpl_WLStub.updateTasks(
              ImportEtxAtxSessionBeanEOImpl_WLStub.java:209)
              at
              net.line.ov.etxatx.session.ImportEtxAtxSessionBeanEOImpl_ServiceStub.updateT
              asks(ImportEtxAtxSessionBeanEOImpl_ServiceStub.java,
              Compiled C
              ode)
              at
              net.line.ov.beans.etxatx.client.ImportEtxAtxProcessor.startImportingEtxAtx(I
              mportEtxAtxProcessor.java,
              Compiled Code)
              at
              net.line.ov.util.MQPollingClient.onMessage(MQPollingClient.java:265)
              at
              com.ibm.mq.jms.MQQueueReceiver.receiveAsync(MQQueueReceiver.java, Compiled
              Code)
              at com.ibm.mq.jms.SessionAsyncHelper.run(SessionAsyncHelper.java,
              Compiled
              Code)

              --------------- nested within: ------------------
              weblogic.rmi.MarshalException: error marshalling arguments
              - with nested exception:
              [java.io.UTFDataFormatException]
              at
              net.line.ov.etxatx.session.ImportEtxAtxSessionBeanEOImpl_WLStub.updateTasks(
              ImportEtxAtxSessionBeanEOImpl_WLStub.java:214)
              at
              net.line.ov.etxatx.session.ImportEtxAtxSessionBeanEOImpl_ServiceStub.updateT
              asks(ImportEtxAtxSessionBeanEOImpl_ServiceStub.java,
              Compiled C
              ode)
              at
              net.line.ov.beans.etxatx.client.ImportEtxAtxProcessor.startImportingEtxAtx(I
              mportEtxAtxProcessor.java,
              Compiled Code)
              at
              net.line.ov.util.MQPollingClient.onMessage(MQPollingClient.java:265)
              at
              com.ibm.mq.jms.MQQueueReceiver.receiveAsync(MQQueueReceiver.java, Compiled
              Code)
              at com.ibm.mq.jms.SessionAsyncHelper.run(SessionAsyncHelper.java,
              Compiled
              Code)

              --
              Dimitri
              • 4. Re: Marshalling exception
                3004
                Better than the JAVAC / JVM dealing with code attributes that exceed 64k.
                (Search the JSP newsgroup to see what I mean ;-)

                Peace,

                --
                Cameron Purdy
                Tangosol Inc.
                << Tangosol Server: How Weblogic applications are customized >>
                << Download now from http://www.tangosol.com/download.jsp >>


                "Dimitri Rakitine" <dr@dima.dhs.org> wrote in message
                news:3c02ae33@newsgroups.bea.com...
                It is a little strange that java.io.DataOutputStream.writeUTF simply
                does

                if (utflen > 65535)
                throw new UTFDataFormatException();

                instead of

                if (utflen > 65535)
                throw new UTFDataFormatException("some meaningful message");