ScriptFunction being passed to JSObject, expected ScriptObjectMirror
Sundararajan Athijegannathan
sundararajan.athijegannathan at oracle.com
Thu Aug 24 08:07:37 UTC 2017
what is the type of args[0]? Can you print args[0].getClass() to check it?
Thanks,
-Sundar
On 24/08/17, 9:14 AM, Jesse Schulman wrote:
> I did try running with -Dnashorn.apply2call=false when I saw the email
> for that fix but it did not resolve the issue.
>
> There is no exception thrown, but our JSObject.call method basically
> is no-op as a result of not getting a ScriptObjectMirror, it
> effectively looks like this:
>
> @Override
> public Object call(Object thiz, Object ... args) {
> if (args.length < 2 || !(args[0] instanceof
> ScriptObjectMirror) || !((ScriptObjectMirror) args[0]).isFunction() ||
> !(args[1] instanceof Integer))
> return gScriptEnvironment.getUndefined();
>
> // safely cast and call ScriptObjectMirror...
> }
>
>
> I am continuing to work on reproducing it outside our application in a
> simple way. In the mean time if there's any other information I can
> share besides a reproducing example, or suggestions on workarounds to
> try let me know.
>
> Thanks!
> Jesse
>
> On Wed, Aug 23, 2017 at 7:10 PM Sundararajan Athijegannathan
> <sundararajan.athijegannathan at oracle.com
> <mailto:sundararajan.athijegannathan at oracle.com>> wrote:
>
> Hi,
>
> Sorry for the delayed response. We need more info to debug this - in
> particular, what is the exception (if any) thrown etc.
>
> I wonder if this is related to this recent apply-related fix ->
>
> http://mail.openjdk.java.net/pipermail/nashorn-dev/2017-August/006998.html
>
> -Sundar
>
> On 22/08/17, 3:43 AM, Jesse Schulman wrote:
> > This does not happen on the first run of the code but is
> consistently
> > happening on the 17th run after a restart and from that point
> forward is
> > broken until we restart.
> >
> > Attached is a broken and working call stack.
> >
> > I have tried to replicate what we are doing in a basic java
> reproducer but
> > have not been able to do so, given that I can consistently
> reproduce this
> > locally I am happy to take any suggested steps to gather more
> information
> > or to workaround/resolve the issue.
> >
> > Environment:
> > Java version 1.8.144
> > Engine created with "--no-java", "-strict",
> "--no-syntax-extensions",
> > "--language=es6", "--optimistic-types=true" (also tried with
> > optimistic-types=false)
> > All evaluation done on the same engine via engine.eval(String,
> Bindings)
> > using a Bindings that was returned from engine.createBindings,
> each of the
> > "runs" described above took place in a different Bindings instance
> >
> > Thanks!
> > Jesse
>
More information about the nashorn-dev
mailing list