--- old/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/StoredScript.java 2014-09-18 15:01:51.787592999 +0200 +++ new/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/StoredScript.java 2014-09-18 15:01:51.647593005 +0200 @@ -27,6 +27,7 @@ import java.io.Serializable; import java.util.Arrays; +import java.util.LinkedHashMap; import java.util.Map; /** @@ -83,7 +84,11 @@ * @return map of class bytes */ public Map getClassBytes() { - return classBytes; + final Map clonedMap = new LinkedHashMap<>(); + for (final Map.Entry entry : classBytes.entrySet()) { + clonedMap.put(entry.getKey(), entry.getValue().clone()); + } + return clonedMap; } /** @@ -91,11 +96,19 @@ * @return constants array */ public Object[] getConstants() { - return constants; + return constants.clone(); } - Map getInitializers() { - return initializers; + /** + * Returns the function initializers map. + * @return The initializers map. + */ + public Map getInitializers() { + final Map clonedMap = new LinkedHashMap<>(); + for (final Map.Entry entry : initializers.entrySet()) { + clonedMap.put(entry.getKey(), new FunctionInitializer(entry.getValue())); + } + return clonedMap; } @Override