[ 
https://issues.apache.org/jira/browse/MYFACES-2745?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12876248#action_12876248
 ] 

Werner Punz commented on MYFACES-2745:
--------------------------------------

Ok as it seems, the integrated ecmascript parser of html unit is less lenient 
than the browsers I was testing against (and I was testing against all browsers 
since ie6)
it seems to me that the error message is issued somewhere in the inheritance 
part of the _Runtime.js but since the error is referenced against the compiled 
file I cannot fully tell.
I have to make  a test setup against the uncompiled scripts to check where the 
htmlunit ecmascript parser fails.
But bear in mind this is an error which occurs in HTMLUnit only and not in any 
browser.


> Cannot set property "_mfProto" of null to "null" error with new javascript
> --------------------------------------------------------------------------
>
>                 Key: MYFACES-2745
>                 URL: https://issues.apache.org/jira/browse/MYFACES-2745
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: JSR-314
>    Affects Versions: 2.0.1
>            Reporter: Michael Concini
>
> The javascript changes from 5/25 have caused a regression when using htmlunit 
> against even the simplest JSF page as long as it loads the jsf.js script.  
> The exception occurs simply executing getPage() on the webClient.
>         WebClient webClient = new WebClient();
>         HtmlPage page = 
> webClient.getPage("http://localhost:8080/JSF20AJAXTag/DisabledFalse.jsf";);
> It can be recreated by a page with nothing but this form in the body:
>  <h:form id="form1" prependId="false">
>         <h:outputText id="out1" value="This is broken"/>
>         <h:outputScript name="jsf.js" library="javax.faces" target="head" />
>     </h:form>
> Attached is the exception trace from a run this morning which includes 
> Werner's changes from MYFACES-2742 this morning so we are up to date in our 
> sandbox. 
> ======= EXCEPTION START ========
> EcmaError: lineNumber=[51] column=[0] lineSource=[<no source>] 
> name=[TypeError] 
> sourceName=[http://localhost:8080/JSF20AJAXTag/javax.faces.resource/jsf.js.jsf?ln=javax.faces]
>  message=[TypeError: Cannot set property "_mfProto" of null to "null" 
> (http://localhost:8080/JSF20AJAXTag/javax.faces.resource/jsf.js.jsf?ln=javax.faces#51)]
> com.gargoylesoftware.htmlunit.ScriptException: TypeError: Cannot set property 
> "_mfProto" of null to "null" 
> (http://localhost:8080/JSF20AJAXTag/javax.faces.resource/jsf.js.jsf?ln=javax.faces#51)
>       at 
> com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:527)
>       at 
> net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:537)
>       at 
> net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:538)
>       at 
> com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:425)
>       at 
> com.gargoylesoftware.htmlunit.html.HtmlPage.loadExternalJavaScriptFile(HtmlPage.java:980)
>       at 
> com.gargoylesoftware.htmlunit.html.HtmlScript.executeScriptIfNeeded(HtmlScript.java:353)
>       at 
> com.gargoylesoftware.htmlunit.html.HtmlScript$1.execute(HtmlScript.java:215)
>       at 
> com.gargoylesoftware.htmlunit.html.HtmlScript.onAllChildrenAddedToPage(HtmlScript.java:235)
>       at 
> com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.endElement(HTMLParser.java:718)
>       at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
> Source)
>       at 
> com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.endElement(HTMLParser.java:676)
>       at 
> org.cyberneko.html.HTMLTagBalancer.callEndElement(HTMLTagBalancer.java:1136)
>       at 
> org.cyberneko.html.HTMLTagBalancer.endElement(HTMLTagBalancer.java:1038)
>       at 
> org.cyberneko.html.filters.DefaultFilter.endElement(DefaultFilter.java:206)
>       at 
> org.cyberneko.html.filters.NamespaceBinder.endElement(NamespaceBinder.java:329)
>       at 
> org.cyberneko.html.HTMLScanner$ContentScanner.scanEndElement(HTMLScanner.java:2999)
>       at 
> org.cyberneko.html.HTMLScanner$ContentScanner.scan(HTMLScanner.java:1991)
>       at org.cyberneko.html.HTMLScanner.scanDocument(HTMLScanner.java:895)
>       at 
> org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:499)
>       at 
> org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:452)
>       at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>       at 
> com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.parse(HTMLParser.java:896)
>       at 
> com.gargoylesoftware.htmlunit.html.HTMLParser.parse(HTMLParser.java:350)
>       at 
> com.gargoylesoftware.htmlunit.html.HTMLParser.parseHtml(HTMLParser.java:304)
>       at 
> com.gargoylesoftware.htmlunit.DefaultPageCreator.createHtmlPage(DefaultPageCreator.java:134)
>       at 
> com.gargoylesoftware.htmlunit.DefaultPageCreator.createPage(DefaultPageCreator.java:101)
>       at 
> com.gargoylesoftware.htmlunit.WebClient.loadWebResponseInto(WebClient.java:420)
>       at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:303)
>       at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:360)
>       at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:345)
>       at com.ibm.mike.TestJS.homePage(TestJS.java:19)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
>       at java.lang.reflect.Method.invoke(Method.java:600)
>       at junit.framework.TestCase.runTest(TestCase.java:154)
>       at junit.framework.TestCase.runBare(TestCase.java:127)
>       at junit.framework.TestResult$1.protect(TestResult.java:106)
>       at junit.framework.TestResult.runProtected(TestResult.java:124)
>       at junit.framework.TestResult.run(TestResult.java:109)
>       at junit.framework.TestCase.run(TestCase.java:118)
>       at 
> org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
>       at 
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
> Caused by: net.sourceforge.htmlunit.corejs.javascript.EcmaError: TypeError: 
> Cannot set property "_mfProto" of null to "null" 
> (http://localhost:8080/JSF20AJAXTag/javax.faces.resource/jsf.js.jsf?ln=javax.faces#51)
>       at 
> net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3753)
>       at 
> net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3731)
>       at 
> net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.typeError(ScriptRuntime.java:3759)
>       at 
> net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.typeError3(ScriptRuntime.java:3785)
>       at 
> net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.undefWriteError(ScriptRuntime.java:3807)
>       at 
> net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.setObjectElem(ScriptRuntime.java:1578)
>       at 
> net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpretLoop(Interpreter.java:1450)
>       at 
> net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpret(Interpreter.java:845)
>       at 
> net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.call(InterpretedFunction.java:164)
>       at 
> net.sourceforge.htmlunit.corejs.javascript.ContextFactory.doTopCall(ContextFactory.java:429)
>       at 
> com.gargoylesoftware.htmlunit.javascript.HtmlUnitContextFactory.doTopCall(HtmlUnitContextFactory.java:264)
>       at 
> net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3157)
>       at 
> net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.exec(InterpretedFunction.java:175)
>       at 
> com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$3.doRun(JavaScriptEngine.java:416)
>       at 
> com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:521)
>       ... 46 more
> Enclosed exception: 
> net.sourceforge.htmlunit.corejs.javascript.EcmaError: TypeError: Cannot set 
> property "_mfProto" of null to "null" 
> (http://localhost:8080/JSF20AJAXTag/javax.faces.resource/jsf.js.jsf?ln=javax.faces#51)
>       at 
> net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3753)
>       at 
> net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3731)
>       at 
> net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.typeError(ScriptRuntime.java:3759)
>       at 
> net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.typeError3(ScriptRuntime.java:3785)
>       at 
> net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.undefWriteError(ScriptRuntime.java:3807)
>       at 
> net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.setObjectElem(ScriptRuntime.java:1578)
>       at 
> net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpretLoop(Interpreter.java:1450)
>       at 
> script(http://localhost:8080/JSF20AJAXTag/javax.faces.resource/jsf.js.jsf?ln=javax.faces:51)
>       at 
> script(http://localhost:8080/JSF20AJAXTag/javax.faces.resource/jsf.js.jsf?ln=javax.faces:48)
>       at 
> script(http://localhost:8080/JSF20AJAXTag/javax.faces.resource/jsf.js.jsf?ln=javax.faces:65)
>       at 
> net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpret(Interpreter.java:845)
>       at 
> net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.call(InterpretedFunction.java:164)
>       at 
> net.sourceforge.htmlunit.corejs.javascript.ContextFactory.doTopCall(ContextFactory.java:429)
>       at 
> com.gargoylesoftware.htmlunit.javascript.HtmlUnitContextFactory.doTopCall(HtmlUnitContextFactory.java:264)
>       at 
> net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3157)
>       at 
> net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.exec(InterpretedFunction.java:175)
>       at 
> com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$3.doRun(JavaScriptEngine.java:416)
>       at 
> com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:521)
>       at 
> net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:537)
>       at 
> net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:538)
>       at 
> com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:425)
>       at 
> com.gargoylesoftware.htmlunit.html.HtmlPage.loadExternalJavaScriptFile(HtmlPage.java:980)
>       at 
> com.gargoylesoftware.htmlunit.html.HtmlScript.executeScriptIfNeeded(HtmlScript.java:353)
>       at 
> com.gargoylesoftware.htmlunit.html.HtmlScript$1.execute(HtmlScript.java:215)
>       at 
> com.gargoylesoftware.htmlunit.html.HtmlScript.onAllChildrenAddedToPage(HtmlScript.java:235)
>       at 
> com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.endElement(HTMLParser.java:718)
>       at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
> Source)
>       at 
> com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.endElement(HTMLParser.java:676)
>       at 
> org.cyberneko.html.HTMLTagBalancer.callEndElement(HTMLTagBalancer.java:1136)
>       at 
> org.cyberneko.html.HTMLTagBalancer.endElement(HTMLTagBalancer.java:1038)
>       at 
> org.cyberneko.html.filters.DefaultFilter.endElement(DefaultFilter.java:206)
>       at 
> org.cyberneko.html.filters.NamespaceBinder.endElement(NamespaceBinder.java:329)
>       at 
> org.cyberneko.html.HTMLScanner$ContentScanner.scanEndElement(HTMLScanner.java:2999)
>       at 
> org.cyberneko.html.HTMLScanner$ContentScanner.scan(HTMLScanner.java:1991)
>       at org.cyberneko.html.HTMLScanner.scanDocument(HTMLScanner.java:895)
>       at 
> org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:499)
>       at 
> org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:452)
>       at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>       at 
> com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.parse(HTMLParser.java:896)
>       at 
> com.gargoylesoftware.htmlunit.html.HTMLParser.parse(HTMLParser.java:350)
>       at 
> com.gargoylesoftware.htmlunit.html.HTMLParser.parseHtml(HTMLParser.java:304)
>       at 
> com.gargoylesoftware.htmlunit.DefaultPageCreator.createHtmlPage(DefaultPageCreator.java:134)
>       at 
> com.gargoylesoftware.htmlunit.DefaultPageCreator.createPage(DefaultPageCreator.java:101)
>       at 
> com.gargoylesoftware.htmlunit.WebClient.loadWebResponseInto(WebClient.java:420)
>       at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:303)
>       at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:360)
>       at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:345)
>       at com.ibm.mike.TestJS.homePage(TestJS.java:19)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
>       at java.lang.reflect.Method.invoke(Method.java:600)
>       at junit.framework.TestCase.runTest(TestCase.java:154)
>       at junit.framework.TestCase.runBare(TestCase.java:127)
>       at junit.framework.TestResult$1.protect(TestResult.java:106)
>       at junit.framework.TestResult.runProtected(TestResult.java:124)
>       at junit.framework.TestResult.run(TestResult.java:109)
>       at junit.framework.TestCase.run(TestCase.java:118)
>       at 
> org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
>       at 
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
> ======= EXCEPTION END ========

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to