Ошибка нехватки памяти в Java при использовании HtmlUnitJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка нехватки памяти в Java при использовании HtmlUnit

Сообщение Anonymous »

Я создал веб-бота, используя htmlUnit и Java, который делает кучу вещей, но после 10 минут работы я всегда получаю следующую ошибку.

Программа обрабатывает несколько текстовых файлов, но ошибка ниже, похоже, связана с анализом JavaScript HtmlUnit.

Код: Выделить всё

Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
at net.sourceforge.htmlunit.corejs.javascript.Parser.forLoop(Parser.java:1297)
at net.sourceforge.htmlunit.corejs.javascript.Parser.statementHelper(Parser.java:982)
at net.sourceforge.htmlunit.corejs.javascript.Parser.statement(Parser.java:926)
at net.sourceforge.htmlunit.corejs.javascript.Parser.statements(Parser.java:886)
at net.sourceforge.htmlunit.corejs.javascript.Parser.block(Parser.java:1699)
at net.sourceforge.htmlunit.corejs.javascript.Parser.statementHelper(Parser.java:1031)
at net.sourceforge.htmlunit.corejs.javascript.Parser.statement(Parser.java:926)
at net.sourceforge.htmlunit.corejs.javascript.Parser.ifStatement(Parser.java:1102)
at net.sourceforge.htmlunit.corejs.javascript.Parser.statementHelper(Parser.java:970)
at net.sourceforge.htmlunit.corejs.javascript.Parser.statement(Parser.java:926)
at net.sourceforge.htmlunit.corejs.javascript.Parser.parseFunctionBody(Parser.java:662)
at net.sourceforge.htmlunit.corejs.javascript.Parser.function(Parser.java:827)
at net.sourceforge.htmlunit.corejs.javascript.Parser.primaryExpr(Parser.java:2746)
at net.sourceforge.htmlunit.corejs.javascript.Parser.memberExpr(Parser.java:2388)
at net.sourceforge.htmlunit.corejs.javascript.Parser.unaryExpr(Parser.java:2292)
at net.sourceforge.htmlunit.corejs.javascript.Parser.mulExpr(Parser.java:2219)
at net.sourceforge.htmlunit.corejs.javascript.Parser.addExpr(Parser.java:2205)
at net.sourceforge.htmlunit.corejs.javascript.Parser.shiftExpr(Parser.java:2188)
at net.sourceforge.htmlunit.corejs.javascript.Parser.relExpr(Parser.java:2165)
at net.sourceforge.htmlunit.corejs.javascript.Parser.eqExpr(Parser.java:2139)
at net.sourceforge.htmlunit.corejs.javascript.Parser.bitAndExpr(Parser.java:2130)
at net.sourceforge.htmlunit.corejs.javascript.Parser.bitXorExpr(Parser.java:2121)
at net.sourceforge.htmlunit.corejs.javascript.Parser.bitOrExpr(Parser.java:2112)
at net.sourceforge.htmlunit.corejs.javascript.Parser.andExpr(Parser.java:2103)
at net.sourceforge.htmlunit.corejs.javascript.Parser.orExpr(Parser.java:2094)
at net.sourceforge.htmlunit.corejs.javascript.Parser.condExpr(Parser.java:2060)
at net.sourceforge.htmlunit.corejs.javascript.Parser.assignExpr(Parser.java:2033)
at net.sourceforge.htmlunit.corejs.javascript.Parser.assignExpr(Parser.java:2044)
at net.sourceforge.htmlunit.corejs.javascript.Parser.expr(Parser.java:2023)
at net.sourceforge.htmlunit.corejs.javascript.Parser.nameOrLabel(Parser.java:1774)
at net.sourceforge.htmlunit.corejs.javascript.Parser.statementHelper(Parser.java:1053)
at net.sourceforge.htmlunit.corejs.javascript.Parser.statement(Parser.java:926)
Я получаю массу ошибок каждый раз, когда загружаю страницу JavaScript с помощью HtmlUnit, например:

Код: Выделить всё

net.sourceforge.htmlunit.corejs.javascript.EcmaError: TypeError:  Expected argument of type object,  b u t   i n s t e a d   h a d   t y p e   o b j e c t   ( h t t p : / / c a . c l a s s i s t a t i c . c o m / s e r v i c e - s t a t i c / f r o n t e n d - s e r v i c e / c o m m o n . b 2 8 d 6 b 2 c 3 f 1 0 a 7 b 5 3 8 8 a . j s # 4 ) < b r   / > a t   n e t . s o u r c e f o r g e . h t m l u n i t . c o r e j s . j a v a s c r i p t . S c r i p t R u n t i m e . c o n s t r u c t E r r o r ( S c r i p t R u n t i m e . j a v a : 3 9 3 5 ) < b r   / > a t   n e t . s o u r c e f o r g e . h t m l u n i t . c o r e j s . j a v a s c r i p t . S c r i p t R u n t i m e . c o n s t r u c t E r r o r ( S c r i p t R u n t i m e . j a v a : 3 9 1 9 ) < b r   / > a t   n e t . s o u r c e f o r g e . h t m l u n i t . c o r e j s . j a v a s c r i p t . S c r i p t R u n t i m e . t y p e E r r o r ( S c r i p t R u n t i m e . j a v a : 3 9 4 4 ) < b r   / > a t   n e t . s o u r c e f o r g e . h t m l u n i t . c o r e j s . j a v a s c r i p t . S c r i p t R u n t i m e . t y p e E r r o r 1 ( S c r i p t R u n t i m e . j a v a : 3 9 5 4 ) < b r   / > a t   n e t . s o u r c e f o r g e . h t m l u n i t . c o r e j s . j a v a s c r i p t . S c r i p t a b l e O b j e c t . e n s u r e S c r i p t a b l e O b j e c t ( S c r i p t a b l e O b j e c t . j a v a : 2 1 9 3 ) < b r   / > a t   n e t . s o u r c e f o r g e . h t m l u n i t . c o r e j s . j a v a s c r i p t . N a t i v e O b j e c t . e x e c I d C a l l ( N a t i v e O b j e c t . j a v a : 3 0 3 ) < b r   / > a t   n e t . s o u r c e f o r g e . h t m l u n i t . c o r e j s . j a v a s c r i p t . I d F u n c t i o n O b j e c t . c a l l ( I d F u n c t i o n O b j e c t . j a v a : 9 3 ) < b r   / > a t   n e t . s o u r c e f o r g e . h t m l u n i t . c o r e j s . j a v a s c r i p t . I n t e r p r e t e r . i n t e r p r e t L o o p ( I n t e r p r e t e r . j a v a : 1 5 3 6 ) < b r   / > a t   s c r i p t ( h t t p : / / c a . c l a s s i s t a t i c . c o m / s e r v i c e - s t a t i c / f r o n t e n d - s e r v i c e / c o m m o n . b 2 8 d 6 b 2 c 3 f 1 0 a 7 b 5 3 8 8 a . j s : 4 ) < b r   / > a t   s c r i p t ( h t t p : / / c a . c l a s s i s t a t i c . c o m / s e r v i c e - s t a t i c / f r o n t e n d - s e r v i c e / c o m m o n . b 2 8 d 6 b 2 c 3 f 1 0 a 7 b 5 3 8 8 a . j s : 1 ) < b r   / > a t   s c r i p t . n ( h t t p : / / c a . c l a s s i s t a t i c . c o m / s e r v i c e - s t a t i c / f r o n t e n d - s e r v i c e / c o m m o n . b 2 8 d 6 b 2 c 3 f 1 0 a 7 b 5 3 8 8 a . j s : 1 ) < b r   / > a t   s c r i p t ( h t t p : / / c a . c l a s s i s t a t i c . c o m / s e r v i c e - s t a t i c / f r o n t e n d - s e r v i c e / c o m m o n . b 2 8 d 6 b 2 c 3 f 1 0 a 7 b 5 3 8 8 a . j s : 5 ) < b r   / > a t   s c r i p t ( h t t p : / / c a . c l a s s i s t a t i c . c o m / s e r v i c e - s t a t i c / f r o n t e n d - s e r v i c e / c o m m o n . b 2 8 d 6 b 2 c 3 f 1 0 a 7 b 5 3 8 8 a . j s : 1 ) < b r   / > a t   s c r i p t . n ( h t t p : / / c a . c l a s s i s t a t i c . c o m / s e r v i c e - s t a t i c / f r o n t e n d - s e r v i c e / c o m m o n . b 2 8 d 6 b 2 c 3 f 1 0 a 7 b 5 3 8 8 a . j s : 1 ) < b r   / > a t   s c r i p t ( h t t p : / / c a . c l a s s i s t a t i c . c o m / s e r v i c e - s t a t i c / f r o n t e n d - s e r v i c e / c o m m o n . b 2 8 d 6 b 2 c 3 f 1 0 a 7 b 5 3 8 8 a . j s : 4 ) < b r   / > a t   s c r i p t . n ( h t t p : / / c a . c l a s s i s t a t i c . c o m / s e r v i c e -static/frontend-service/common.b28d6b2c3f10a7b5388a.js:1)
at script(http://ca.classistatic.com/service-static/frontend-service/common.b28d6b2c3f10a7b5388a.js:3)
at script(http://ca.classistatic.com/service-static/frontend-service/common.b28d6b2c3f10a7b5388a.js:3)
at script.n(http://ca.classistatic.com/service-static/frontend-service/common.b28d6b2c3f10a7b5388a.js:1)
at script(http://ca.classistatic.com/service-static/frontend-service/common.b28d6b2c3f10a7b5388a.js:4)
at script.n(http://ca.classistatic.com/service-static/frontend-service/common.b28d6b2c3f10a7b5388a.js:1)
at script(http://ca.classistatic.com/service-static/frontend-service/common.b28d6b2c3f10a7b5388a.js:4)
at script.n(http://ca.classistatic.com/service-static/frontend-service/common.b28d6b2c3f10a7b5388a.js:1)
at script(http://ca.classistatic.com/service-static/frontend-service/common.b28d6b2c3f10a7b5388a.js:1)
at script.n(http://ca.classistatic.com/service-static/frontend-service/common.b28d6b2c3f10a7b5388a.js:1)
at script(http://ca.classistatic.com/service-static/frontend-service/common.b28d6b2c3f10a7b5388a.js:1)
at script(http://ca.classistatic.com/service-static/frontend-service/common.b28d6b2c3f10a7b5388a.js:1)
at net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpret(Interpreter.java:798)
at net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.call(InterpretedFunction.java:105)
at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.doTopCall(ContextFactory.java:411)
at com.gargoylesoftware.htmlunit.javascript.HtmlUnitContextFactory.doTopCall(HtmlUnitContextFactory.java:309)
at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3286)
at net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.exec(InterpretedFunction.java:115)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$3.doRun(JavaScriptEngine.java:827)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:939)
at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:628)
at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:513)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:836)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:812)
at com.gargoylesoftware.htmlunit.html.HtmlPage.loadExternalJavaScriptFile(HtmlPage.java:997)
at com.gargoylesoftware.htmlunit.html.HtmlScript.executeScriptIfNeeded(HtmlScript.java:399)
at com.gargoylesoftware.htmlunit.html.HtmlScript$3.execute(HtmlScript.java:277)
at com.gargoylesoftware.htmlunit.html.HtmlScript.onAllChildrenAddedToPage(HtmlScript.java:293)
at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.endElement(HTMLParser.java:799)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.endElement(HTMLParser.java:756)
at org.cyberneko.html.HTMLTagBalancer.callEndElement(HTMLTagBalancer.java:1170)
at org.cyberneko.html.HTMLTagBalancer.endElement(HTMLTagBalancer.java:1072)
at org.cyberneko.html.filters.DefaultFilter.endElement(DefaultFilter.java:206)
at org.cyberneko.html.filters.NamespaceBinder.endElement(NamespaceBinder.java:330)
at org.cyberneko.html.HTMLScanner$ContentScanner.scanEndElement(HTMLScanner.java:3126)
at org.cyberneko.html.HTMLScanner$ContentScanner.scan(HTMLScanner.java:2093)
at org.cyberneko.html.HTMLScanner.scanDocument(HTMLScanner.java:920)
at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:499)
at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:452)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.parse(HTMLParser.java:1039)
at com.gargoylesoftware.htmlunit.html.HTMLParser.parse(HTMLParser.java:252)
at com.gargoylesoftware.htmlunit.html.HTMLParser.parseHtml(HTMLParser.java:198)
at com.gargoylesoftware.htmlunit.DefaultPageCreator.createHtmlPage(DefaultPageCreator.java:271)
at com.gargoylesoftware.htmlunit.DefaultPageCreator.createPage(DefaultPageCreator.java:159)
at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseInto(WebClient.java:478)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:352)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:417)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:402)
at WebBotServicesAdID.replyToAd(WebBotServicesAdID.java:269)
at WebBotServicesAdID.main(WebBotServicesAdID.java:771)
======= EXCEPTION END ========
Однако эти ошибки кажутся неизбежными и не приводят к остановке программы. Страница все еще загружается, и я все еще могу делать то, что мне нужно, поэтому всегда игнорировал их.

Является ли эта ошибка OutOfMemoryError результатом накопления тех ошибок, которые я проигнорировал?

Подробнее здесь: https://stackoverflow.com/questions/375 ... g-htmlunit
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Понимание распределения памяти JVM и нехватки памяти в Java: пространство кучи
    Anonymous » » в форуме JAVA
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • HtmlUnit закрывает все утечки памяти Windows
    Anonymous » » в форуме JAVA
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • HtmlUnit закрывает все утечки памяти Windows
    Anonymous » » в форуме JAVA
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Tomcat 8.5 Java 8 Ошибка нехватки памяти после введения Redis для управления сеансами
    Гость » » в форуме JAVA
    0 Ответы
    120 Просмотры
    Последнее сообщение Гость
  • Ошибка теста Junit из-за нехватки памяти с использованием Java 17 и версии eclipse. Версия: 2023-06 (4.28.0). Я пробовал
    Anonymous » » в форуме JAVA
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»