Best way to load questslog.txt

Veracity

Developer
Staff member
I'd expect it to be useful for monsters.txt, too, since monsters have a variable number of item drops.
 
Using 18053, Debug log below

class java.lang.NullPointerException: null
java.lang.NullPointerException
at net.sourceforge.kolmafia.textui.parsetree.RecordValue.dumpValue(RecordValue.java:196)
at net.sourceforge.kolmafia.textui.parsetree.RecordValue.dump(RecordValue.java:181)
at net.sourceforge.kolmafia.textui.parsetree.CompositeValue.dump(CompositeValue.java:119)
at net.sourceforge.kolmafia.textui.RuntimeLibrary.map_to_file(RuntimeLibrary.java:7179)
at net.sourceforge.kolmafia.textui.RuntimeLibrary.map_to_file(RuntimeLibrary.java:7167)
at sun.reflect.GeneratedMethodAccessor193.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.sourceforge.kolmafia.textui.parsetree.LibraryFunction.execute(LibraryFunction.java:104)
at net.sourceforge.kolmafia.textui.parsetree.FunctionCall.execute(FunctionCall.java:151)
at net.sourceforge.kolmafia.textui.parsetree.BasicScope.execute(BasicScope.java:417)
at net.sourceforge.kolmafia.textui.parsetree.UserDefinedFunction.execute(UserDefinedFunction.java:142)
at net.sourceforge.kolmafia.textui.parsetree.FunctionCall.execute(FunctionCall.java:151)
at net.sourceforge.kolmafia.textui.parsetree.BasicScope.execute(BasicScope.java:417)
at net.sourceforge.kolmafia.textui.parsetree.UserDefinedFunction.execute(UserDefinedFunction.java:142)
at net.sourceforge.kolmafia.textui.parsetree.FunctionCall.execute(FunctionCall.java:151)
at net.sourceforge.kolmafia.textui.parsetree.FunctionCall.execute(FunctionCall.java:102)
at net.sourceforge.kolmafia.textui.parsetree.BasicScope.execute(BasicScope.java:417)
at net.sourceforge.kolmafia.textui.parsetree.UserDefinedFunction.execute(UserDefinedFunction.java:142)
at net.sourceforge.kolmafia.textui.Interpreter.executeScope(Interpreter.java:401)
at net.sourceforge.kolmafia.textui.Interpreter.execute(Interpreter.java:325)
at net.sourceforge.kolmafia.textui.Interpreter.execute(Interpreter.java:318)
at net.sourceforge.kolmafia.KoLmafiaASH.getClientHTML(KoLmafiaASH.java:185)
at net.sourceforge.kolmafia.KoLmafiaASH.getClientHTML(KoLmafiaASH.java:154)
at net.sourceforge.kolmafia.request.RelayRequest.handleSimple(RelayRequest.java:3043)
at net.sourceforge.kolmafia.request.RelayRequest.run(RelayRequest.java:3074)
at net.sourceforge.kolmafia.RequestThread.postRequest(RequestThread.java:286)
at net.sourceforge.kolmafia.RequestThread.postRequest(RequestThread.java:249)
at net.sourceforge.kolmafia.webui.RelayAgent.readServerResponse(RelayAgent.java:576)
at net.sourceforge.kolmafia.webui.RelayAgent.performRelay(RelayAgent.java:164)
at net.sourceforge.kolmafia.webui.RelayAgent.run(RelayAgent.java:137)
 

Veracity

Developer
Staff member
This is about the fourth time this has been reported.

As I have said, repeatedly, I will fix it this evening.

If somebody with commit access wants to change AggregateValue.containsAggregate() to simply return true, it will fix this.
 

fronobulax

Developer
Staff member
This is about the fourth time this has been reported.

As I have said, repeatedly, I will fix it this evening.

If somebody with commit access wants to change AggregateValue.containsAggregate() to simply return true, it will fix this.

On the assumption that you meant

contains() in AggregateValue

this is done in r18054
 

Veracity

Developer
Staff member
Code:
    @Override
    public boolean containsAggregate()
    {
        return this.dataType instanceof AggregateType;
    }
becomes

Code:
    @Override
    public boolean containsAggregate()
    {
        return true;
    }
 

fronobulax

Developer
Staff member
No problem.

18055 effectively reverts 18054 and makes the change in AggregateType.containsAggregate();
 

heeheehee

Developer
Staff member
I'd expect it to be useful for monsters.txt, too, since monsters have a variable number of item drops.

item_drops_array() solved that issue, though. I do like the more general solution, although it would require slightly more boilerplate on the developer's behalf.
 

Veracity

Developer
Staff member
Revision 18056 lets you create "compact" files if your records (or fixed-sized arrays) do not contain maps or zero-length arrays.
 
Top