You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-user@jakarta.apache.org by David Delbecq <de...@oma.be> on 2006/02/02 13:36:33 UTC

Bug in webdav servlet?

Background:
We are handling lots of documents based on slide cm, maitaining them
using the webdav servlet.
As our users sometimes 'cut and paste' a title from their text editor to
the metadatas, there can sometimes be unusal characters, like the funny
microsoft opening and closing - " -

Today i tried to list the metadatas of a few documents and i had the
surprise to discover it has become impossible to do. The servlet is
responding things like this:

http-8081-Processor5, 02-Feb-2006 12:19:25, unauthenticated, PROPFIND,
207 "Multi-Status", 199 ms, /files/00/memorandum/
org.jdom.IllegalDataException: The data "(NS02-08) Mise à jour du
formulaire de demande dimpression dune publication non périodique." is
not legal for a JDOM character content: 0x19 is not a legal XML character.
        at org.jdom.Text.setText(Text.java:188)
        at org.jdom.Text.<init>(Text.java:99)
        at org.jdom.Element.setText(Element.java:630)
        at
org.apache.slide.webdav.util.PropertyRetrieverImpl.getPropertyElement(PropertyRetrieverImpl.java:600)
        at
org.apache.slide.webdav.util.PropertyRetrieverImpl.getPropertyElement(PropertyRetrieverImpl.java:535)
        at
org.apache.slide.webdav.util.PropertyRetrieverImpl.getAllPropertiesOfObject(PropertyRetrieverImpl.java:458)
        at
org.apache.slide.webdav.util.PropertyRetrieverImpl.getPropertiesOfObject(PropertyRetrieverImpl.java:300)
        at
org.apache.slide.webdav.util.PropertyRetrieverImpl.getPropertiesOfObject(PropertyRetrieverImpl.java:264)
        at
org.apache.slide.webdav.method.PropFindMethod.getPropertiesOfObject(PropFindMethod.java:509)
        at
org.apache.slide.webdav.method.PropFindMethod.executeRequest(PropFindMethod.java:292)
        at
org.apache.slide.webdav.method.AbstractWebdavMethod.run(AbstractWebdavMethod.java:405)
        at
org.apache.slide.webdav.WebdavServlet.service(WebdavServlet.java:155)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at
org.apache.slide.webdav.filter.LogFilter.doFilter(LogFilter.java:141)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at
be.rmi.intranet.filter.PrincipalUser.doFilter(PrincipalUser.java:66)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:407)
        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.valves.AccessLogValve.invoke(AccessLogValve.java:526)
        at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:526)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:738)
        at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
        at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:534)

another document show a similar problem:

http-8081-Processor5, 02-Feb-2006 12:19:30, unauthenticated, PROPFIND,
500 "Internal Server Error", 108 ms,
/files/00/memorandum/d0_memo_2002-08_fr.pdf
org.jdom.IllegalDataException: The data "(DN02-08) Bijwerken van het
formulier Aanvraag voor het drukken van een niet -periodieke publicatie"
is not legal for a JDOM character content: 0x1c is not a legal XML
character.
        at org.jdom.Text.setText(Text.java:188)
        at org.jdom.Text.<init>(Text.java:99)
        at org.jdom.Element.setText(Element.java:630)
        at
org.apache.slide.webdav.util.PropertyRetrieverImpl.getPropertyElement(PropertyRetrieverImpl.java:600)
        at
org.apache.slide.webdav.util.PropertyRetrieverImpl.getPropertyElement(PropertyRetrieverImpl.java:535)
        at
org.apache.slide.webdav.util.PropertyRetrieverImpl.getAllPropertiesOfObject(PropertyRetrieverImpl.java:458)
        at
org.apache.slide.webdav.util.PropertyRetrieverImpl.getPropertiesOfObject(PropertyRetrieverImpl.java:300)
        at
org.apache.slide.webdav.util.PropertyRetrieverImpl.getPropertiesOfObject(PropertyRetrieverImpl.java:264)
        at
org.apache.slide.webdav.method.PropFindMethod.getPropertiesOfObject(PropFindMethod.java:509)
        at
org.apache.slide.webdav.method.PropFindMethod.executeRequest(PropFindMethod.java:292)
        at
org.apache.slide.webdav.method.AbstractWebdavMethod.run(AbstractWebdavMethod.java:405)
        at
org.apache.slide.webdav.WebdavServlet.service(WebdavServlet.java:155)

Somehow slide allowed users to set a property to a value which it is
unable to send back later. The problem is quite big as this make the
concerned document unmaintainable (webdav clients are issuing a propfind
before issuing a proppatch). Is it possible to easily ask webdav to
protect the text (using CDATA instead of TEXT for example)?

Thanks for followup


---------------------------------------------------------------------
To unsubscribe, e-mail: slide-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-user-help@jakarta.apache.org