Best way to load questslog.txt

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)
 
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.
 
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
 
Code:
    @Override
    public boolean containsAggregate()
    {
        return this.dataType instanceof AggregateType;
    }
becomes

Code:
    @Override
    public boolean containsAggregate()
    {
        return true;
    }
 
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.
 
Revision 18056 lets you create "compact" files if your records (or fixed-sized arrays) do not contain maps or zero-length arrays.
 
Back
Top