users@jax-rpc.java.net

Re: Problem sending large String

From: Doug Kohlert <doug.kohlert_at_sun.com>
Date: Wed, 05 Feb 2003 16:35:00 -0800

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