Nashron Примечания к выпуску утверждают, что они исправили ошибки парсера JSON, но я все еще могу создать (другую) ошибку в новом патче 8u60. На этот раз это OutOfMemoryError.Nashorn JSON.parse() - java.lang.OutOfMemoryError: Java heap space - JDK8u60
Обратитесь к прилагаемому JSON [1] (обычно это относится к категории & Подкатегория). Когда я пытаюсь вызвать JSON.parse(), он терпит неудачу.
[1] http://jsfiddle.net/manivannandsekaran/rfftavkz/
- Я попытался увеличить размер кучи, не помогло, вместо того, чтобы ООМ Exception быстро, задерживается немного.
- Когда я заменяю весь целочисленный ключ на Alpahnumberic, весь процесс обработки синтаксиса очень быстрый. [2]
[2] https://jsfiddle.net/manivannandsekaran/8yw3ojmu/
Это почти 4 месяца мы ждали, чтобы получить оригинальную ошибка исправлена, теперь снова новый путь введен другая ошибку (это действительно расстраивает, я не уверен, как эти ошибки выходят из регрессии). Есть ли доступ к обходу? Можно ли переопределить парсер JSON по умолчанию с другими известными анализаторами JSON (например, GSON или Jackson).
Здесь трассировка следа отказа от JJS.
jjs> load("catsubcat/test.js")
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at jdk.nashorn.internal.runtime.arrays.IntArrayData.toObjectArray(IntArrayData.java:138)
at jdk.nashorn.internal.runtime.arrays.IntArrayData.convertToObject(IntArrayData.java:180)
at jdk.nashorn.internal.runtime.arrays.IntArrayData.convert(IntArrayData.java:192)
at jdk.nashorn.internal.runtime.arrays.IntArrayData.set(IntArrayData.java:243)
at jdk.nashorn.internal.runtime.arrays.ArrayFilter.set(ArrayFilter.java:99)
at jdk.nashorn.internal.runtime.arrays.DeletedRangeArrayFilter.set(DeletedRangeArrayFilter.java:144)
at jdk.nashorn.internal.parser.JSONParser.addArrayElement(JSONParser.java:246)
at jdk.nashorn.internal.parser.JSONParser.parseObject(JSONParser.java:210)
at jdk.nashorn.internal.parser.JSONParser.parseLiteral(JSONParser.java:165)
at jdk.nashorn.internal.parser.JSONParser.parseObject(JSONParser.java:207)
at jdk.nashorn.internal.parser.JSONParser.parseLiteral(JSONParser.java:165)
at jdk.nashorn.internal.parser.JSONParser.parseObject(JSONParser.java:207)
at jdk.nashorn.internal.parser.JSONParser.parseLiteral(JSONParser.java:165)
at jdk.nashorn.internal.parser.JSONParser.parse(JSONParser.java:148)
at jdk.nashorn.internal.runtime.JSONFunctions.parse(JSONFunctions.java:80)
at jdk.nashorn.internal.objects.NativeJSON.parse(NativeJSON.java:105)
at java.lang.invoke.LambdaForm$DMH/1880587981.invokeStatic_L3_L(LambdaForm$DMH)
at java.lang.invoke.LambdaForm$BMH/1095293768.reinvoke(LambdaForm$BMH)
at java.lang.invoke.LambdaForm$MH/1411892748.exactInvoker(LambdaForm$MH)
at java.lang.invoke.LambdaForm$MH/22805895.linkToCallSite(LambdaForm$MH)
at jdk.nashorn.internal.scripts.Script$5$test.:program(file:catsubcat/test.js:1)
at java.lang.invoke.LambdaForm$DMH/1323165413.invokeStatic_LL_L(LambdaForm$DMH)
at java.lang.invoke.LambdaForm$MH/653687670.invokeExact_MT(LambdaForm$MH)
at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:640)
at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:228)
at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:393)
at jdk.nashorn.internal.runtime.Context.evaluateSource(Context.java:1219)
at jdk.nashorn.internal.runtime.Context.load(Context.java:841)
at jdk.nashorn.internal.objects.Global.load(Global.java:1536)
at java.lang.invoke.LambdaForm$DMH/1323165413.invokeStatic_LL_L(LambdaForm$DMH)
at java.lang.invoke.LambdaForm$BMH/1413378318.reinvoke(LambdaForm$BMH)
at java.lang.invoke.LambdaForm$reinvoker/40472007.dontInline(LambdaForm$reinvoker)
Hi, Вы пытались установить пространство пермгенов больше? Вскоре, с API AOP, классы создаются во время выполнения и должны быть самыми большими, как установлено JAVA_OPTS = "- Xms256m -Xmx1024m -XX: PermSize = 512m -XX: MaxPermSize = 1024m" –
Не помогло. Если я увеличиваю размер MAX Heap, ошибка просто задержится. Кроме того, я разбираю собственно JSON-объект, нет экземпляра «массив». Но исключение stacktrace указывает на addArrayElement. –
Извините, пространство PermGen больше не существует un JDK 8. http://java-latte.blogspot.in/2014/03/metaspace-in-java-8.html –