users@jax-rpc.java.net

Re: Problem sending large String

From: Doug Kohlert <doug.kohlert_at_sun.com>
Date: Wed, 05 Feb 2003 17:15:30 -0800

K.C.
This bug occurs when a ']' character in a large SOAP message appears
near the end of on input buffer that we parse from. So as long as your
strings do not contain any ']' characters you should not encounter
this problem.

If you encounter this error with a sting that does not have
this ']' character, please let me know.

Thank you

Baltz, Kenneth wrote:
> So you're saying that the bug you know of involves large strings with
> XML data? I.e. small strings with XML work, and large strings without
> XML work, but not the combination? I want to know before I set up the test.
>
> K.C.
>
> -----Original Message-----
> From: Doug Kohlert [mailto:doug.kohlert_at_SUN.COM]
> Sent: Wednesday, February 05, 2003 4:35 PM
> To: JAXRPC-INTEREST_at_JAVA.SUN.COM
> Subject: Re: Problem sending large String
>
>
> K.C.
> I believe you have encountered a known bug that will be fixed in the
> jwsdp 1.1 release due out in a few weeks. Would you mind trying to see
> if you can pass large strings that do not contain XML data and let me
> know if you have any problems?
>
> Thank you for using JAXRPC RI.
>
> Baltz, Kenneth wrote:
> > I ran into serialization issues today caused by passing a large String
> > (>100,000 bytes). Changing the interface to take a byte[] instead of a
> > String fixed the problem. In other words, passing a 100KB byte[]
> > worked, but a 100KB String caused Deserialization errors with a root
> > cause of ArrayIndexOutOfBounds. The String contained XML data including
> > some <![CDATA[ ]]> sections, but I haven't had trouble passing that
> > before.
> >
> > Here's the related trace.
> >
> > XML parsing error: com.sun.xml.rpc.sp.ParseException:391:
> > java.lang.ArrayIndexOutOfBoundsException
> > at
> com.sun.xml.rpc.streaming.XMLReaderImpl.next(XMLReaderImpl.java:110)
> > at
> >
> com.sun.xml.rpc.encoding.SimpleTypeSerializer.deserialize(SimpleTypeSerializer.java:108)
>
> >
> > at
> >
> com.sun.xml.rpc.encoding.AttachmentSerializer.deserialize(AttachmentSerializer.java:138)
>
> >
> > at
> >
> com.sun.xml.rpc.encoding.ReferenceableSerializerImpl.deserialize(ReferenceableSerializerImpl.java:115)
>
> >
> > at
> >
> com.firstam.Profiler.CpwsIF_SaveLookupTables_RequestStruct__cpws__SOAPSerializer.doDeserialize(CpwsIF_SaveLookupTables_RequestSt
>
> >
> > at
> >
> com.sun.xml.rpc.encoding.ObjectSerializerBase.deserialize(ObjectSerializerBase.java:165)
>
> >
> > at
> >
> com.sun.xml.rpc.encoding.ReferenceableSerializerImpl.deserialize(ReferenceableSerializerImpl.java:115)
>
> >
> > at
> >
> com.firstam.Profiler.CpwsIF_Tie.deserialize_saveLookupTables(CpwsIF_Tie.java:4622)
>
> >
> > at
> >
> com.firstam.Profiler.CpwsIF_Tie.readFirstBodyElement(CpwsIF_Tie.java:3729)
> > at
> >
> com.sun.xml.rpc.server.StreamingHandler.handle(StreamingHandler.java:164)
> > at
> >
> com.sun.xml.rpc.server.http.JAXRPCServletDelegate.doPost(JAXRPCServletDelegate.java:280)
>
> >
> > at
> > com.sun.xml.rpc.server.http.JAXRPCServlet.doPost(JAXRPCServlet.java:69)
> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> > at
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
>
> >
> > at
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
>
> >
> > at
> >
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
>
> >
> > at
> >
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)
>
> >
> > at
> >
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)
> > at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> > at
> >
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>
> >
> > at
> >
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)
>
> >
> > at
> >
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)
> > at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> > at
> >
> org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2349)
> > at
> >
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
>
> >
> > at
> >
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)
>
> >
> > at
> >
> org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
>
> >
> > at
> >
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)
>
> >
> > at
> >
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:171)
>
> >
> > at
> >
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)
>
> >
> > at
> >
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)
> > at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> > at
> >
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
>
> >
> > at
> >
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)
>
> >
> > at
> >
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:469)
> > at
> >
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)
>
> >
> > at
> >
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)
> > at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> > at
> > org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
> > at
> >
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)
> > at
> >
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:376)
>
> >
> > at
> >
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)
> > at
> >
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:518)
>
> >
> > at java.lang.Thread.run(Thread.java:536)
> >
> >
> > K.C.
> >
>
>
> --
> Doug Kohlert
> Java Software Division
> Sun Microsystems, Inc.
> phone: 503 345-9806
>


-- 
Doug Kohlert
Java Software Division
Sun Microsystems, Inc.
phone: 503 345-9806