Bug - Not A Bug 10048 - FaxBot Request Button doesn't work

shoptroll

Member
Tried to use the Fax Bot request window today and while the "Online?" button works, it looks like the "Request" button doesn't work.

I don't see anything in the debug log related to this (although there's some errors possibly related to Bale's Recovery Script?)...

Code:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
         KoLmafia v14.8 r10048, Windows 7, Java 1.6.0_22
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 Please note: do not post this log in the KoLmafia thread. If you
 would like the dev team to look at it, please write a bug report
 at kolmafia.us. Include specific information about what you were 
 doing when you made this and include the log as an attachment.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 Timestamp: Sun Nov 27 09:22:10 EST 2011
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


Unexpected error, debug log printed.
Executing top-level commands
      Eval: 3.9.1
      Set: 3.9.1
   [NORMAL] <- "3.9.1"
   [NORMAL] <- aggregate restorative_info [item]
      Eval: recoveryScript_map_v2
      Set: recoveryScript_map_v2
   [NORMAL] <- "recoveryScript_map_v2"
   [NORMAL] <- aggregate skill_info [skill]
      Eval: default_int()
         Param #1: null
            Param #1: "baleUr_Verbosity"
            [NORMAL] <- "baleUr_Verbosity"
            Entering function get_property
            Function get_property returned: 1
         [NORMAL] <- "1"
         Param #2: 1
         [NORMAL] <- 1
         Entering function default_int
               Eval: ( ! is_integer() ? def : to_int() )
                  Operator: ?:
                     Condition: ! is_integer()
                        Operator: !
                           Operand 1: is_integer()
                              Param #1: pref
                              [NORMAL] <- "1"
                              Entering function is_integer
                              Function is_integer returned: true
                           [NORMAL] <- true
                        <- false
                     [NORMAL] <- false
                     False value: to_int()
                        Param #1: pref
                        [NORMAL] <- "1"
                        Entering function to_int
                        Function to_int returned: 1
                     [NORMAL] <- 1
                  <- 1
               Returning: 1
            [RETURN] <- 1
         Function default_int returned: 1
      Set: 1
   [NORMAL] <- 1
      Eval: default_int()
         Param #1: null
            Param #1: "baleUr_Purchase"
            [NORMAL] <- "baleUr_Purchase"
            Entering function get_property
            Function get_property returned: 1
         [NORMAL] <- "1"
         Param #2: 3
         [NORMAL] <- 3
         Entering function default_int
               Eval: ( ! is_integer() ? def : to_int() )
                  Operator: ?:
                     Condition: ! is_integer()
                        Operator: !
                           Operand 1: is_integer()
                              Param #1: pref
                              [NORMAL] <- "1"
                              Entering function is_integer
                              Function is_integer returned: true
                           [NORMAL] <- true
                        <- false
                     [NORMAL] <- false
                     False value: to_int()
                        Param #1: pref
                        [NORMAL] <- "1"
                        Entering function to_int
                        Function to_int returned: 1
                     [NORMAL] <- 1
                  <- 1
               Returning: 1
            [RETURN] <- 1
         Function default_int returned: 1
      Set: 1
   [NORMAL] <- 1
      Eval: ( ( baleUr_Purchase > 2 ) || ( ( baleUr_Purchase == 1 ) && to_boolean() ) )
         Operator: ||
            Operand 1: ( baleUr_Purchase > 2 )
               Operator: >
                  Operand 1: baleUr_Purchase
                  [NORMAL] <- 1
                  Operand 2: 2
                  [NORMAL] <- 2
               <- false
            [NORMAL] <- false
            Operand 2: ( ( baleUr_Purchase == 1 ) && to_boolean() )
               Operator: &&
                  Operand 1: ( baleUr_Purchase == 1 )
                     Operator: ==
                        Operand 1: baleUr_Purchase
                        [NORMAL] <- 1
                        Operand 2: 1
                        [NORMAL] <- 1
                     <- true
                  [NORMAL] <- true
                  Operand 2: to_boolean()
                     Param #1: null
                        Param #1: "autoSatisfyWithMall"
                        [NORMAL] <- "autoSatisfyWithMall"
                        Entering function get_property
                        Function get_property returned: true
                     [NORMAL] <- "true"
                     Entering function to_boolean
                     Function to_boolean returned: true
                  [NORMAL] <- true
               <- true
            [NORMAL] <- true
         <- true
      Set: true
   [NORMAL] <- true
      Eval: ( ( baleUr_Purchase > 1 ) || ( ( baleUr_Purchase == 1 ) && to_boolean() ) )
         Operator: ||
            Operand 1: ( baleUr_Purchase > 1 )
               Operator: >
                  Operand 1: baleUr_Purchase
                  [NORMAL] <- 1
                  Operand 2: 1
                  [NORMAL] <- 1
               <- false
            [NORMAL] <- false
            Operand 2: ( ( baleUr_Purchase == 1 ) && to_boolean() )
               Operator: &&
                  Operand 1: ( baleUr_Purchase == 1 )
                     Operator: ==
                        Operand 1: baleUr_Purchase
                        [NORMAL] <- 1
                        Operand 2: 1
                        [NORMAL] <- 1
                     <- true
                  [NORMAL] <- true
                  Operand 2: to_boolean()
                     Param #1: null
                        Param #1: "autoSatisfyWithNPCs"
                        [NORMAL] <- "autoSatisfyWithNPCs"
                        Entering function get_property
                        Function get_property returned: true
                     [NORMAL] <- "true"
                     Entering function to_boolean
                     Function to_boolean returned: true
                  [NORMAL] <- true
               <- true
            [NORMAL] <- true
         <- true
      Set: true
   [NORMAL] <- true
      Eval: ( ! to_boolean() && ( ( my_path() == "6" ) || ( my_path() == "Way of the Surprising Fist" ) ) )
         Operator: &&
            Operand 1: ! to_boolean()
               Operator: !
                  Operand 1: to_boolean()
                     Param #1: null
                        Param #1: "baleUr_FistPurchase"
                        [NORMAL] <- "baleUr_FistPurchase"
                        Entering function get_property
                        Function get_property returned: 
                     [NORMAL] <- ""
                     Entering function to_boolean
                     Function to_boolean returned: false
                  [NORMAL] <- false
               <- true
            [NORMAL] <- true
            Operand 2: ( ( my_path() == "6" ) || ( my_path() == "Way of the Surprising Fist" ) )
               Operator: ||
                  Operand 1: ( my_path() == "6" )
                     Operator: ==
                        Operand 1: my_path()
                           Entering function my_path
                           Function my_path returned: Trendy
                        [NORMAL] <- "Trendy"
                        Operand 2: 6
                        [NORMAL] <- "6"
                     <- false
                  [NORMAL] <- false
                  Operand 2: ( my_path() == "Way of the Surprising Fist" )
                     Operator: ==
                        Operand 1: my_path()
                           Entering function my_path
                           Function my_path returned: Trendy
                        [NORMAL] <- "Trendy"
                        Operand 2: Way of the Surprising Fist
                        [NORMAL] <- "Way of the Surprising Fist"
                     <- false
                  [NORMAL] <- false
               <- false
            [NORMAL] <- false
         <- false
      Set: false
   [NORMAL] <- false
      if
      Test: fist_safely
      [NORMAL] <- false
   [NORMAL] <- false
      Eval: to_boolean()
         Param #1: null
            Param #1: "baleUr_DontUseHotTub"
            [NORMAL] <- "baleUr_DontUseHotTub"
            Entering function get_property
            Function get_property returned: false
         [NORMAL] <- "false"
         Entering function to_boolean
         Function to_boolean returned: false
      Set: false
   [NORMAL] <- false
      Eval: to_boolean()
         Param #1: null
            Param #1: "baleUr_UseMmjStock"
            [NORMAL] <- "baleUr_UseMmjStock"
            Entering function get_property
            Function get_property returned: false
         [NORMAL] <- "false"
         Entering function to_boolean
         Function to_boolean returned: false
      Set: false
   [NORMAL] <- false
      Eval: to_float()
         Param #1: null
            Param #1: "baleUr_BirdThreshold"
            [NORMAL] <- "baleUr_BirdThreshold"
            Entering function get_property
            Function get_property returned: 0.1
         [NORMAL] <- "0.1"
         Entering function to_float
         Function to_float returned: 0.1
      Set: 0.1
   [NORMAL] <- 0.1
      if
      Test: ( BirdThreshold == 0 )
         Operator: ==
            Operand 1: BirdThreshold
            [NORMAL] <- 0.1
            Operand 2: 0
            [NORMAL] <- 0
         <- false
      [NORMAL] <- false
   [NORMAL] <- false
      Eval: to_boolean()
         Param #1: null
            Param #1: "baleUr_UseInventoryInMallmode"
            [NORMAL] <- "baleUr_UseInventoryInMallmode"
            Entering function get_property
            Function get_property returned: 
         [NORMAL] <- ""
         Entering function to_boolean
         Function to_boolean returned: false
      Set: false
   [NORMAL] <- false
      Eval: get_property()
         Param #1: "baleUr_DiscoResting"
         [NORMAL] <- "baleUr_DiscoResting"
         Entering function get_property
         Function get_property returned: 
      Set: 
   [NORMAL] <- ""
      Eval: to_boolean()
         Param #1: null
            Param #1: "baleUr_ignoreStatus"
            [NORMAL] <- "baleUr_ignoreStatus"
            Entering function get_property
            Function get_property returned: 
         [NORMAL] <- ""
         Entering function to_boolean
         Function to_boolean returned: false
      Set: false
   [NORMAL] <- false
      Eval: to_boolean()
         Param #1: null
            Param #1: "baleUr_AlwaysContinue"
            [NORMAL] <- "baleUr_AlwaysContinue"
            Entering function get_property
            Function get_property returned: 
         [NORMAL] <- ""
         Entering function to_boolean
         Function to_boolean returned: false
      Set: false
   [NORMAL] <- false
   [NORMAL] <- 0
   [NORMAL] <- 0
   [NORMAL] <- 0
   [NORMAL] <- 0
      Entering function set_autohealing
            Eval: floor()
               Param #1: ( my_maxhp() * to_float() )
                  Operator: *
                     Operand 1: my_maxhp()
                        Entering function my_maxhp
                        Function my_maxhp returned: 168
                     [NORMAL] <- 168
                     Operand 2: to_float()
                        Param #1: get_property()
                           Param #1: "hpAutoRecovery"
                           [NORMAL] <- "hpAutoRecovery"
                           Entering function get_property
                           Function get_property returned: 0.4
                        [NORMAL] <- "0.4"
                        Entering function to_float
                        Function to_float returned: 0.4
                     [NORMAL] <- 0.4
                  <- 67.200005
               [NORMAL] <- 67.200005
               Entering function floor
               Function floor returned: 67
            Set: 67
         [NORMAL] <- 67
            Eval: ceil()
               Param #1: ( my_maxhp() * to_float() )
                  Operator: *
                     Operand 1: my_maxhp()
                        Entering function my_maxhp
                        Function my_maxhp returned: 168
                     [NORMAL] <- 168
                     Operand 2: to_float()
                        Param #1: get_property()
                           Param #1: "hpAutoRecoveryTarget"
                           [NORMAL] <- "hpAutoRecoveryTarget"
                           Entering function get_property
                           Function get_property returned: 0.95
                        [NORMAL] <- "0.95"
                        Entering function to_float
class java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
	at java.util.ArrayList.RangeCheck(Unknown Source)
	at java.util.ArrayList.set(Unknown Source)
	at net.sourceforge.kolmafia.textui.parsetree.ForEachLoop.executeSlice(ForEachLoop.java:136)
	at net.sourceforge.kolmafia.textui.parsetree.ForEachLoop.execute(ForEachLoop.java:110)
	at net.sourceforge.kolmafia.textui.parsetree.BasicScope.execute(BasicScope.java:454)
	at net.sourceforge.kolmafia.textui.parsetree.Conditional.execute(Conditional.java:95)
	at net.sourceforge.kolmafia.textui.parsetree.If.execute(If.java:67)
	at net.sourceforge.kolmafia.textui.parsetree.BasicScope.execute(BasicScope.java:454)
	at net.sourceforge.kolmafia.textui.parsetree.UserDefinedFunction.execute(UserDefinedFunction.java:130)
	at net.sourceforge.kolmafia.textui.parsetree.FunctionCall.execute(FunctionCall.java:167)
	at net.sourceforge.kolmafia.textui.parsetree.BasicScope.execute(BasicScope.java:454)
	at net.sourceforge.kolmafia.textui.parsetree.UserDefinedFunction.execute(UserDefinedFunction.java:130)
	at net.sourceforge.kolmafia.textui.parsetree.FunctionCall.execute(FunctionCall.java:167)
	at net.sourceforge.kolmafia.textui.parsetree.Operator.applyTo(Operator.java:392)
	at net.sourceforge.kolmafia.textui.parsetree.Expression.execute(Expression.java:221)
	at net.sourceforge.kolmafia.textui.parsetree.Conditional.execute(Conditional.java:79)
	at net.sourceforge.kolmafia.textui.parsetree.If.execute(If.java:81)
	at net.sourceforge.kolmafia.textui.parsetree.BasicScope.execute(BasicScope.java:454)
	at net.sourceforge.kolmafia.textui.parsetree.UserDefinedFunction.execute(UserDefinedFunction.java:130)
	at net.sourceforge.kolmafia.textui.parsetree.FunctionCall.execute(FunctionCall.java:167)
	at net.sourceforge.kolmafia.textui.parsetree.BasicScope.execute(BasicScope.java:454)
	at net.sourceforge.kolmafia.textui.parsetree.UserDefinedFunction.execute(UserDefinedFunction.java:130)
	at net.sourceforge.kolmafia.textui.Interpreter.executeScope(Interpreter.java:322)
	at net.sourceforge.kolmafia.textui.Interpreter.execute(Interpreter.java:249)
	at net.sourceforge.kolmafia.textui.Interpreter.execute(Interpreter.java:242)
	at net.sourceforge.kolmafia.moods.RecoveryManager.invokeRecoveryScript(RecoveryManager.java:548)
	at net.sourceforge.kolmafia.moods.RecoveryManager.recoverHP(RecoveryManager.java:165)
	at net.sourceforge.kolmafia.moods.RecoveryManager.recoverHP(RecoveryManager.java:152)
	at net.sourceforge.kolmafia.moods.RecoveryManager.runBetweenBattleChecks(RecoveryManager.java:114)
	at net.sourceforge.kolmafia.webui.RelayAgent.readServerResponse(RelayAgent.java:430)
	at net.sourceforge.kolmafia.webui.RelayAgent.performRelay(RelayAgent.java:148)
	at net.sourceforge.kolmafia.webui.RelayAgent.run(RelayAgent.java:125)
 
Last edited:

slyz

Developer
Faxbot was offline for most of the day, was that the case when you tried to use the "Request" button?
 

shoptroll

Member
Dunno. I was able to manually request the fax shortly after I filed the bug report, and I'm pretty using the "Online?" button said it was online at the time. I'll see if I can reproduce again later today.
 

shoptroll

Member
Successfully faxed in a CHUM Chieftain today. Not sure why this broke yesterday, but it appears to not be a bug at the time.
 
Top