Hi, On Thu, Nov 11, 2010 at 12:55 PM, Vincent Massol <[email protected]> wrote:
> > On Nov 11, 2010, at 11:50 AM, Florin Ciubotaru wrote: > > > Hi Marius, > > > > On Thu, Nov 11, 2010 at 10:06 AM, Marius Dumitru Florea < > > [email protected]> wrote: > > > >> Florin, I suspect you have to update the XHTML that XWord generates when > >> the user inserts an image to match the rendering module expectations. > >> See http://jira.xwiki.org/jira/browse/XWIKI-5554 . Starting with XE 2.5 > >> image and link markers (the XHTML comments used by the rendering module) > >> use the same syntax. Let me know if you need any help. > >> > > > > Indeed, this could be the cause of the issue. I would have expected this > > behavior to be backwords compatible or having the old one deprecated for > > several XWiki versions as we receive this 'formated' XHTML trough public > > APIs. At this point the conversion will simply crash when used by an > older > > client. > > IMO we should check the version of XE when XWord connects to it and if it's > not compatible mention it. > > WDYT? > XOffice already checks the XE version for several reasons. For this particular issue, I'd prefer to implement the fix it rather then saying it's incompatible. First thing to do until a release is done, is to at least document this on the wiki. The client relies on the XML-RPC and REST APIs which means that it should be compatible with the server as long as nothing changes in the API specs. I cannot confirm the exact cause of the issue yet. But based on the hint from Marius I could say that the xhtml parser should have accepted the old image marker for several versions. XML-RPC is a backwards compatible API, once we introduced the conversion methods, it means we commit to having them working properly across several XWiki versions. Florin > > Thanks > -Vincent > > > Florin > > > >> > >> Marius > >> > >> On 11/11/2010 07:11 AM, Paul Harris wrote: > >>> Hi Abel and all, > >>> > >>> This is what the stderr spits out when you try and upload an image via > >>> xword: > >>> 2010-11-11 12:56:46,297 [ > >>> http://localhost:8080/xwiki/bin/admin/XWiki/XWikiPreferences] INFO > >>> .AbstractXWikiMigrationManager - No storage migration required since > >>> current version is [15429] > >>> 2010-11-11 12:58:59,508 [http://130.95.212.23:8080/xwiki/xmlrpc] ERROR > >>> server.XmlRpcStreamServer - execute: Error while performing > request > >>> org.apache.xmlrpc.common.XmlRpcInvocationException: Failed to invoke > >> method > >>> convert in class com.xpn.xwiki.xmlrpc.XWikiXmlRpcApiImpl: Exception > while > >>> performing syntax conversion. > >>> at > >>> > >> > org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.invoke(ReflectiveXmlRpcHandler.java:126) > >>> at > >>> > >> > org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.execute(ReflectiveXmlRpcHandler.java:103) > >>> at > >>> > >> > org.apache.xmlrpc.server.XmlRpcServerWorker.execute(XmlRpcServerWorker.java:43) > >>> at > >> org.apache.xmlrpc.server.XmlRpcServer.execute(XmlRpcServer.java:83) > >>> at > >>> > >> > org.apache.xmlrpc.server.XmlRpcStreamServer.execute(XmlRpcStreamServer.java:191) > >>> at > >>> > >> > org.apache.xmlrpc.webserver.XmlRpcServletServer.execute(XmlRpcServletServer.java:104) > >>> at > >>> > org.apache.xmlrpc.webserver.XmlRpcServlet.doPost(XmlRpcServlet.java:191) > >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) > >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) > >>> at > >>> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) > >>> at > >>> > >> > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) > >>> at > >>> > >> > com.xpn.xwiki.wysiwyg.server.filter.XWikiContextInitializationFilter.doFilter(XWikiContextInitializationFilter.java:87) > >>> at > >>> > >> > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) > >>> at > >>> > >> > com.xpn.xwiki.plugin.webdav.XWikiDavFilter.doFilter(XWikiDavFilter.java:68) > >>> at > >>> > >> > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) > >>> at > >>> > >> > org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:218) > >>> at > >>> > >> > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) > >>> at > >>> > >> > org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:112) > >>> at > >>> > >> > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) > >>> at > >>> > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) > >>> at > >>> > >> > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) > >>> at > >>> > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) > >>> at > >>> > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) > >>> at > >> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) > >>> at > >>> > >> > org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) > >>> at > >>> > >> > org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) > >>> at > >>> > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) > >>> at org.mortbay.jetty.Server.handle(Server.java:326) > >>> at > >>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536) > >>> at > >>> > >> > org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:930) > >>> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747) > >>> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) > >>> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405) > >>> at > >>> > >> > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) > >>> at > >>> > >> > org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) > >>> Caused by: java.lang.RuntimeException: Exception while performing > syntax > >>> conversion. > >>> at > >>> > >> > com.xpn.xwiki.xmlrpc.XWikiXmlRpcApiImpl.convert(XWikiXmlRpcApiImpl.java:1387) > >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > >>> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > >>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > >>> at java.lang.reflect.Method.invoke(Unknown Source) > >>> at > >>> > >> > org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.invoke(ReflectiveXmlRpcHandler.java:112) > >>> ... 34 more > >>> Caused by: org.xwiki.rendering.converter.ConversionException: Failed to > >>> parse input source > >>> at > >>> > >> > org.xwiki.rendering.internal.converter.DefaultConverter.convert(DefaultConverter.java:56) > >>> at > >>> > >> > com.xpn.xwiki.xmlrpc.XWikiXmlRpcApiImpl.convert(XWikiXmlRpcApiImpl.java:1383) > >>> ... 39 more > >>> Caused by: org.xwiki.rendering.parser.ParseException: Failed to parse > >> input > >>> source > >>> at > >>> > >> > org.xwiki.rendering.internal.parser.wikimodel.AbstractWikiModelParser.parse(AbstractWikiModelParser.java:142) > >>> at > >>> > >> > org.xwiki.rendering.internal.parser.wikimodel.AbstractWikiModelParser.parse(AbstractWikiModelParser.java:97) > >>> at > >>> > >> > org.xwiki.rendering.internal.converter.DefaultConverter.convert(DefaultConverter.java:52) > >>> ... 40 more > >>> Caused by: org.wikimodel.wem.WikiParserException: > >>> java.lang.ArrayIndexOutOfBoundsException: 1 > >>> at org.wikimodel.wem.xhtml.XhtmlParser.parse(XhtmlParser.java:107) > >>> at > >>> > >> > org.xwiki.rendering.internal.parser.wikimodel.AbstractWikiModelParser.parse(AbstractWikiModelParser.java:140) > >>> ... 42 more > >>> Caused by: java.lang.ArrayIndexOutOfBoundsException: 1 > >>> at > >>> > >> > org.xwiki.rendering.internal.parser.wikimodel.xhtml.XHTMLMarkerResourceReferenceParser.parse(XHTMLMarkerResourceReferenceParser.java:53) > >>> at > >>> > >> > org.xwiki.rendering.internal.parser.wikimodel.xhtml.XWikiCommentHandler.handleImageCommentStop(XWikiCommentHandler.java:180) > >>> at > >>> > >> > org.xwiki.rendering.internal.parser.wikimodel.xhtml.XWikiCommentHandler.onComment(XWikiCommentHandler.java:103) > >>> at > >>> > >> > org.wikimodel.wem.xhtml.impl.XhtmlHandler$TagStack.onComment(XhtmlHandler.java:347) > >>> at > >>> > org.wikimodel.wem.xhtml.impl.XhtmlHandler.comment(XhtmlHandler.java:567) > >>> at > >>> > >> > org.wikimodel.wem.xhtml.filter.DefaultXMLFilter.comment(DefaultXMLFilter.java:73) > >>> at > >>> > >> > org.wikimodel.wem.xhtml.filter.XHTMLWhitespaceXMLFilter.comment(XHTMLWhitespaceXMLFilter.java:250) > >>> at > >>> > >> > org.wikimodel.wem.xhtml.filter.DefaultXMLFilter.comment(DefaultXMLFilter.java:73) > >>> at > >>> > >> > org.wikimodel.wem.xhtml.filter.AccumulationXMLFilter.comment(AccumulationXMLFilter.java:77) > >>> at > >>> > >> > org.wikimodel.wem.xhtml.filter.DefaultXMLFilter.comment(DefaultXMLFilter.java:73) > >>> at > >>> > org.wikimodel.wem.xhtml.filter.DTDXMLFilter.comment(DTDXMLFilter.java:78) > >>> at org.apache.xerces.parsers.AbstractSAXParser.comment(Unknown > >> Source) > >>> at > >>> > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanComment(Unknown > >>> Source) > >>> at > >>> > >> > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown > >>> Source) > >>> at > >>> > >> > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown > >>> Source) > >>> at > >>> org.apache.xerces.parsers.XML11NonValidatingConfiguration.parse(Unknown > >>> Source) > >>> at > >>> org.apache.xerces.parsers.XML11NonValidatingConfiguration.parse(Unknown > >>> Source) > >>> at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) > >>> at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown > Source) > >>> at org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source) > >>> at > >>> > >> > org.wikimodel.wem.xhtml.filter.DefaultXMLFilter.parse(DefaultXMLFilter.java:44) > >>> at org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source) > >>> at > >>> > >> > org.wikimodel.wem.xhtml.filter.DefaultXMLFilter.parse(DefaultXMLFilter.java:44) > >>> at org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source) > >>> at > >>> > >> > org.wikimodel.wem.xhtml.filter.DefaultXMLFilter.parse(DefaultXMLFilter.java:44) > >>> at org.wikimodel.wem.xhtml.XhtmlParser.parse(XhtmlParser.java:104) > >>> ... 43 more > >>> Caused by: > >>> java.lang.RuntimeException: Exception while performing syntax > conversion. > >>> at > >>> > >> > com.xpn.xwiki.xmlrpc.XWikiXmlRpcApiImpl.convert(XWikiXmlRpcApiImpl.java:1387) > >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > >>> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > >>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > >>> at java.lang.reflect.Method.invoke(Unknown Source) > >>> at > >>> > >> > org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.invoke(ReflectiveXmlRpcHandler.java:112) > >>> at > >>> > >> > org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.execute(ReflectiveXmlRpcHandler.java:103) > >>> at > >>> > >> > org.apache.xmlrpc.server.XmlRpcServerWorker.execute(XmlRpcServerWorker.java:43) > >>> at > >> org.apache.xmlrpc.server.XmlRpcServer.execute(XmlRpcServer.java:83) > >>> at > >>> > >> > org.apache.xmlrpc.server.XmlRpcStreamServer.execute(XmlRpcStreamServer.java:191) > >>> at > >>> > >> > org.apache.xmlrpc.webserver.XmlRpcServletServer.execute(XmlRpcServletServer.java:104) > >>> at > >>> > org.apache.xmlrpc.webserver.XmlRpcServlet.doPost(XmlRpcServlet.java:191) > >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) > >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) > >>> at > >>> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) > >>> at > >>> > >> > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) > >>> at > >>> > >> > com.xpn.xwiki.wysiwyg.server.filter.XWikiContextInitializationFilter.doFilter(XWikiContextInitializationFilter.java:87) > >>> at > >>> > >> > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) > >>> at > >>> > >> > com.xpn.xwiki.plugin.webdav.XWikiDavFilter.doFilter(XWikiDavFilter.java:68) > >>> at > >>> > >> > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) > >>> at > >>> > >> > org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:218) > >>> at > >>> > >> > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) > >>> at > >>> > >> > org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:112) > >>> at > >>> > >> > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) > >>> at > >>> > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) > >>> at > >>> > >> > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) > >>> at > >>> > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) > >>> at > >>> > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) > >>> at > >> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) > >>> at > >>> > >> > org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) > >>> at > >>> > >> > org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) > >>> at > >>> > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) > >>> at org.mortbay.jetty.Server.handle(Server.java:326) > >>> at > >>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536) > >>> at > >>> > >> > org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:930) > >>> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747) > >>> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) > >>> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405) > >>> at > >>> > >> > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) > >>> at > >>> > >> > org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) > >>> Caused by: org.xwiki.rendering.converter.ConversionException: Failed to > >>> parse input source > >>> at > >>> > >> > org.xwiki.rendering.internal.converter.DefaultConverter.convert(DefaultConverter.java:56) > >>> at > >>> > >> > com.xpn.xwiki.xmlrpc.XWikiXmlRpcApiImpl.convert(XWikiXmlRpcApiImpl.java:1383) > >>> ... 39 more > >>> Caused by: org.xwiki.rendering.parser.ParseException: Failed to parse > >> input > >>> source > >>> at > >>> > >> > org.xwiki.rendering.internal.parser.wikimodel.AbstractWikiModelParser.parse(AbstractWikiModelParser.java:142) > >>> at > >>> > >> > org.xwiki.rendering.internal.parser.wikimodel.AbstractWikiModelParser.parse(AbstractWikiModelParser.java:97) > >>> at > >>> > >> > org.xwiki.rendering.internal.converter.DefaultConverter.convert(DefaultConverter.java:52) > >>> ... 40 more > >>> Caused by: org.wikimodel.wem.WikiParserException: > >>> java.lang.ArrayIndexOutOfBoundsException: 1 > >>> at org.wikimodel.wem.xhtml.XhtmlParser.parse(XhtmlParser.java:107) > >>> at > >>> > >> > org.xwiki.rendering.internal.parser.wikimodel.AbstractWikiModelParser.parse(AbstractWikiModelParser.java:140) > >>> ... 42 more > >>> Caused by: java.lang.ArrayIndexOutOfBoundsException: 1 > >>> at > >>> > >> > org.xwiki.rendering.internal.parser.wikimodel.xhtml.XHTMLMarkerResourceReferenceParser.parse(XHTMLMarkerResourceReferenceParser.java:53) > >>> at > >>> > >> > org.xwiki.rendering.internal.parser.wikimodel.xhtml.XWikiCommentHandler.handleImageCommentStop(XWikiCommentHandler.java:180) > >>> at > >>> > >> > org.xwiki.rendering.internal.parser.wikimodel.xhtml.XWikiCommentHandler.onComment(XWikiCommentHandler.java:103) > >>> at > >>> > >> > org.wikimodel.wem.xhtml.impl.XhtmlHandler$TagStack.onComment(XhtmlHandler.java:347) > >>> at > >>> > org.wikimodel.wem.xhtml.impl.XhtmlHandler.comment(XhtmlHandler.java:567) > >>> at > >>> > >> > org.wikimodel.wem.xhtml.filter.DefaultXMLFilter.comment(DefaultXMLFilter.java:73) > >>> at > >>> > >> > org.wikimodel.wem.xhtml.filter.XHTMLWhitespaceXMLFilter.comment(XHTMLWhitespaceXMLFilter.java:250) > >>> at > >>> > >> > org.wikimodel.wem.xhtml.filter.DefaultXMLFilter.comment(DefaultXMLFilter.java:73) > >>> at > >>> > >> > org.wikimodel.wem.xhtml.filter.AccumulationXMLFilter.comment(AccumulationXMLFilter.java:77) > >>> at > >>> > >> > org.wikimodel.wem.xhtml.filter.DefaultXMLFilter.comment(DefaultXMLFilter.java:73) > >>> at > >>> > org.wikimodel.wem.xhtml.filter.DTDXMLFilter.comment(DTDXMLFilter.java:78) > >>> at org.apache.xerces.parsers.AbstractSAXParser.comment(Unknown > >> Source) > >>> at > >>> > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanComment(Unknown > >>> Source) > >>> at > >>> > >> > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown > >>> Source) > >>> at > >>> > >> > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown > >>> Source) > >>> at > >>> org.apache.xerces.parsers.XML11NonValidatingConfiguration.parse(Unknown > >>> Source) > >>> at > >>> org.apache.xerces.parsers.XML11NonValidatingConfiguration.parse(Unknown > >>> Source) > >>> at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) > >>> at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown > Source) > >>> at org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source) > >>> at > >>> > >> > org.wikimodel.wem.xhtml.filter.DefaultXMLFilter.parse(DefaultXMLFilter.java:44) > >>> at org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source) > >>> at > >>> > >> > org.wikimodel.wem.xhtml.filter.DefaultXMLFilter.parse(DefaultXMLFilter.java:44) > >>> at org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source) > >>> at > >>> > >> > org.wikimodel.wem.xhtml.filter.DefaultXMLFilter.parse(DefaultXMLFilter.java:44) > >>> at org.wikimodel.wem.xhtml.XhtmlParser.parse(XhtmlParser.java:104) > >>> ... 43 more > >>> > >>> > >>> Looks like XWord generates invalid XML ? Ideas? > >>> > >>> I'll add this to jira too. > >>> > >>> cheers > >>> Paul > _______________________________________________ > users mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/users > _______________________________________________ users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users
