Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

Sign up now!

Resolved Spectre crash, Scripts won't execute, 300MB log file.

Joined
May 1, 2016
Messages
42
Well, about five minutes ago Spectre started acting quite strange. When I tried to start scripts I would get Java heap memory errors. The first time or two it would point to some classes named like.. "IllILILILLLILILI" (Not exact) but after the first two times it didn't even provide a stack trace. Just "Java heap error"

I have almost 5 million lines in my log, all inputted over the last few minutes spamming this error:

Code:
java.lang.ArrayIndexOutOfBoundsException: -1
    at java.util.ArrayList.elementData(ArrayList.java:418)
    at java.util.ArrayList.get(ArrayList.java:431)
    at com.sun.javafx.collections.ObservableListWrapper.get(ObservableListWrapper.java:89)
    at com.sun.javafx.collections.VetoableListDecorator.get(VetoableListDecorator.java:306)
    at javafx.scene.Parent.updateCachedBounds(Parent.java:1591)
    at javafx.scene.Parent.recomputeBounds(Parent.java:1535)
    at javafx.scene.Parent.impl_computeGeomBounds(Parent.java:1388)
    at javafx.scene.layout.Region.impl_computeGeomBounds(Region.java:3078)
    at javafx.scene.Node.updateGeomBounds(Node.java:3577)
    at javafx.scene.Node.getGeomBounds(Node.java:3530)
    at javafx.scene.Node.getLocalBounds(Node.java:3478)
    at javafx.scene.Node.updateTxBounds(Node.java:3641)
    at javafx.scene.Node.getTransformedBounds(Node.java:3424)
    at javafx.scene.Node.updateBounds(Node.java:559)
    at javafx.scene.Parent.updateBounds(Parent.java:1719)
    at javafx.scene.Parent.updateBounds(Parent.java:1717)
    at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2404)
    at com.sun.javafx.tk.Toolkit.lambda$runPulse$30(Toolkit.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:354)
    at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:381)
    at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:510)
    at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:490)
    at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$404(QuantumToolkit.java:319)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
    at java.lang.Thread.run(Thread.java:745)


I've carefully observed all of the class names here and none of them have anything to do with my local scripts. (Running in -SDK mode). I haven't modified my scripts any to make something like this occur. I simply was restarting a script because I reached my 3-hour test period.

It may or may not be a bug related to spectre directly, but I figured I'd post it here anyway.
 
Found the stack-trace of the heap error in my logs:

Code:
java.lang.OutOfMemoryError: Java heap space
    at java.util.HashMap.newNode(HashMap.java:1742)
    at java.util.HashMap.putVal(HashMap.java:630)
    at java.util.HashMap.put(HashMap.java:611)
    at nul.iiIiiIiiIiiI.try(wob:31)
    at nul.iiiiiIiiiIiI.try(dtb:206)
    at nul.iiiiiIiiiIiI.try(dtb:61)
    at nul.IIIiIIiIiIii.try(dtb:11)
    at nul.IIIiIIiiIiiI.try(wwb:263)
    at nul.iiIiIIiIIIiI.try(wnb:75)
    at nul.IIIiIIiiIiiI.try(wwb:30)
    at nul.iiIIIIiiiiII.try(nwb:92)
    at nul.IiIiIIiiIIii.try(uqb:92)
    at com.runemate.game.api.hybrid.entities.definitions.ItemDefinition.get(pzb:64)
    at nul.IIIiIIiiIIIi.getContainedItem(frb:153)
    at com.runemate.game.api.hybrid.queries.InterfaceComponentQueryBuilder.accepts(ogc:10245)
    at com.runemate.game.api.hybrid.queries.InterfaceComponentQueryBuilder.accepts(ogc:1)
    at com.runemate.game.api.hybrid.queries.QueryBuilder.results(crb:15)
    at com.runemate.game.api.hybrid.local.hud.interfaces.Equipment$Slot.getComponent(nyb:5)
    at com.devtucker.bots.spectrefarmer.SpectreFarmerScript.onStart(SpectreFarmerScript.java:54)
    at com.devtucker.framework.rewrite.AdvancedScript.onStart(AdvancedScript.java:45)
    at com.runemate.game.api.script.framework.AbstractScript.start(upb:34)
    at nul.IiIIIIiIIiii.run(vic:263)
 
Since the error indicates QueryBuilder was involved, here is my QueryBuilder code:

Code:
Equipment.newQuery().ids(FIRE_STAFF_ID).results().first()
 
Mod Automation
Joined
Jul 26, 2013
Messages
3,053
Are you using JavaFX in your local bot? If so, the issue is likely in your bot. When you dispatch a Runnable to the JFX Platform using something like Platform.runLater you lose the stack traceability, thus your own classes not being included in the top stack trace. You should investigate your UI code thoroughly. The java heap space exception is not an issue. The specific stack that encounters that exception is not necessarily the problem; it just means that it couldn't do what it wanted to do because it ran out of RAM when it tried to allocate something it needed. Fixing the first issue will likely fix the latter.
 
Joined
May 1, 2016
Messages
42
Thanks for the information on JavaFX loosing the stack, I had no idea that happened. I'm not sure what the problem was, but I would assume that some bin files got corrupted, as once I ran a clean+rebuild on the project everything seemed to fix itself. Thanks for the response.
 
Top