4 Replies Latest reply on Sep 22, 2010 1:46 AM by sinthetic4U

    getServiceClient().invoke(lcRequest) error

    sinthetic4U

      hello there

       

      i've got a strange problem when invoking the following line from my java application:

       

          lcResponse = srvClientfactory.getServiceClient().invoke(lcRequest);

       

      to be more precise.

       

      we are using lc for 2 years now and had never problems with this service, although things have changed with ned requirements and one is to produce really large pdf documents (until now we had only a few pages, now these documents should have dozens to hundreds of pages).


      this is the code we are using (pretty straight forward)

       

                  ServiceClientFactory srvClientfactory = ServiceClientFactory.createInstance(props);
                     
                  parameter = getInputParameters(request, tmpXdpName,docData, outputPath, outputFilename);


                  InvocationRequest lcRequest = srvClientfactory.createInvocationRequest(PROCESS_NAME, OPERATION_NAME, parameter, true);

       

                  lcResponse = srvClientfactory.getServiceClient().invoke(lcRequest);

      livecycle is running as a boss service.

       

      smaller documents are not a problem, with larger documents i get the following stacktrace:

       

      2010-09-10 09:46:40,058 ERROR [at.ac.univie.documentbuilder.web.BuildController] - Livecycle invocation error
      java.lang.StackOverflowError
          at at.ac.univie.documentbuilder.web.BuildController.handleRequestInternal(BuildController.ja va:664)
          at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.j ava:153)
          at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControlle rHandlerAdapter.java:48)
          at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:859)
          at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:793)
          at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476 )
          at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:431)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j ava:252)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
          at com.cj.trim.trimFilter.doFilter(Unknown Source)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j ava:202)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
          at at.ac.univie.filter.GZIPFilter.doFilter(GZIPFilter.java:26)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j ava:202)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
          at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
          at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
          at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Htt p11BaseProtocol.java:664)
          at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
          at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.ja va:80)
          at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
          at java.lang.Thread.run(Thread.java:595)
      Caused by: java.lang.StackOverflowError
          at java.io.ObjectOutputStream$ReplaceTable.lookup(ObjectOutputStream.java:2204)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1014)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
          at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:391)
          at org.apache.xerces.dom.NodeImpl.writeObject(Unknown Source)
          at sun.reflect.GeneratedMethodAccessor130.invoke(Unknown Source)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:585)
          at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
          at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
          at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
          at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1347)
          at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)

       

           .... and a few hundreds more of the same kind.

       

      we have increased the memory for the vm - without success.

       

      what we found out ist that the request itself never gets to the livecycle server (at least no log entries).

       

      from calling the service to the errormessage it takes less than a second so i don't think it's a timeout or so ...

      but i'm not sure at all.

       

      my question is if anybody had a similar problem like that.

       

      thanks in advance, any help is welcome ;-)

       

      regards

       

      andy

       


        • 1. Re: getServiceClient().invoke(lcRequest) error
          dawittwe Level 1

          Hi Andy,

          I assume you are running LiveCycle ES 8.2?

           

          We had a similar issue where we got an outOfMemory issue with large files. How large files are you able to convert before you get the stackOverflow error? And, when you invoke the process, do you save the file into memory of the server? Are you able to convert the failing document if you invoke directly from Admin UI?

           

          The reason I am asking is because there is a limitation on LiveCycle ES, as it runs on 32bit OS. If you convert files larger than aprox. 70mb, you will have to write the file to the server's disk instead of memory before conversion. This solved our issue.

           

          Daniel

          • 2. Re: getServiceClient().invoke(lcRequest) error
            sinthetic4U Level 1

            hi daniel

             

            thank you for your answer.

             

            we are running LC 8.0.2 which could be another reason why we have such issues ;-)

             

            the files we are trying to convert aren't that big although i'll check that again and give you additional informations as soon as i have more details about that (we are streaming the files out of a database therefore the size could vary a bit).

             

            we are saving the templatefile (form) to a fileset, the datadocument although is an in-memory xml file (didn't know that this one could be saved prior to invocation of the process).

             

            i think there are still a few things to check and you helped a lot - thank you very much.

             

            'til soon

             

            andy

            • 3. Re: getServiceClient().invoke(lcRequest) error
              sinthetic4U Level 1

              hi daniel

               

              so far i checked a few details

               

              first of all the installed versions

               

              • Sun JDK 1.5.0.14
              • Adobe Forms Designer 8.1
              • Adobe LiveCycle Workbench 8.0.1
              • Adobe LiveCycle Server 8.1

               

              the file itself is not that large (821 kB, 22644 lines) which should not be a big deal i think.

               

              could it be that the installes lc version has some issues which may be fixed in higher versions?

               

              maybe a stupid question - you wrote " Are you able to convert the failing document if you invoke directly from Admin UI?"

              how can this be done? i've searched for a possibility to launch the conversion process but haven't found anything.

               

              the file should be saved prior to invoke the api call? is that right? which means that we should save the xml file, open an inputstream and use this as a reference for the .invoke()?

               

              we have tried a number of things so far, increasing stacksize etc. - without any success.

               

              thank you in advance

               

              andy

              • 4. Re: getServiceClient().invoke(lcRequest) error
                sinthetic4U Level 1

                addendum:

                 

                in the livecycleserverlog there are also entries which might be interessing although i think this is some really wired issue:

                 

                2010-09-22 10:39:27,165 ERROR [org.jboss.ejb.plugins.LogInterceptor] Unexpected Error in method: public abstract com.adobe.idp.dsc.provider.impl.ejb.EjbResponseHolder com.adobe.idp.dsc.provider.impl.ejb.receiver.Invocation.invoke(com.adobe.idp.dsc.provider .impl.ejb.EjbRequestHolder) throws com.adobe.idp.dsc.DSCException,java.rmi.RemoteException
                java.lang.StackOverflowError
                    at java.io.ObjectInputStream$BlockDataInputStream.read(ObjectInputStream.java:2618)
                    at java.io.ObjectInputStream$BlockDataInputStream.readFully(ObjectInputStream.java:2642)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1897)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)

                 

                 

                    [...]


                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                2010-09-22 10:39:27,938 ERROR [org.jboss.ejb.plugins.LogInterceptor] Unexpected Error in method: public abstract com.adobe.idp.dsc.provider.impl.ejb.EjbResponseHolder com.adobe.idp.dsc.provider.impl.ejb.receiver.Invocation.invoke(com.adobe.idp.dsc.provider .impl.ejb.EjbRequestHolder) throws com.adobe.idp.dsc.DSCException,java.rmi.RemoteException
                java.lang.StackOverflowError

                    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
                     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
                     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
                     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
                     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)

                ....

                 

                this is all what i get and i really don't know exactly were to start at this point.

                 

                andy