users@jax-rpc.java.net

Re: Problem sending large String

From: Baltz, Kenneth <Kbaltz_at_FIRSTAM.COM>
Date: Wed, 05 Feb 2003 16:50:15 -0800

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(SimpleTypeSerializ
er.java:108)
>
> at
>
com.sun.xml.rpc.encoding.AttachmentSerializer.deserialize(AttachmentSerializ
er.java:138)
>
> at
>
com.sun.xml.rpc.encoding.ReferenceableSerializerImpl.deserialize(Referenceab
leSerializerImpl.java:115)
>
> at
>
com.firstam.Profiler.CpwsIF_SaveLookupTables_RequestStruct__cpws__SOAPSerial
izer.doDeserialize(CpwsIF_SaveLookupTables_RequestSt
>
> at
>
com.sun.xml.rpc.encoding.ObjectSerializerBase.deserialize(ObjectSerializerBa
se.java:165)
>
> at
>
com.sun.xml.rpc.encoding.ReferenceableSerializerImpl.deserialize(Referenceab
leSerializerImpl.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(JAXRPCServletDelega
te.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(Application
FilterChain.java:247)
>
> at
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
>
> at
>
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:260)
>
> at
>
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(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.ja
va:191)
>
> at
>
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(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.invok
eNext(StandardPipeline.java:646)
>
> at
>
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:170)
>
> at
>
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:644)
>
> at
>
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:171
)
>
> at
>
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(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.invok
eNext(StandardPipeline.java:646)
>
> at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:469)
> at
>
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(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.processConne
ction(Http11Protocol.java:376)
>
> at
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)
> at
>
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:518)
>
> at java.lang.Thread.run(Thread.java:536)
>
>
> K.C.
>


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