Hi,

answers are below:

On Tue, Nov 22, 2011 at 11:41 PM, Marius Dumitru Florea
<mariusdumitru.flo...@xwiki.com> wrote:
> Hi Aaron,
>
> On Tue, Nov 22, 2011 at 5:36 PM, Ashtar Communications
> <ashtarcommunicati...@gmail.com> wrote:
>> Marius,
>>
>> Thank you for the feedback - I will start by replacing the code for
>> the delete button with yours, and hopefully this will avoid at least
>> one scenario for corrupting the objects. I am confident there is
>> another mechanism for corruption to occur, and I still don't know what
>> it is.
>>
>> I am not sure whether users are pasting directly or using the paste
>> button on the toolbar, but I suspect that the vast majority are just
>> pasting directly. I can try and encourage them to use the toolbar, but
>> I am sure that many will continue to just paste directly and click
>> save...
>>
>> I have included the errors from the server log below - I do not know
>> whether or not these HTML rendering errors are directly tied to the
>> "corruption" or are a byproduct. That is, I can only reliably
>> reproduce the html rendering error on pages which already contain
>> corrupted objects. I will continue to do my best to come up with a
>> consistent way to reproduce the corruption error.
>>
>> The HTML rendering error seems totally random - for example, the below
>> errors are from a page which contains already corrupted objects, where
>> if I go to Inline mode and then immediately press "Save and View" it
>> gives me the HTML rendering error ~75% of the time. The listed object
>> number in the error also changes each time, seemingly at random -
>> sometimes it is one object, sometimes two. And the other 25% of the
>> time, the page saves as normal with no errors. I am doing nothing
>> except clicking the button repeatedly - there is no other change.
>>
>> I do not know much about what the logs below are telling me...When the
>> error occurs, I see two separate events in Lilith:
>>
>> ***********EVENT 1**************
>> Message:
>
>> Can't find descriptor for the component [role =
>> [org.xwiki.rendering.renderer.PrintRendererFactory] hint = [default]]
>
> This can happen only if the syntax parameter passed to
> DefaultHTMLConverter.fromHTML(html, syntax) is null. Since
> ConversionFilter takes the syntax from a request parameter we can
> deduce that the syntax parameter is missing from the request. At the
> same time though the "RequiresHTMLConversion" parameter must be
> present on the request because otherwise the HTML converter wouldn't
> be called. So this log suggests that the request has
> "RequiresHTMLConversion=yourTextAreaField" but misses
> "yourTextAreaField_syntax=xwiki/2.0". I find this very strange because
> the WYSIWYG editor adds both parameters almost at the same time, in
> two consecutive lines of code, and the JavaScript execution can't be
> stopped by user action like clicking on a button.
>
> Anyway, I don't recommend clicking on the Save buttons before the
> WYSIWYG editor is fully loaded.
>

On some of the pages, there are a large number of objects (20-30+),
which means that it frequently takes awhile in Inline mode for all the
WYSIWYG editors to load. It is certainly possible sometimes for a user
to click save before the editors are finished loading. However, I am
still getting the exception on occasion after the page is definitely
loaded - such as waiting an hour to click save.

One option that might help is if there was a way to display the
WYSIWYG editor for only a single object at a time - this would reduce
load times on pages with a large number of objects. Is there a
convenient way to do this? Since I am using $doc.display in a loop to
display all the objects on the page, Inline mode triggers editors for
all of them simultaneously - but the object editor only displays the
editors as plain text.

Do you have any other ideas for what would result in a null parameter
being passed? For example, is there a particular kind of content in
the textbox that could cause this?

I will continue to do my best to come up with a sequence that results
in the actual corruption so that hopefully someone else can reproduce
it.

>>
>> Logger:
>> org.xwiki.wysiwyg.server.internal.converter.DefaultHTMLConverter
>>
>> Call Location:
>> org.xwiki.wysiwyg.server.internal.converter.DefaultHTMLConverter.fromHTML(DefaultHTMLConverter.java:123)
>>
>> Call Stack:
>>        at 
>> org.xwiki.wysiwyg.server.internal.converter.DefaultHTMLConverter.fromHTML(DefaultHTMLConverter.java:123)
>>        at 
>> org.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:117)
>>        at 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>>        at 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>>        at 
>> com.xpn.xwiki.plugin.webdav.XWikiDavFilter.doFilter(XWikiDavFilter.java:68)
>>        at 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>>        at 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>>        at 
>> org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:218)
>>
>> Thrown:
>>
>> Exception: org.xwiki.component.manager.ComponentLookupException
>> Message: Can't find descriptor for the component [role =
>> [org.xwiki.rendering.renderer.PrintRendererFactory] hint = [default]]
>> StackTrace:
>>        at 
>> org.xwiki.component.embed.EmbeddableComponentManager.initialize(EmbeddableComponentManager.java:377)
>> ~[xwiki-commons-component-default-3.1.jar:na]
>>        at 
>> org.xwiki.component.embed.EmbeddableComponentManager.lookup(EmbeddableComponentManager.java:126)
>> ~[xwiki-commons-component-default-3.1.jar:na]
>>        at 
>> org.xwiki.component.internal.DefaultComponentManager.lookup(DefaultComponentManager.java:88)
>> ~[xwiki-commons-component-default-3.1.jar:na]
>>        at 
>> org.xwiki.wysiwyg.server.internal.converter.DefaultHTMLConverter.fromHTML(DefaultHTMLConverter.java:118)
>> ~[xwiki-platform-wysiwyg-server-3.1.jar:na]
>>        at 
>> org.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:117)
>> [xwiki-platform-wysiwyg-server-3.1.jar:na]
>>        at 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>> [catalina.jar:7.0.20]
>>        at 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>> [catalina.jar:7.0.20]
>>        at 
>> com.xpn.xwiki.plugin.webdav.XWikiDavFilter.doFilter(XWikiDavFilter.java:68)
>> [xwiki-platform-webdav-server-3.1.jar:na]
>>        at 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>> [catalina.jar:7.0.20]
>>        at 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>> [catalina.jar:7.0.20]
>>        at 
>> org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:218)
>> [xwiki-platform-container-servlet-3.1.jar:na]
>>        at 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>> [catalina.jar:7.0.20]
>>        at 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>> [catalina.jar:7.0.20]
>>        at 
>> org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:112)
>> [xwiki-platform-container-servlet-3.1.jar:na]
>>        at 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>> [catalina.jar:7.0.20]
>>        at 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>> [catalina.jar:7.0.20]
>>        at 
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
>> [catalina.jar:7.0.20]
>>        at 
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>> [catalina.jar:7.0.20]
>>        at 
>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
>> [catalina.jar:7.0.20]
>>        at 
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
>> [catalina.jar:7.0.20]
>>        at 
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
>> [catalina.jar:7.0.20]
>>        at 
>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
>> [catalina.jar:7.0.20]
>>        at 
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>> [catalina.jar:7.0.20]
>>        at 
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
>> [catalina.jar:7.0.20]
>>        at 
>> org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:261)
>> [tomcat-coyote.jar:7.0.20]
>>        at 
>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
>> [tomcat-coyote.jar:7.0.20]
>>        at 
>> org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1773)
>> [tomcat-coyote.jar:7.0.20]
>>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
>> Source) [na:1.6.0_26]
>>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>> [na:1.6.0_26]
>>        at java.lang.Thread.run(Unknown Source) [na:1.6.0_26]
>> *************END EVENT 1************
>>
>> *************EVENT 2************
>> Message:
>> Exception while parsing HTML
>>
>> Logger:
>> org.xwiki.wysiwyg.server.filter.ConversionFilter
>>
>> Call Location:
>> com.xpn.xwiki.doc.XWikiDocument.display(XWikiDocument.java:2981)
>
> I think this is a mistake because it doesn't make sense at all. From
> the stack trace it's clear that this is an exception thrown while
> displaying a page and is caused probably because you added/removed a
> Date field from a class and there are still objects that have it/don't
> have it. But it doesn't have anything to do with ConversionFilter and
> the HTML parsing exception must have a different stack trace.
>

This makes some sense. It is highly likely that I did add a Date field
to the class definition after a small number of objects had already
been created on some of these pages. If it is unrelated to the HTML
parsing and the corruption error, that is progress...

aaron

> Hope this helps,
> Marius
>
>>
>> Call Stack:
>>        at com.xpn.xwiki.doc.XWikiDocument.display(XWikiDocument.java:2981)
>>        at com.xpn.xwiki.doc.XWikiDocument.display(XWikiDocument.java:2869)
>>        at com.xpn.xwiki.doc.XWikiDocument.display(XWikiDocument.java:2818)
>>        at com.xpn.xwiki.doc.XWikiDocument.display(XWikiDocument.java:2795)
>>        at com.xpn.xwiki.api.Document.display(Document.java:1220)
>>        at sun.reflect.GeneratedMethodAccessor281.invoke(Unknown Source)
>>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>>        at java.lang.reflect.Method.invoke(Unknown Source)
>>
>>
>> Exception: java.lang.NullPointerException
>> StackTrace:
>>        at 
>> com.xpn.xwiki.objects.classes.DateClass.toFormString(DateClass.java:134)
>> ~[xwiki-platform-oldcore-3.1.jar:na]
>>        at 
>> com.xpn.xwiki.objects.classes.DateClass.displayView(DateClass.java:178)
>> ~[xwiki-platform-oldcore-3.1.jar:na]
>>        at com.xpn.xwiki.doc.XWikiDocument.display(XWikiDocument.java:2908)
>> [xwiki-platform-oldcore-3.1.jar:na]
>>        at com.xpn.xwiki.doc.XWikiDocument.display(XWikiDocument.java:2869)
>> [xwiki-platform-oldcore-3.1.jar:na]
>>        at com.xpn.xwiki.doc.XWikiDocument.display(XWikiDocument.java:2818)
>> [xwiki-platform-oldcore-3.1.jar:na]
>>        at com.xpn.xwiki.doc.XWikiDocument.display(XWikiDocument.java:2795)
>> [xwiki-platform-oldcore-3.1.jar:na]
>>        at com.xpn.xwiki.api.Document.display(Document.java:1220)
>> [xwiki-platform-oldcore-3.1.jar:na]
>>        at sun.reflect.GeneratedMethodAccessor281.invoke(Unknown Source) 
>> ~[na:na]
>>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>> ~[na:1.6.0_26]
>>        at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.6.0_26]
>>        at 
>> org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:369)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:420)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:207)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:195)
>> [xwiki-commons-velocity-3.1.jar:na]
>>        at 
>> org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:160)
>> [xwiki-commons-velocity-3.1.jar:na]
>>        at 
>> org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:126)
>> [xwiki-platform-rendering-macro-velocity-3.1.jar:na]
>>        at 
>> org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:49)
>> [xwiki-platform-rendering-macro-velocity-3.1.jar:na]
>>        at 
>> org.xwiki.rendering.macro.script.AbstractScriptMacro.evaluateBlock(AbstractScriptMacro.java:306)
>> [xwiki-platform-rendering-macro-script-3.1.jar:na]
>>        at 
>> org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:202)
>> [xwiki-platform-rendering-macro-script-3.1.jar:na]
>>        at 
>> org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:59)
>> [xwiki-platform-rendering-macro-script-3.1.jar:na]
>>        at 
>> org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transformOnce(MacroTransformation.java:196)
>> [xwiki-rendering-transformation-macro-3.1.jar:na]
>>        at 
>> org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transform(MacroTransformation.java:141)
>> [xwiki-rendering-transformation-macro-3.1.jar:na]
>>        at 
>> org.xwiki.rendering.internal.transformation.DefaultTransformationManager.performTransformations(DefaultTransformationManager.java:81)
>> [xwiki-rendering-api-3.1.jar:na]
>>        at 
>> com.xpn.xwiki.doc.XWikiDocument.performSyntaxConversion(XWikiDocument.java:7639)
>> [xwiki-platform-oldcore-3.1.jar:na]
>>        at 
>> com.xpn.xwiki.doc.XWikiDocument.performSyntaxConversion(XWikiDocument.java:7588)
>> [xwiki-platform-oldcore-3.1.jar:na]
>>        at 
>> com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:838)
>> [xwiki-platform-oldcore-3.1.jar:na]
>>        at 
>> com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:787)
>> [xwiki-platform-oldcore-3.1.jar:na]
>>        at 
>> com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:881)
>> [xwiki-platform-oldcore-3.1.jar:na]
>>        at com.xpn.xwiki.api.Document.getRenderedContent(Document.java:582)
>> [xwiki-platform-oldcore-3.1.jar:na]
>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>> Method)(Unknown Source) ~[na:1.6.0_26]
>>        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
>> ~[na:1.6.0_26]
>>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>> ~[na:1.6.0_26]
>>        at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.6.0_26]
>>        at 
>> org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:567)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:71)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:142)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:195)
>> [xwiki-commons-velocity-3.1.jar:na]
>>        at 
>> org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:160)
>> [xwiki-commons-velocity-3.1.jar:na]
>>        at 
>> com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate(XWikiVelocityRenderer.java:116)
>> [xwiki-platform-oldcore-3.1.jar:na]
>>        at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:1840)
>> [xwiki-platform-oldcore-3.1.jar:na]
>>        at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:1778)
>> [xwiki-platform-oldcore-3.1.jar:na]
>>        at com.xpn.xwiki.api.XWiki.parseTemplate(XWiki.java:836)
>> [xwiki-platform-oldcore-3.1.jar:na]
>>        at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source) 
>> ~[na:na]
>>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>> ~[na:1.6.0_26]
>>        at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.6.0_26]
>>        at 
>> org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:369)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:216)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:311)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:230)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:207)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:87)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
>> [velocity-1.7.jar:1.7]
>>        at 
>> org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:195)
>> [xwiki-commons-velocity-3.1.jar:na]
>>        at 
>> org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:160)
>> [xwiki-commons-velocity-3.1.jar:na]
>>        at 
>> com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate(XWikiVelocityRenderer.java:116)
>> [xwiki-platform-oldcore-3.1.jar:na]
>>        at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:1840)
>> [xwiki-platform-oldcore-3.1.jar:na]
>>        at com.xpn.xwiki.web.Utils.parseTemplate(Utils.java:153)
>> [xwiki-platform-oldcore-3.1.jar:na]
>>        at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:224)
>> [xwiki-platform-oldcore-3.1.jar:na]
>>        at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:115)
>> [xwiki-platform-oldcore-3.1.jar:na]
>>        at 
>> org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
>> [struts-1.2.9.jar:1.2.9]
>>        at 
>> org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
>> [struts-1.2.9.jar:1.2.9]
>>        at 
>> org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
>> [struts-1.2.9.jar:1.2.9]
>>        at 
>> org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
>> [struts-1.2.9.jar:1.2.9]
>>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
>> [servlet-api.jar:na]
>>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>> [servlet-api.jar:na]
>>        at 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
>> [catalina.jar:7.0.20]
>>        at 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>> [catalina.jar:7.0.20]
>>        at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:129)
>> [xwiki-platform-oldcore-3.1.jar:na]
>>        at 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>> [catalina.jar:7.0.20]
>>        at 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>> [catalina.jar:7.0.20]
>>        at 
>> org.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:152)
>> [xwiki-platform-wysiwyg-server-3.1.jar:na]
>>        at 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>> [catalina.jar:7.0.20]
>>        at 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>> [catalina.jar:7.0.20]
>>        at 
>> com.xpn.xwiki.plugin.webdav.XWikiDavFilter.doFilter(XWikiDavFilter.java:68)
>> [xwiki-platform-webdav-server-3.1.jar:na]
>>        at 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>> [catalina.jar:7.0.20]
>>        at 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>> [catalina.jar:7.0.20]
>>        at 
>> org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:218)
>> [xwiki-platform-container-servlet-3.1.jar:na]
>>        at 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>> [catalina.jar:7.0.20]
>>        at 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>> [catalina.jar:7.0.20]
>>        at 
>> org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:112)
>> [xwiki-platform-container-servlet-3.1.jar:na]
>>        at 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>> [catalina.jar:7.0.20]
>>        at 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>> [catalina.jar:7.0.20]
>>        at 
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
>> [catalina.jar:7.0.20]
>>        at 
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>> [catalina.jar:7.0.20]
>>        at 
>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
>> [catalina.jar:7.0.20]
>>        at 
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
>> [catalina.jar:7.0.20]
>>        at 
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
>> [catalina.jar:7.0.20]
>>        at 
>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
>> [catalina.jar:7.0.20]
>>        at 
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>> [catalina.jar:7.0.20]
>>        at 
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
>> [catalina.jar:7.0.20]
>>        at 
>> org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:261)
>> [tomcat-coyote.jar:7.0.20]
>>        at 
>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
>> [tomcat-coyote.jar:7.0.20]
>>        at 
>> org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1773)
>> [tomcat-coyote.jar:7.0.20]
>>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
>> Source) [na:1.6.0_26]
>>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>> [na:1.6.0_26]
>>        at java.lang.Thread.run(Unknown Source) [na:1.6.0_26]
>> **************END EVENT 2*****************
>>
>> aaron
>>
>>
>> On Tue, Nov 22, 2011 at 12:40 AM, Marius Dumitru Florea
>> <mariusdumitru.flo...@xwiki.com> wrote:
>>> On Mon, Nov 21, 2011 at 10:37 PM, Ashtar Communications
>>> <ashtarcommunicati...@gmail.com> wrote:
>>>> Marius,
>>>>
>>>> Thank you for the response. Answers to your questions follow.
>>>>
>>>> On Mon, Nov 21, 2011 at 12:06 AM, Marius Dumitru Florea
>>>> <mariusdumitru.flo...@xwiki.com> wrote:
>>>>> Hi Aaron,
>>>>>
>>>>> On Fri, Nov 18, 2011 at 11:37 PM, Ashtar Communications
>>>>> <ashtarcommunicati...@gmail.com> wrote:
>>>>>> Hi,
>>>>>>
>>>>>> I am having difficulty locating the source of an error where the
>>>>>> contents of a TextArea property for a custom class object on a page
>>>>>> ends up rendering in a WYSIWYG box as wiki syntax (as in, displaying
>>>>>> the actual code in one long paragraph). "Corrupt" is probably not the
>>>>>> right word for this, as I'm sure it's something I'm doing wrong...
>>>>>>
>>>>>> Simple explanation:
>>>>>> 1) User clicks a button to add a new instance of a class to the page,
>>>>>> which also enters the Inline Editing mode. User pastes content into a
>>>>>> WYSIWYG editor and saves the page. After save, the TextArea property
>>>>>> shows up correctly in view mode with $doc.display(), with headings,
>>>>>> formatting, etc...
>>>>>> 2) Something happens - I cannot yet reproduce it, but I'm sure the
>>>>>> user is doing something.
>>>>>> 3) The object starts displaying the property as a single block of text
>>>>>> with embedded wiki syntax, mostly what looks like custom parameters
>>>>>> containing the formatting info, such as:
>>>>>
>>>>>> (% class="MsoNoSpacing" %) (% class="tagChar" style="font-size: 12pt;" %)
>>>>>
>>>>> Is this the text displayed in view mode or the value of the TextArea
>>>>> property as seen when editing the page with the Object editor? I'd
>>>>> like to know the value from the Object editor.
>>>>>
>>>>
>>>> It is both. In view mode, $doc.display() returns one long paragraph of
>>>> text with wiki syntax embedded but no line breaks. Viewing the object
>>>> in the object editor, the box renders the WYSIWYG data as a plain text
>>>
>>>> box with the same long paragraph - but with a large number of ~ escape
>>>> characters which do not appear in view mode.
>>>
>>> This is an important detail. It looks like the WYSIWYG editor is
>>> submitting wiki syntax instead of HTML, but I don't see how can this
>>> happen because the editor converts the input wiki syntax into HTML
>>> before it is loaded and overwrites the value of the replaced plain
>>> text area. So if you see the content properly rendered inside the rich
>>> text area then you know that the editor will output HTML and not wiki
>>> syntax when you save the page.
>>>
>>>>
>>>> For objects which are not "corrupted" the WYSIWYG data appears in the
>>>> object editor as wiki syntax with parameters, but with no escape
>>>> characters and embedded line breaks - these objects look fine when in
>>>> view mode.
>>>>
>>>>>> etc...
>>>>>> Even in inline edit mode, the contents of the WYSIWYG box have been
>>>>>> replaced with this block of code, which does not appear with the
>>>>>> actual formatting - just the raw code.
>>>>>>
>>>>>> Looking into the page history, there is a version of the page saved
>>>>>> right before the property becomes "corrupt." So something must be
>>>>>> happening to trigger the conversion of the TextArea content into wiki
>>>>>> syntax, which then gets saved over the original data.
>>>>>>
>>>>>> The pages the user is using have multiple objects of the same class,
>>>>>> all displaying their TextArea properties in a table. The majority of
>>>>>> the time, it displays perfectly. This only applies to some objects on
>>>>>> the page - though sometimes all objects on a page will simultaneously
>>>>>> exhibit this behavior.
>>>>>>
>>>>>> The pages also contain buttons to create a new object, as well as a
>>>>>> button to delete each object individually.
>>>>>>
>>>>>> I have one reliable method of producing this error. I used to have the
>>>>>> "delete this object" button display while in Inline Edit mode -
>>>>>> clicking it while in that mode would cause to entry to "convert." I
>>>>>
>>>>> How can the deleted object become corrupted? I suppose you are
>>>>> referring to the other objects of the same type from the same page.
>>>>> Which one gets corrupted? All? Always all?
>>>>>
>>>>
>>>> When in Inline mode, clicking on the delete button fails to delete the
>>>> object. Instead, it just returns me to view mode with the object still
>>>
>>> Well, I tried to reproduce this but I couldn't. The delete button
>>> submits the inline form if you don't stop the click event and so you
>>> are taken to the preview mode, not the view mode. Using:
>>>
>>> -----8<-----
>>> #set($delurl = $doc.getURL('objectremove',
>>> "classname=Sandbox.Test&classid=$objectNumber&form_token=$services.csrf.getToken()&xredirect=$doc.getURL()"))
>>> {{html}}<input type="image" onclick="Event.stop(event);
>>> location.href='$delurl'" value="Delete" title="Delete"
>>> src="$xwiki.getSkinFile('icons/silk/cross.gif')" />{{/html}}
>>> ----->8-----
>>>
>>> I'm taken to the view mode and the specified object is deleted. None
>>> of the remaining objects are corrupted.
>>>
>>>> present. Clicking on the delete button in view mode will successfully
>>>> delete the object, however.
>>>>
>>>> I have seen all the objects on the page become corrupted
>>>> simultaneously, but it is not always all. On some pages, there are
>>>> several dozen objects, but only 1 or 2 will be corrupted at a time.
>>>>
>>>>>> suppressed the button from displaying unless in view mode, which
>>>>>> removed this cause of the error - but there is still some other
>>>>>> mechanism for generating the same behavior.
>>>>>>
>>>>>> Here's an example of the delete button code which I can use to cause
>>>>>> similar behavior:
>>>>>>
>>>>>
>>>>>> #set($delurl = 
>>>>>> "/xwiki/wiki/$doc.getWiki()/objectremove/$doc.getSpace()/$doc.getName()?classname=Sandbox.TestClass&classid=$obj.getNumber()&xredirect=$doc.getURL()")
>>>>>
>>>>> Unrelated to your problem, you should never build the URL manually.
>>>>> Use instead $doc.getURL($actionName, $queryString).
>>>>>
>>>>
>>>> Thank you, this is good to know.
>>>>
>>>>>>
>>>>>> <input
>>>>>> type="image"
>>>>>> onclick="location.href='$delurl'"
>>>>>> value="Delete"
>>>>>> title="Delete"
>>>>>> style="float:right;"
>>>>>> src="/xwiki/resources/icons/silk/cross.gif" />
>>>>>>
>>>>>> Any ideas on what's happening?
>>>>>
>>>>> What do you mean when you say that the "entry" is "converted" when you
>>>>> click on the delete button. AFAICS the delete button doesn't submit
>>>>> the inline form (so any changes will be lost) and it redirects to view
>>>>> mode after the object is deleted. Are you saying that the TextArea
>>>>> properties are corrupted as soon as you end up in view mode after the
>>>>> object has been removed? If so, then you should see in the history
>>>>> that the revision that deleted the object also modified the TextArea
>>>>> properties. I doubt it.
>>>>>
>>>>> Are you using the browser back button or the edit menu to go back to
>>>>> inline edit mode after deleting an object? I'm pretty sure you are
>>>>> using the back button in order to not loose unsaved changes made
>>>>> before clicking the delete object button. If so, then you could be
>>>>> experiencing http://jira.xwiki.org/browse/XWIKI-7028 .
>>>>>
>>>>
>>>> I mean that when I am in inline mode and press the delete button, I am
>>>> sent back to view mode, but the object is not deleted. Instead, the
>>>> contents of the object now appear “corrupted” in both view and editing
>>>> modes. Sometimes, it seems that objects other than the one I tried to
>>>
>>> I don't see how the delete button could trigger a page save so I don't
>>> understand why by simply clicking the delete button the object(s)
>>> become corrupted. In your case, I would investigate what causes the
>>> page to be saved when the delete button is clicked in 'Inline form'
>>> edit mode.
>>>
>>>> delete are also corrupted. Once I am returned to view mode, I am using
>>>> the edit menu to return to inline mode – but the contents of the
>>>> TextArea are corrupted immediately, regardless of which mode I am in.
>>>> When I compare the page history between the version where everything
>>>> was fine and the next version, where entries are corrupt, it shows the
>>>> “New Value” in green text as a single block of text, and below that,
>>>> the red strike-through text for “Previous Value” – both New and
>>>> Previous have the entire contents of the TextArea – but the “previous”
>>>> value contains line breaks and doesn’t have ~ escape characters. The
>>>> revision is not tied to the deletion of an object – it is occurring
>>>> even for revisions where no object was being deleted and other changes
>>>> were being made. For example, I have examples of pages where a new
>>>> object was added, text was pasted into the WYSIWYG editor and the
>>>> changes saved, and the version history records both the addition of a
>>>> new object, and “corrupt” changes made to other objects on the page
>>>> without the user doing anything with those objects.
>>>> I am now having some difficulty reproducing this error on demand, even
>>>> with the delete button. Since the delete button has been removed from
>>>> the inline view, it is also not the sole cause of the objects becoming
>>>> corrupted. That is, users are continuing to report objects corrupted
>>>> seemingly at random, despite the absence of a delete button.
>>>
>>>> I do not think I am experiencing the same bug as the link you gave. I
>>>> can reproduce that one (#7028). Using chrome, if I view the page, go
>>>> to inline mode, save and view, then click back in the browser, it
>>>> returns to inline mode, and the contents of all the WYSIWYG TextArea’s
>>>> render as a block of HTML code.
>>>> However, the bug I am seeing is different – instead of HTML code, the
>>>> TextAreas are rendering as a block with wiki syntax. I’m also pretty
>>>
>>> Indeed, XWIKI-7028 is different.
>>>
>>>> sure that I am not using the back button, and still seeing the
>>>> contents of the TextArea being replaced. This appears very similar but
>>>> still different in some way from #7028.
>>>> Something else that may help shed light on the problem. On pages where
>>>> corruption is a problem, I am periodically receiving errors similar to
>>>> the following when attempting to save the
>>>> page:Sandbox.TestClass_2_TextArea: Exception while parsing HTML
>>>
>>> You should check the server logs when you see this error message
>>> because they should tell you the cause of the problem. This error
>>> occurs when the HTML output of the WYSIWYG editor cannot be converted
>>> to wiki syntax.
>>>
>>>> The page then refuses to save changes and stays in Inline mode. I have
>>>> seen several JIRA listings for similar bugs, but they all appear
>>>> slightly different. As far as I can tell, the TextAreas do not contain
>>>> embedded links, and several of the JIRA bugs are listed as fixed.
>>>
>>>> Could this be related to the content of the data being pasted into the
>>>> TextArea? It is coming directly from Word, and contains URL’s, though
>>>> none of it is in wiki syntax.
>>>
>>> It can. Are you using the paste button from the tool bar or are you
>>> pasting directly into the rich text area? It is recommended to use the
>>> paste button because it cleans the pasted rich text before inserting
>>> it into the rich text area.
>>>
>>>> For example, I just tried the following (using Chrome, though I have
>>>> seen similar behavior in FF):
>>>> 1) Page has 4 objects, each with a WYSIWYG TextArea, all displaying
>>>> correctly.2) Select “Inline” from the Edit menu3) Immediately click
>>>> “Save and View” – this throws the above exception in red at the bottom
>>>
>>> I can't reproduce this. I even tried clicking on the save button
>>> before the editors are fully loaded. It might depend on the value of
>>> those text area properties.
>>>
>>>> of the page. The contents of the objects on the page now display in
>>>> the wysiwyg editor in inline mode as “corrupt”4) Click “Cancel” – this
>>>> returns me to view mode, everything is normal.5) Close browser. Reopen
>>>> – repeat, this time, nothing happens. No error, no corruption –
>>>> despite going through the exact same steps.
>>>> The exception does not appear to be thrown on a consistent basis – I
>>>> have had users edit a page on one computer and receive an error,
>>>> leaving them unable to save the page. I then opened the page on a
>>>> separate machine, and successfully edited and saved the page with no
>>>> error.
>>>
>>>> Baffled,
>>>
>>> Me too. I can't help much if I'm not able to reproduce..
>>>
>>> Marius
>>>
>>>> aaron
>>>> _______________________________________________
>>>> users mailing list
>>>> users@xwiki.org
>>>> http://lists.xwiki.org/mailman/listinfo/users
>>>>
>>> _______________________________________________
>>> users mailing list
>>> users@xwiki.org
>>> http://lists.xwiki.org/mailman/listinfo/users
>>>
>> _______________________________________________
>> users mailing list
>> users@xwiki.org
>> http://lists.xwiki.org/mailman/listinfo/users
>>
> _______________________________________________
> users mailing list
> users@xwiki.org
> http://lists.xwiki.org/mailman/listinfo/users
>
_______________________________________________
users mailing list
users@xwiki.org
http://lists.xwiki.org/mailman/listinfo/users

Reply via email to