chemistry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Slawek Karczewski <slawomir.karczew...@enigma.com.pl>
Subject Question regarding 100 KB limitation, XMLUtils.readText(parser, XMLConstraints.MAX_STRING_LENGTH)
Date Fri, 09 May 2014 07:23:48 GMT
Hello,

 

My name is Slawek Karczewski and I'm working with apache chemistry opencmis
version 0.10.0, trying to send the xml representation of a email document.

I have encountered problem which comes from the limitation of text field
length while parsing xml document, when uploading xml document to Nuxeo
repository over cmis.

 

I'm using createDocument method from Session interface from
org.apache.chemistry.opencmis.cleint.api:

 

(Map<String, ?> properties, ObjectId folderId, ContentStream contentStream,

            VersioningState versioningState);

 

The limitation is defined in  XMLConstraints.java class:

public class XMLConstraints {

    

    public static final int MAX_STRING_LENGTH = 100 * 1024;

.

}

 

And the exception is thrown from XMLUtils line (275):

                    if (sb.length() + len > maxLength) {

                        throw new CmisInvalidArgumentException("String limit
exceeded!");

 

from call :

return XMLUtils.readText(parser, XMLConstraints.MAX_STRING_LENGTH);

 

and stack trace which I'm getting:

org.apache.chemistry.opencmis.commons.exceptions.CmisConnectionException:
Parsing exception!
        at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubSer
vice.parse(AbstractAtomPubService.java:590)
        at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.ObjectServiceImpl.
createDocument(ObjectServiceImpl.java:126)
        at
org.apache.chemistry.opencmis.client.runtime.SessionImpl.createDocument(Sess
ionImpl.java:751)
        at
org.apache.chemistry.opencmis.client.runtime.SessionImpl.createDocument(Sess
ionImpl.java:882)
        at
pl.com.enigma.arch.repository.cmis.mailmanagement.MailManagementImpl.createM
ailHandler(MailManagementImpl.java:353)
        at
pl.com.enigma.arch.repository.cmis.mailmanagement.MailManagementImpl.createM
ail(MailManagementImpl.java:157)
        at
pl.com.enigma.arch.repository.cmis.mailmanagement.MailManagementImpl.createM
ail(MailManagementImpl.java:120)
        at
pl.com.enigma.arch.repository.webservices.mailmanagement.MailManagementServi
ceWSImpl.createMail(MailManagementServiceWSImpl.java:79)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57
)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at
org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInv
oker.java:180)
        at
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:9
6)
        at
org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.invoke(AbstractJAXWSMethodIn
voker.java:178)
        at
org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:66)
        at
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:7
5)
        at
org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInt
erceptor.java:58)
        at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at
org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.jav
a:37)
        at
org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceIn
vokerInterceptor.java:107)
        at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain
.java:271)
        at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationOb
server.java:121)
        at
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDes
tination.java:238)
        at
org.apache.cxf.transport.servlet.ServletController.invokeDestination(Servlet
Controller.java:218)
        at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.
java:198)
        at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.
java:137)
        at
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServ
let.java:158)
        at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractH
TTPServlet.java:243)
        at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServ
let.java:163)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
        at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPSer
vlet.java:219)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:305)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:210)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:222)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:123)
        at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase
.java:472)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171
)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:118)
        at
org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:333
)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
        at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Proce
ssor.java:1004)
        at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(Abstrac
tProtocol.java:589)
        at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:
310)
        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:11
10)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:6
03)
        at java.lang.Thread.run(Thread.java:722)
Caused by:
org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentExceptio
n: String limit exceeded!
        at
org.apache.chemistry.opencmis.commons.impl.XMLUtils.readText(XMLUtils.java:2
75)
        at
org.apache.chemistry.opencmis.commons.impl.XMLWalker.readText(XMLWalker.java
:173)
        at
org.apache.chemistry.opencmis.commons.impl.XMLConverter$PropertyStringXMLWal
ker.addValue(XMLConverter.java:2605)
        at
org.apache.chemistry.opencmis.commons.impl.XMLConverter$PropertyXMLWalker.re
ad(XMLConverter.java:2591)
        at
org.apache.chemistry.opencmis.commons.impl.XMLConverter$PropertyXMLWalker.re
ad(XMLConverter.java:2559)
        at
org.apache.chemistry.opencmis.commons.impl.XMLWalker.walk(XMLWalker.java:53)
        at
org.apache.chemistry.opencmis.commons.impl.XMLConverter$19.read(XMLConverter
.java:2237)
        at
org.apache.chemistry.opencmis.commons.impl.XMLConverter$19.read(XMLConverter
.java:2227)
        at
org.apache.chemistry.opencmis.commons.impl.XMLWalker.walk(XMLWalker.java:53)
        at
org.apache.chemistry.opencmis.commons.impl.XMLConverter$18.read(XMLConverter
.java:2183)
        at
org.apache.chemistry.opencmis.commons.impl.XMLConverter$18.read(XMLConverter
.java:2173)
        at
org.apache.chemistry.opencmis.commons.impl.XMLWalker.walk(XMLWalker.java:53)
        at
org.apache.chemistry.opencmis.commons.impl.XMLConverter.convertObject(XMLCon
verter.java:1099)
        at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.AtomPubParser.pars
eElement(AtomPubParser.java:324)
        at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.AtomPubParser.pars
eEntry(AtomPubParser.java:276)
        at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.AtomPubParser.pars
e(AtomPubParser.java:111)
        at
org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubSer
vice.parse(AbstractAtomPubService.java:588)



 

I've recompiled yours library changing the value to 50 MB. Could you please,
explain me, what is the reason of the 100 kB boundary of text field in xml
file ?

 

Kind regards,

Slawek Karczewski

Senior Software Developer


ENIGMA Systemy Ochrony Informacji Sp. z o. o., ul. Jutrzenki 116, 02-230
Warszawa, tel. 22 570 57 10,  <http://www.enigma.com.pl/> www.enigma.com.pl,
<mailto:ewa.kazmierska@enigma.com.pl> slawomir.karczewski@enigma.com.pl
Sąd Rejonowy dla m. st. Warszawy XIII Wydział Gospodarczy KRS 0000160395,
NIP 526 10 29 614, REGON 011149535, kapitał zakładowy i wpłacony 25.718.500
PLN

 

 


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message