Menu

#1138 Cannot find function translate in object - error with jquery

2.6
closed
None
5
2014-08-26
2010-07-15
GregGG
No

I'm using jquery and htmlunit 2.6 (it doesn't look like this is fixed in 2.7 though) and am getting the error below. I've solved the problem by creating an override of CanvasRenderingContext2D.class and JavaScriptConfiguration.xml with a dummy translate function. I'm uploading the jar with the overrides and the source fix. The quick description of the fix is I added these functions to CanvasRenderingContext2D.java:

/*
* Used by jquery
* @param x
* @param y
/
public void jsxFunction_translate(final Object x, final Object y) {
//empty
}

/*
* Used by jquery
* @param x
* @param y
/
public void jsxFunction_scale(final Object x, final Object y) {
//empty
}

And this added to element class name="CanvasRenderingContext2D" of JavaScriptConfiguration.xml:
<function name="translate"/>
<function name="scale"/>

The error:

EcmaError: lineNumber=[1] column=[0] lineSource=[] name=[TypeError] sourceName=[http://localhost:21100/website/js/jquery/flot/jquery.flot.min.js] message=[TypeError: Cannot find function translate in object [object CanvasRenderingContext2D]. (http://localhost:21100/website/js/jquery/flot/jquery.flot.min.js#1)]
com.gargoylesoftware.htmlunit.ScriptException: TypeError: Cannot find function translate in object [object CanvasRenderingContext2D]. (http://localhost:21100/website/js/jquery/flot/jquery.flot.min.js#1)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:526)
at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:529)
at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:536)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:456)
at com.gargoylesoftware.htmlunit.html.HtmlPage.executeJavaScriptFunctionIfPossible(HtmlPage.java:925)
at com.gargoylesoftware.htmlunit.javascript.host.EventListenersContainer.executeEventListeners(EventListenersContainer.java:155)
at com.gargoylesoftware.htmlunit.javascript.host.EventListenersContainer.executeBubblingListeners(EventListenersContainer.java:207)
at com.gargoylesoftware.htmlunit.javascript.host.Node.fireEvent(Node.java:609)
at com.gargoylesoftware.htmlunit.html.HtmlElement$2.run(HtmlElement.java:886)
at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:529)
at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:536)
at com.gargoylesoftware.htmlunit.html.HtmlElement.fireEvent(HtmlElement.java:891)
at com.gargoylesoftware.htmlunit.html.HtmlPage.executeEventHandlersIfNeeded(HtmlPage.java:1139)
at com.gargoylesoftware.htmlunit.html.HtmlPage.initialize(HtmlPage.java:180)
at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseInto(WebClient.java:454)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:330)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:387)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:372)
...
Caused by: net.sourceforge.htmlunit.corejs.javascript.EcmaError: TypeError: Cannot find function translate in object [object CanvasRenderingContext2D]. (http://localhost:21100/website/js/jquery/flot/jquery.flot.min.js#1)
at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3651)
at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3629)
at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.typeError(ScriptRuntime.java:3657)
at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.typeError2(ScriptRuntime.java:3676)
at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.notFunctionError(ScriptRuntime.java:3740)
at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.getPropFunctionAndThisHelper(ScriptRuntime.java:2249)
at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.getPropFunctionAndThis(ScriptRuntime.java:2216)
at net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpretLoop(Interpreter.java:1501)
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:427)
at com.gargoylesoftware.htmlunit.javascript.HtmlUnitContextFactory.doTopCall(HtmlUnitContextFactory.java:263)
at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3058)
at net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.call(InterpretedFunction.java:162)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:484)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$6.doRun(JavaScriptEngine.java:449)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:520)
... 83 more
Enclosed exception:
net.sourceforge.htmlunit.corejs.javascript.EcmaError: TypeError: Cannot find function translate in object [object CanvasRenderingContext2D]. (http://localhost:21100/website/js/jquery/flot/jquery.flot.min.js#1)
at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3651)
at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3629)
at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.typeError(ScriptRuntime.java:3657)
at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.typeError2(ScriptRuntime.java:3676)
at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.notFunctionError(ScriptRuntime.java:3740)
at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.getPropFunctionAndThisHelper(ScriptRuntime.java:2249)
at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.getPropFunctionAndThis(ScriptRuntime.java:2216)
at net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpretLoop(Interpreter.java:1501)
at script.S(http://localhost:21100/website/js/jquery/flot/jquery.flot.min.js:1)
at script.AH(http://localhost:21100/website/js/jquery/flot/jquery.flot.min.js:1)
at script.B(http://localhost:21100/website/js/jquery/flot/jquery.flot.min.js:1)
at script(http://localhost:21100/website/js/jquery/flot/jquery.flot.min.js:1)
at script.createFieldIndexChart(http://localhost:21100/website/js/simplesearch.js:1303)
at script(http://localhost:21100/website/js/simplesearch.js:1370)
at script(http://localhost:21100/website/js/jquery/jquery-1.3.2.min.js:19)
at script(http://localhost:21100/website/js/jquery/jquery-1.3.2.min.js:12)
at script(http://localhost:21100/website/js/jquery/jquery-1.3.2.min.js:19)
at script(http://localhost:21100/website/js/jquery/jquery-1.3.2.min.js:19)
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:427)
at com.gargoylesoftware.htmlunit.javascript.HtmlUnitContextFactory.doTopCall(HtmlUnitContextFactory.java:263)
at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3058)
at net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.call(InterpretedFunction.java:162)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:484)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$6.doRun(JavaScriptEngine.java:449)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:520)
at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:529)
at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:536)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:456)
at com.gargoylesoftware.htmlunit.html.HtmlPage.executeJavaScriptFunctionIfPossible(HtmlPage.java:925)
at com.gargoylesoftware.htmlunit.javascript.host.EventListenersContainer.executeEventListeners(EventListenersContainer.java:155)
at com.gargoylesoftware.htmlunit.javascript.host.EventListenersContainer.executeBubblingListeners(EventListenersContainer.java:207)
at com.gargoylesoftware.htmlunit.javascript.host.Node.fireEvent(Node.java:609)
at com.gargoylesoftware.htmlunit.html.HtmlElement$2.run(HtmlElement.java:886)
at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:529)
at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:536)
at com.gargoylesoftware.htmlunit.html.HtmlElement.fireEvent(HtmlElement.java:891)
at com.gargoylesoftware.htmlunit.html.HtmlPage.executeEventHandlersIfNeeded(HtmlPage.java:1139)
at com.gargoylesoftware.htmlunit.html.HtmlPage.initialize(HtmlPage.java:180)
at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseInto(WebClient.java:454)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:330)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:387)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:372)
...

Discussion

  • GregGG

    GregGG - 2010-07-15

    override jar with patch

     
  • Marc Guillemot

    Marc Guillemot - 2010-09-07

    Now fixed in SVN. Thanks for reporting.

    PS: please provide patch as diff, it is easier to read and to apply.

     

Log in to post a comment.