Workaround for java.io.NotSerializableException: jdk.nashorn.internal.objects.Global

A. Sundararajan sundararajan.athijegannathan at oracle.com
Mon Mar 30 13:24:31 UTC 2015


As mentioned, serialization is not supported for script objects to avoid 
security, versioning issues (i.e,freely evolving internal implementation 
data structures). But, it should be possible to "serialize" a required 
global variables as a JSON document (JSON.stringify accepts "replacer" 
function which can be used to customize - for example, java serializable 
object values of global vars can be serialized and encoded as needed). 
JSON.parse can be used to "deserialize" - again "reviver" function can 
be used customize deserialization of particular values.

Hope this helps,
-Sundar

On Sunday 29 March 2015 09:29 AM, Viktor Gamov wrote:
> Hello Nashorn-team,
>
> In my sample project I'm integrating different Hazelcast API with Nashorn.
> It's on GH https://github.com/gAmUssA/hazelcast-nashorn
> One thing that I'm trying to do is EntryProcessor (
> http://docs.hazelcast.org/docs/latest/manual/html/entryprocessor.html).
> EntryProcessor is executing on Hazelcast cluster member node. For that
> purpose, Hazelcast client serializes it and sends it member node.
>
> ​I'm getting exception
>
> Caused by: java.io.NotSerializableException:
> jdk.nashorn.internal.objects.Global​
> (hazelcastClient.js, line 40, commented)
>
> ​Thanks to Sundar​ (
> https://twitter.com/sundararajan_a/status/581651315920515072), I learn that
> Global object is not serializable to security reasons.
>
> ​Please, let me know if there is a workaround of​ this problem?
>
> ​Thank you​
>



More information about the nashorn-dev mailing list