Hm. Well thanks for isolating it! However, this code does not cause a crash on ES5/3 in the Caja Playground. Does just this little snippet cause the crash for you?
On Mon, Apr 22, 2013 at 9:36 PM, <[email protected]> wrote: > I've isolated the code that causes it... > > <p><button class="clearMultiButton" > onclick="clearMulti(this.parentElement.parentElement);*$('#userModStatus')[0].value > = 'true';*return false;">Clear</button>Status</p> > > If I remove the bold portion, no error. The JQuery selects a hidden input. > > On Monday, April 22, 2013 8:32:34 PM UTC-4, felix wrote: > >> cool. I see where this is happening, and I think I know what's going >> wrong, but I'm going to try to reconstruct a small testcase to verify. >> >> On Mon, Apr 22, 2013 at 5:21 PM, <[email protected]> wrote: >> > Here's what I found: >> > >> > FATAL_ERROR(6) EXCEPTION_IN_SERVICE: Service threw exception null >> > java.lang.**UnsupportedOperationException >> > at >> > com.google.caja.parser.**ChildNodes.getMutableFacet(**ChildNodes.java:131) >> >> > at >> > com.google.caja.parser.**AbstractParseTreeNode.**addChild(** >> AbstractParseTreeNode.java:**179) >> > at >> > com.google.caja.parser.**AbstractParseTreeNode.access$** >> 600(AbstractParseTreeNode.**java:40) >> > at >> > com.google.caja.parser.**AbstractParseTreeNode$**Insertion.apply(** >> AbstractParseTreeNode.java:**607) >> > at >> > com.google.caja.parser.**AbstractParseTreeNode$**MutationImpl.execute(* >> *AbstractParseTreeNode.java:**462) >> > at >> > com.google.caja.parser.**AbstractParseTreeNode.**insertBefore(** >> AbstractParseTreeNode.java:**147) >> > at >> > com.google.caja.parser.**AbstractParseTreeNode.**appendChild(** >> AbstractParseTreeNode.java:**151) >> > at >> > com.google.caja.parser.**quasiliteral.Scope.** >> addStartStatement(Scope.java:**241) >> > at >> > com.google.caja.parser.**quasiliteral.SyntheticRuleSet$** >> 10.fire(SyntheticRuleSet.java:**243) >> > at >> > com.google.caja.parser.**quasiliteral.Rewriter.expand(**Rewriter.java:84) >> >> > at >> > com.google.caja.parser.**quasiliteral.Rule.expandAllTo(**Rule.java:202) >> >> > at >> > com.google.caja.parser.**quasiliteral.Rule.expandAll(**Rule.java:192) >> >> > at >> > com.google.caja.parser.**quasiliteral.SyntheticRuleSet$** >> 3.fire(SyntheticRuleSet.java:**102) >> > at >> > com.google.caja.parser.**quasiliteral.Rewriter.expand(**Rewriter.java:84) >> >> > at >> > com.google.caja.parser.**quasiliteral.Rule.expandAllTo(**Rule.java:202) >> >> > at >> > com.google.caja.parser.**quasiliteral.Rule.expandAll(**Rule.java:192) >> >> > at >> > com.google.caja.parser.**quasiliteral.SyntheticRuleSet$** >> 8.fire(SyntheticRuleSet.java:**189) >> > at >> > com.google.caja.parser.**quasiliteral.Rewriter.expand(**Rewriter.java:84) >> >> > at >> > com.google.caja.parser.**quasiliteral.ES53Rewriter$7.**fire(ES53Rewriter.java:397) >> >> > at >> > com.google.caja.parser.**quasiliteral.Rewriter.expand(**Rewriter.java:84) >> >> > at >> > com.google.caja.parser.**quasiliteral.Rule.expandAllTo(**Rule.java:202) >> >> > at >> > com.google.caja.parser.**quasiliteral.Rule.expandAll(**Rule.java:192) >> >> > at >> > com.google.caja.parser.**quasiliteral.ES53Rewriter$3.**fire(ES53Rewriter.java:238) >> >> > at >> > com.google.caja.parser.**quasiliteral.Rewriter.expand(**Rewriter.java:84) >> >> > at >> > com.google.caja.parser.**quasiliteral.ES53Rewriter$6.**fire(ES53Rewriter.java:352) >> >> > at >> > com.google.caja.parser.**quasiliteral.Rewriter.expand(**Rewriter.java:84) >> >> > at >> > com.google.caja.parser.**quasiliteral.ES53Rewriter$5.**fire(ES53Rewriter.java:309) >> >> > at >> > com.google.caja.parser.**quasiliteral.Rewriter.expand(**Rewriter.java:84) >> >> > at >> > com.google.caja.parser.**quasiliteral.Rewriter.expand(**Rewriter.java:189) >> >> > at >> > com.google.caja.plugin.**ExpressionSanitizerCaja.**sanitize(** >> ExpressionSanitizerCaja.java:**57) >> > at >> > com.google.caja.plugin.stages.**ValidateJavascriptStage.apply(** >> ValidateJavascriptStage.java:**61) >> > at >> > com.google.caja.plugin.stages.**ValidateJavascriptStage.apply(** >> ValidateJavascriptStage.java:**42) >> > at com.google.caja.util.Pipeline.**applyStage(Pipeline.java:41) >> >> > at >> > com.google.caja.plugin.**PluginCompiler$1.applyStage(**PluginCompiler.java:151) >> >> > at >> > com.google.caja.plugin.**PluginCompiler$1.applyStage(**PluginCompiler.java:139) >> >> > at com.google.caja.util.Pipeline.**apply(Pipeline.java:35) >> > at >> > com.google.caja.plugin.**PluginCompiler.run(**PluginCompiler.java:241) >> >> > at >> > com.google.caja.service.**HtmlHandler.cajoleHtml(**HtmlHandler.java:126) >> >> > at >> > com.google.caja.service.**HtmlHandler.apply(HtmlHandler.**java:85) >> >> > at >> > com.google.caja.service.**CajolingService.applyHandler(**CajolingService.java:312) >> >> > at >> > com.google.caja.service.**CajolingService.doHandle(**CajolingService.java:260) >> >> > at >> > com.google.caja.service.**CajolingService.handle(**CajolingService.java:110) >> >> > at >> > com.google.caja.service.**CajolingServlet.handle(**CajolingServlet.java:168) >> >> > at >> > com.google.caja.service.**CajolingServlet.doGet(**CajolingServlet.java:155) >> >> > at javax.servlet.http.**HttpServlet.service(**HttpServlet.java:621) >> >> > at javax.servlet.http.**HttpServlet.service(**HttpServlet.java:722) >> >> > at >> > org.apache.catalina.core.**ApplicationFilterChain.**internalDoFilter(** >> ApplicationFilterChain.java:**306) >> > at >> > org.apache.catalina.core.**ApplicationFilterChain.**doFilter(** >> ApplicationFilterChain.java:**210) >> > at >> > org.apache.catalina.core.**StandardWrapperValve.invoke(**StandardWrapperValve.java:240) >> >> > at >> > org.apache.catalina.core.**StandardContextValve.invoke(**StandardContextValve.java:161) >> >> > at >> > org.apache.catalina.core.**StandardHostValve.invoke(**StandardHostValve.java:164) >> >> > at >> > org.apache.catalina.valves.**ErrorReportValve.invoke(**ErrorReportValve.java:100) >> >> > at >> > org.apache.catalina.valves.**AccessLogValve.invoke(**AccessLogValve.java:541) >> >> > at >> > org.apache.catalina.core.**StandardEngineValve.invoke(**StandardEngineValve.java:118) >> >> > at >> > org.apache.catalina.connector.**CoyoteAdapter.service(**CoyoteAdapter.java:383) >> >> > at >> > org.apache.coyote.http11.**Http11Processor.process(**Http11Processor.java:243) >> >> > at >> > org.apache.coyote.http11.**Http11Protocol$**Http11ConnectionHandler.** >> process(Http11Protocol.java:**188) >> > at >> > org.apache.tomcat.util.net.**JIoEndpoint$SocketProcessor.**run(JIoEndpoint.java:288) >> >> > at >> > java.util.concurrent.**ThreadPoolExecutor$Worker.** >> runTask(ThreadPoolExecutor.**java:886) >> > at >> > java.util.concurrent.**ThreadPoolExecutor$Worker.run(**ThreadPoolExecutor.java:908) >> >> > at java.lang.Thread.run(Thread.**java:680) >> > >> > >> > >> > On Monday, April 22, 2013 7:32:16 PM UTC-4, [email protected]: >> >> >> >> Ok I'll try that and let you know. I don't think it would be so bad >> for >> >> the owner of said server to see a trace in their logs (or not based on >> >> configuration of course). I certainly agree that you shouldn't >> normally send >> >> traces back to the client. :). >> >> >> >> On Monday, April 22, 2013 4:36:10 PM UTC-4, [email protected] >> >> wrote: >> >>> >> >>> >> >>> I got this: >> >>> >> >>> >> >>> {"level":6,"name":"FATAL_**ERROR","type":"EXCEPTION_IN_**SERVICE","message":"Service >> >> >>> threw exception java.lang.**NullPointerException"} >> >>> >> >>> However it's unclear how to proceed. There doesn't seem to be a stack >> >>> trace anywhere... >> >>> It looks like a bug, but obviously I can't send you my whole program, >> so >> >>> I want to track down what causes it. (and see if it's easy to work >> around as >> >>> well) >> >>> >> >>> >> > -- >> > >> > --- >> > You received this message because you are subscribed to the Google >> Groups >> > "Google Caja Discuss" group. >> > To unsubscribe from this group and stop receiving emails from it, send >> an >> > email to google-caja-discuss+**[email protected]. >> > For more options, visit >> > https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out>. >> >> > >> > >> > -- > > --- > You received this message because you are subscribed to the Google Groups > "Google Caja Discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- Ihab A.B. Awad, Palo Alto, CA -- --- You received this message because you are subscribed to the Google Groups "Google Caja Discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
