Last Msg First Msg
























method com.dmdirc.actions.Action__static_init
postDOMAIN_CONDITIONTREE != null
postDOMAIN_FORMAT != null
postDOMAIN_METADATA != null
postDOMAIN_RESPONSE != null
postDOMAIN_TRIGGERS != null










method void com.dmdirc.actions.Action(String, String)
preinit'ed(com/dmdirc/Main.configdir)
presumptioninit'ed(com.dmdirc.logger.ErrorLevel.HIGH)
presumptioninit'ed(com.dmdirc.logger.ErrorLevel.MEDIUM)
presumptioninit'ed(java.io.File.separator)
postcom/dmdirc/Main.configdir == One-of{old com/dmdirc/Main.configdir, &java.lang. StringBuilder:toString(...)}
postcom/dmdirc/Main.configdir != null
postinit'ed(java.lang.StringBuilder:toString(...)._ tainted)
postjava.lang.StringBuilder:toString(...)._tainted == 0
postthis.conditions == &new ArrayList(ActionModel#1 )
postinit'ed(this.config)
postthis.group == group
postinit'ed(this.group)
postthis.location == &java.lang.StringBuilder:toStr ing(...)
postthis.name == name
postinit'ed(this.name)
postnew ArrayList(ActionModel#1) num objects == 1
postnew ConfigFile(Action#2) num objects <= 1
unanalyzedcall on getConfigDir
unanalyzedcall on java.lang.System:getProperty
unanalyzedcall on java.util.ArrayList
unanalyzedcall on java.lang.String:startsWith
unanalyzedcall on java.lang.System:getenv









  method not available - call not analyzedInfocall on void com.dmdirc.util.ConfigFile(String)










  method not available - call not analyzedInfocall on void com.dmdirc.util.ConfigFile:read()










  call too complex - analysis skippedInfocall on void loadActionFromConfig()










  method not available - call not analyzedInfocall on String com.dmdirc.util.InvalidConfigFileExc eption:getMessage()
  method not available - call not analyzedInfocall on void com.dmdirc.logger.Logger:userError(Err orLevel, String)










  method not available - call not analyzedInfocall on void com.dmdirc.logger.Logger:userError(Err orLevel, String)











method void com.dmdirc.actions.Action(String, String, ActionType[], String[], List, String)
preconditions != null
pre(soft) init'ed(com/dmdirc/ServerManager.me)
postcom/dmdirc/ServerManager.me == old com/dmdirc/Serve rManager.me
postjava.lang.StringBuilder:toString(...)._tainted == 0
postnew ConditionTree(readTerm#1)._tainted == 0
postinit'ed(this.conditionTree)
postinit'ed(this.conditions)
postinit'ed(this.config)
postinit'ed(this.group)
postinit'ed(this.location)
postinit'ed(this.modified)
postinit'ed(this.name)
postinit'ed(this.newFormat)
postinit'ed(this.response)
postinit'ed(this.triggers)
postnew ActionType[](ActionModel#2) num objects == undefined
postnew ActionType[](ActionModel#2) num objects == 0, if init'ed
postnew ActionType[](ActionModel#2).length == new ActionType[](ActionModel#2) num objects
postnew ArrayList(ActionModel#1) num objects == new ActionType[](ActionModel#2) num objects
postnew ArrayList(ServerManager#1) num objects == new ActionType[](ActionModel#2) num objects
postnew ServerManager(getServerManager#1) num objects == new ActionType[](ActionModel#2) num objects
postnew String[](ActionModel#3) num objects == new ActionType[](ActionModel#2) num objects
postnew String[](ActionModel#3).length == new ActionType[](ActionModel#2) num objects
postnew ActionType[](ActionModel#2)[...] == undefined
postnew ActionType[](ActionModel#2)[...] == null
postnew ServerManager(getServerManager#1).servers == new ActionType[](ActionModel#2)[...]
postnew String[](ActionModel#3)[...] == new ActionType[](ActionModel#2)[...]
postnew ConditionTree(parseStack#3) num objects <= 1
postnew ConditionTree(parseStack#3).argument == -1
postnew ConditionTree(parseStack#3).leftArg == null
postnew ConditionTree(parseStack#3).op == &amp;com.dmdirc.actions.ConditionTree$OPERATION__ static_init.new ConditionTree$OPERATION(ConditionTr ee$OPERATION__static_init#5)
postnew ConditionTree(parseStack#3).rightArg == null
postinit'ed(new ConditionTree(readTerm#1) num objects)
postnew ConditionTree(readTerm#1).argument == 0, if init'ed
postnew ConditionTree(readTerm#1).leftArg == null
postnew ConditionTree(readTerm#1).op == null
postnew ConditionTree(readTerm#1).rightArg == null
unanalyzedcall on java.util.Deque:pollFirst
unanalyzedcall on java.lang.Character:instanceof
unanalyzedcall on java.lang.Character:charValue
unanalyzedcall on java.util.Deque:isEmpty
unanalyzedcall on readTerm
unanalyzedcall on java.util.ArrayDeque
unanalyzedcall on java.util.Deque:pollLast
unanalyzedcall on java.util.Deque:addFirst
unanalyzedcall on parseStack
unanalyzedcall on java.util.Deque:poll
unanalyzedcall on java.util.Deque:add
unanalyzedcall on java.util.Deque:size
unanalyzedcall on java.lang.String:length
unanalyzedcall on java.lang.String:charAt
unanalyzedcall on java.lang.String:valueOf
unanalyzedcall on java.lang.Integer:parseInt
unanalyzedcall on java.lang.Throwable:__curr_excep_obj
unanalyzedcall on java.lang.Character:valueOf









  call too complex - analysis skippedInfocall on void com.dmdirc.actions.Action(String, String, ActionType[], String[], List, ConditionTree, String)











method void com.dmdirc.actions.Action(String, String, ActionType[], String[], List, ConditionTree, String)
preinit'ed(com/dmdirc/actions/ActionManager. killSwitch)
preinit'ed(com/dmdirc/Main.configdir)
preresponse != null
pretriggers != null
pre(soft) com.dmdirc.actions.CoreActionType__static_ init.new CoreActionType(CoreActionType__static_init #71).type != null
pre(soft) conditions init'ed
pre(soft) init'ed(com/dmdirc/ServerManager.me)
pre(soft) init'ed(response[...])
pre(soft) triggers.length <= 232-1
pre(soft) init'ed(triggers[...])
presumptioninit'ed(java.io.File.separator)
postcom/dmdirc/Main.configdir == One-of{old com/dmdirc/Main.configdir, &amp;java.lang. StringBuilder:toString(...)}
postcom/dmdirc/Main.configdir != null
postinit'ed(com/dmdirc/ServerManager.me)
postinit'ed(java.lang.StringBuilder:toString(...)._ tainted)
postjava.lang.StringBuilder:toString(...)._tainted == 0
postthis.conditionTree == conditionTree
postinit'ed(this.conditionTree)
postthis.conditions == conditions
postinit'ed(this.conditions)
postinit'ed(this.config)
postthis.group == group
postinit'ed(this.group)
postthis.location == &amp;java.lang.StringBuilder:toStr ing(...)
postthis.modified == 1
postnew ActionType[](ActionModel#2) num objects == 1
postnew ArrayList(ActionModel#1) num objects == 1
postnew String[](ActionModel#3) num objects == 1
postthis.name == name
postinit'ed(this.name)
postthis.newFormat == newFormat
postinit'ed(this.newFormat)
postthis.response == &amp;new String[](ActionModel#3)
postthis.triggers == &amp;new ActionType[](ActionModel# 2)
postnew ActionType[](ActionModel#2).length == triggers.length
postnew ActionType[](ActionModel#2).length <= 232-1
postnew ActionType[](ActionModel#2)[0] == One-of{triggers[...], undefined}
postinit'ed(new ActionType[](ActionModel#2)[0])
postnew ActionType[](ActionModel#2)[...] == One-of{triggers[...], undefined}
postnew ArrayList(ServerManager#1) num objects <= 1
postnew ArrayList(ServerManager#1) num objects == undefined
postnew ArrayList(ServerManager#1) num objects == 0, if init'ed
postnew ServerManager(getServerManager#1) num objects == new ArrayList(ServerManager#1) num objects
postnew ServerManager(getServerManager#1) num objects <= 1
postinit'ed(new ServerManager(getServerManager#1). servers)
postnew ServerManager(getServerManager#1).servers == undefined
postnew ServerManager(getServerManager#1).servers == null
postnew String[](ActionModel#3).length == response.length
postinit'ed(new String[](ActionModel#3).length)
postnew String[](ActionModel#3)[...] == One-of{response[...], undefined}
unanalyzedcall on com.dmdirc.actions.ConditionTree$OPERATION: ordinal
unanalyzedcall on com.dmdirc.logger.Logger:assertTrue
unanalyzedcall on getType
unanalyzedcall on com.dmdirc.util.MapList:containsKey
unanalyzedcall on com.dmdirc.util.MapList:get
unanalyzedcall on java.util.ArrayList
unanalyzedcall on java.util.ArrayList:iterator
unanalyzedcall on trigger
unanalyzedcall on getArity
unanalyzedcall on com.dmdirc.interfaces.ActionListener:proces sEvent
unanalyzedcall on triggerActions
unanalyzedcall on getConfigDir
unanalyzedcall on java.lang.System:getProperty
unanalyzedcall on java.util.Map:put
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on java.util.HashMap
unanalyzedcall on java.util.Map:get
unanalyzedcall on getArgTypes
unanalyzedcall on java.util.Deque:pollFirst
unanalyzedcall on java.lang.Character:instanceof
unanalyzedcall on java.lang.Character:charValue
unanalyzedcall on java.util.Deque:isEmpty
unanalyzedcall on readTerm
unanalyzedcall on java.util.ArrayDeque
unanalyzedcall on java.util.Deque:pollLast
unanalyzedcall on java.util.Deque:addFirst
unanalyzedcall on parseStack
unanalyzedcall on java.util.Deque:poll
unanalyzedcall on java.util.Deque:add
unanalyzedcall on java.util.Deque:size
unanalyzedcall on java.lang.String:length
unanalyzedcall on java.lang.String:charAt
unanalyzedcall on java.lang.String:valueOf
unanalyzedcall on java.lang.Integer:parseInt
unanalyzedcall on java.lang.Throwable:__curr_excep_obj
unanalyzedcall on java.lang.Character:valueOf
unanalyzedcall on com.dmdirc.util.MapList:add
unanalyzedcall on getTriggers
unanalyzedcall on java.lang.Object:equals
unanalyzedcall on java.util.List:iterator
unanalyzedcall on getTabCompleter
unanalyzedcall on getConditions
unanalyzedcall on com.dmdirc.commandparser.CommandManager:get CommandChar
unanalyzedcall on getGroup
unanalyzedcall on java.util.List:get
unanalyzedcall on java.util.List:size
unanalyzedcall on add
unanalyzedcall on getName
unanalyzedcall on com.dmdirc.logger.Logger:userError
unanalyzedcall on java.util.List:add
unanalyzedcall on getGlobalWindow
unanalyzedcall on com.dmdirc.ui.input.TabCompleter:addEntry
unanalyzedcall on com.dmdirc.config.IdentityManager:getGlobal Config
unanalyzedcall on com.dmdirc.config.ConfigManager:getOptions
unanalyzedcall on java.util.Map:entrySet
unanalyzedcall on java.util.Set:iterator
unanalyzedcall on java.util.Map$Entry:getKey
unanalyzedcall on java.util.Map$Entry:getValue
unanalyzedcall on [Ljava.lang.String;:instanceof
unanalyzedcall on java.lang.String:instanceof
unanalyzedcall on java.lang.String:split
unanalyzedcall on doServerSubstitutions
unanalyzedcall on doComponentSubstitutions
unanalyzedcall on getServer
unanalyzedcall on getState
unanalyzedcall on com.dmdirc.ServerState:equals
unanalyzedcall on getCompatibleComponents
unanalyzedcall on java.lang.Object:toString
unanalyzedcall on get
unanalyzedcall on test
unanalyzedcall on evaluate
unanalyzedcall on getUI
unanalyzedcall on com.dmdirc.ui.interfaces.UIController:getAc tiveWindow
unanalyzedcall on getFrame
unanalyzedcall on com.dmdirc.ui.interfaces.InputWindow:instan ceof
unanalyzedcall on com.dmdirc.commandparser.parsers. GlobalCommandParser:getGlobalCommandParser
unanalyzedcall on com.dmdirc.ui.interfaces.InputWindow:getCom mandParser
unanalyzedcall on com.dmdirc.commandparser.parsers. CommandParser:parseCommand
unanalyzedcall on java.lang.String:startsWith
unanalyzedcall on java.lang.System:getenv









  call too complex - analysis skippedInfocall on void save()











method void loadActionFromConfig()
prethis.config != null
pre(soft) init'ed(com/dmdirc/ServerManager.me)
pre(soft) init'ed(this.triggers[0])
pre(soft) init'ed(this.triggers[...])
pre(soft) this.conditions != null
pre(soft) init'ed(this.group)
pre(soft) init'ed(this.name)
presumptioncom.dmdirc.util.ConfigFile:getFlatDomain(...)@154 != null
presumptioncom.dmdirc.util.ConfigFile:getFlatDomain(...)@163 != null
presumptioncom.dmdirc.util.ConfigFile:getFlatDomain(...)@166 != null
presumptioncom.dmdirc.util.ConfigFile:getFlatDomain(...)@175 != null
presumptioncom.dmdirc.util.ConfigFile:getFlatDomain(...)@185 != null
presumptioncom.dmdirc.util.ConfigFile:getFlatDomain(...)@187 != null
presumptioncom.dmdirc.util.ConfigFile:getKeyDomain(...)@180 != null
presumptionjava.util.List:get(...)@187 != null
presumptionjava.util.List:size(...)@163 >= 1
presumptionjava.util.List:size(...)@264 != 0
presumptionthis.conditionTree...leftArg != null
presumptionthis.conditionTree...leftArg@195 != null
presumptionthis.conditionTree...rightArg != null
presumptionthis.conditionTree...rightArg@195 != null
presumptionthis.conditionTree.leftArg != null
presumptionthis.conditionTree.leftArg@195 != null
presumptionthis.conditionTree.rightArg != null
presumptionthis.conditionTree.rightArg@195 != null
presumptionthis.triggers[0].type != null
postinit'ed(com/dmdirc/ServerManager.me)
postpossibly_updated(this.conditionTree)
postpossibly_updated(this.newFormat)
postthis.response == One-of{old this.response, &amp;new String[](loadActionFromConfig#1)}
postinit'ed(this.response[...])
postthis.triggers == One-of{&amp;new ActionType[](loadT riggers#1), old this.triggers}
postinit'ed(this.triggers[0])
postinit'ed(this.triggers[...])
postnew ActionType[](loadTriggers#1) num objects <= 1
postinit'ed(new ActionType[](loadTriggers#1).length)
postinit'ed(new ActionType[](loadTriggers#1)[0])
postpossibly_updated(new ActionType[](loadTriggers#1)[...])
postnew ArrayList(ServerManager#1) num objects <= 1
postnew ConditionTree(parseStack#3) num objects <= 1
postinit'ed(new ConditionTree(parseStack#3).argument)
postinit'ed(new ConditionTree(parseStack#3).leftArg)
postinit'ed(new ConditionTree(parseStack#3).op)
postinit'ed(new ConditionTree(parseStack#3).rightArg)
postinit'ed(new ConditionTree(readTerm#1) num objects)
postpossibly_updated(new ConditionTree(readTerm#1). argument)
postpossibly_updated(new ConditionTree(readTerm#1). leftArg)
postpossibly_updated(new ConditionTree(readTerm#1).op)
postpossibly_updated(new ConditionTree(readTerm#1). rightArg)
postnew ServerManager(getServerManager#1) num objects <= 1
postinit'ed(new ServerManager(getServerManager#1). servers)
postnew String[](loadActionFromConfig#1) num objects <= 1
postinit'ed(new String[](loadActionFromConfig#1). length)
postinit'ed(new String[](loadActionFromConfig#1)[...])
unanalyzedcall on com.dmdirc.logger.Logger:userError
unanalyzedcall on java.util.List:add
unanalyzedcall on java.util.Map:put
unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
unanalyzedcall on java.lang.Throwable:__curr_excep_obj
unanalyzedcall on com.dmdirc.logger.Logger:assertTrue
unanalyzedcall on getType
unanalyzedcall on getArity
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on java.util.ArrayList
unanalyzedcall on java.util.HashMap
unanalyzedcall on java.util.Map:get
unanalyzedcall on java.lang.Integer:parseInt
unanalyzedcall on com.dmdirc.config.IdentityManager:getAddonI dentity
unanalyzedcall on com.dmdirc.config.Identity:setOption
unanalyzedcall on com.dmdirc.config.prefs.PreferencesType:val ueOf
unanalyzedcall on com.dmdirc.config.prefs.PreferencesSetting
unanalyzedcall on java.lang.String:indexOf
unanalyzedcall on java.lang.String:isEmpty
unanalyzedcall on java.util.List:iterator
unanalyzedcall on java.lang.String:equals
unanalyzedcall on java.lang.Enum:name
unanalyzedcall on getActionComponent
unanalyzedcall on getArgTypes
unanalyzedcall on appliesTo
unanalyzedcall on java.lang.String:split
unanalyzedcall on java.lang.Class:getName
unanalyzedcall on java.lang.IllegalArgumentException
unanalyzedcall on java.lang.Object:equals
unanalyzedcall on java.lang.IllegalArgumentException:getMessa ge
unanalyzedcall on java.util.List:size
unanalyzedcall on java.util.List:get
unanalyzedcall on java.util.Deque:pollFirst
unanalyzedcall on java.lang.Character:instanceof
unanalyzedcall on java.lang.Character:charValue
unanalyzedcall on java.util.Deque:isEmpty
unanalyzedcall on readTerm
unanalyzedcall on java.util.ArrayDeque
unanalyzedcall on java.util.Deque:pollLast
unanalyzedcall on java.util.Deque:addFirst
unanalyzedcall on parseStack
unanalyzedcall on java.util.Deque:poll
unanalyzedcall on java.util.Deque:add
unanalyzedcall on java.util.Deque:size
unanalyzedcall on java.lang.String:length
unanalyzedcall on java.lang.String:charAt
unanalyzedcall on java.lang.String:valueOf
unanalyzedcall on java.lang.Character:valueOf
unanalyzedcall on getMaximumArgument
unanalyzedcall on java.lang.Math:max
unanalyzedcall on com.dmdirc.util.MapList:add
unanalyzedcall on getTriggers
unanalyzedcall on getTabCompleter
unanalyzedcall on getConditions
unanalyzedcall on com.dmdirc.commandparser.CommandManager:get CommandChar
unanalyzedcall on getGroup
unanalyzedcall on add
unanalyzedcall on getName
unanalyzedcall on getGlobalWindow
unanalyzedcall on com.dmdirc.ui.input.TabCompleter:addEntry
test_vectorcom.dmdirc.util.ConfigFile:isFlatDomain(...)@153: {0}, {1}
test_vectorcom.dmdirc.util.ConfigFile:isFlatDomain(...)@162: {0}, {1}
test_vectorcom.dmdirc.util.ConfigFile:isFlatDomain(...)@174: {0}, {1}
test_vectorcom.dmdirc.util.ConfigFile:isFlatDomain(...)@185: {0}, {1}
test_vectorcom.dmdirc.util.ConfigFile:isKeyDomain(...)@179: {0}, {1}
test_vectorjava.util.Iterator:hasNext(...)@166: {0}, {1}
test_vectorjava.util.List:size(...)@185: {-231..0}, {1..232-1}









  method not available - call not analyzedInfocall on bool com.dmdirc.util.ConfigFile:isFlatDomai n(String)










  method not available - call not analyzedInfocall on List com.dmdirc.util.ConfigFile:getFlatDoma in(String)










  method not available - call not analyzedInfocall on bool com.dmdirc.util.ConfigFile:isFlatDomai n(String)










  method not available - call not analyzedInfocall on List com.dmdirc.util.ConfigFile:getFlatDoma in(String)










  method not available - call not analyzedInfocall on List com.dmdirc.util.ConfigFile:getFlatDoma in(String)










Prev Msg Next Msg
  array index out of bounds
Medium Prob.
check that i < this.response.length
  overflow
Low Prob.
check that i in {-231-1..232-2}
Prev Msg Next Msg










  method not available - call not analyzedInfocall on bool com.dmdirc.util.ConfigFile:isFlatDomai n(String)










  method not available - call not analyzedInfocall on List com.dmdirc.util.ConfigFile:getFlatDoma in(String)










Prev Msg Next Msg
  overflow
Low Prob.
check that cond in {-231-1..232-2}
  method not available - call not analyzedInfocall on bool com.dmdirc.util.ConfigFile:isKeyDomain (String)
Prev Msg Next Msg










  method not available - call not analyzedInfocall on Map com.dmdirc.util.ConfigFile:getKeyDomain (String)










  method not available - call not analyzedInfocall on bool com.dmdirc.util.ConfigFile:isFlatDomai n(String)
  method not available - call not analyzedInfocall on List com.dmdirc.util.ConfigFile:getFlatDoma in(String)










  method not available - call not analyzedInfocall on List com.dmdirc.util.ConfigFile:getFlatDoma in(String)











method void checkMetaData()
prethis.config != null
pre(soft) init'ed(this.group)
presumptioncom.dmdirc.util.ConfigFile:getKeyDomain(...)@215 != null
presumptioncom.dmdirc.util.ConfigFile:getKeyDomain(...)@244 != null
presumptionjava.util.Map:get(...)@309 != null
presumptionmyGroup.settings != null
unanalyzedcall on java.util.Map:put
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on java.util.ArrayList
unanalyzedcall on java.util.HashMap
unanalyzedcall on java.util.Map:get
unanalyzedcall on com.dmdirc.config.IdentityManager:getAddonI dentity
unanalyzedcall on com.dmdirc.config.Identity:setOption
test_vectorcom.dmdirc.util.ConfigFile:isKeyDomain(...)@213: {0}, {1}
test_vectorcom.dmdirc.util.ConfigFile:isKeyDomain(...)@242: {0}, {1}
test_vectorjava.util.Map:containsKey(...)@217: {0}, {1}
test_vectorjava.util.Map:containsKey(...)@221: {0}, {1}
test_vectorjava.util.Map:containsKey(...)@225: {0}, {1}
test_vectorjava.util.Map:containsKey(...)@233: {0}, {1}
test_vectorjava.util.Map:containsKey(...)@246: {0}, {1}









  method not available - call not analyzedInfocall on bool com.dmdirc.util.ConfigFile:isKeyDomain (String)










  method not available - call not analyzedInfocall on Map com.dmdirc.util.ConfigFile:getKeyDomain (String)










Prev Msg Next Msg
  overflow
Low Prob.
check that i in {-231-1..232-2}
  method not available - call not analyzedInfocall on bool com.dmdirc.util.ConfigFile:isKeyDomain (String)
Prev Msg Next Msg










  method not available - call not analyzedInfocall on Map com.dmdirc.util.ConfigFile:getKeyDomain (String)










  method not available - call not analyzedInfocall on PreferencesType com.dmdirc.config.prefs. PreferencesType:valueOf(String)
  method not available - call not analyzedInfocall on void com.dmdirc.config.prefs. PreferencesSetting(PreferencesType, String, String, String, String)











method bool loadTriggers(List)
prenewTriggers != null
pre(soft) init'ed(this.group)
pre(soft) init'ed(this.name)
presumptionjava.util.List:size(...)@264 >= 0
presumptionthis.triggers[i].type != null
postinit'ed(return_value)
postthis.triggers == &amp;new ActionType[](loadTriggers #1)
postpossibly_updated(this.triggers[0])
postpossibly_updated(this.triggers[...])
postnew ActionType[](loadTriggers#1) num objects == 1
postthis.triggers.length <= 232-1
postinit'ed(this.triggers[0])
unanalyzedcall on com.dmdirc.logger.Logger:userError
unanalyzedcall on java.lang.String:isEmpty
unanalyzedcall on java.util.List:iterator
unanalyzedcall on java.lang.String:equals
unanalyzedcall on java.lang.Enum:name
test_vectorjava.lang.Object:equals(...)@272: {1}, {0}










method void save()
preinit'ed(this.modified)
pre(soft) init'ed(com.dmdirc.actions.ConditionTree$1__ static_init.new int[](ConditionTree$1__static_init# 1)[...])
pre(soft) com.dmdirc.actions.CoreActionType__static_ init.new CoreActionType(CoreActionType__static_init #72).type != null
pre(soft) init'ed(com/dmdirc/actions/ActionManager. killSwitch)
pre(soft) init'ed(com/dmdirc/ServerManager.me)
pre(soft) init'ed(this.conditionTree)
pre(soft) init'ed(this.conditionTree.argument)
pre(soft) init'ed(this.conditionTree.leftArg)
pre(soft) this.conditionTree.op != null
pre(soft) init'ed(this.conditionTree.rightArg)
pre(soft) this.conditions != null
pre(soft) init'ed(this.config)
pre(soft) init'ed(this.group)
pre(soft) init'ed(this.location)
pre(soft) init'ed(this.name)
pre(soft) init'ed(this.newFormat)
pre(soft) this.response != null
pre(soft) this.response.length <= 232-1
pre(soft) init'ed(this.response[...])
pre(soft) this.triggers != null
pre(soft) this.triggers.length <= 232-1
pre(soft) init'ed(this.triggers[...])
presumptioninit'ed(com.dmdirc.logger.ErrorLevel.HIGH)
presumptioninit'ed(com.dmdirc.logger.ErrorLevel.LOW)
presumptioncom.dmdirc.util.ConfigFile:getFlatDomain(...)@314 != null
presumptioncom.dmdirc.util.ConfigFile:getFlatDomain(...)@319 != null
presumptioncondition.comparison@323 != null
presumptioncondition.component@323 != null
presumptionjava.util.Iterator:next(...)@323 != null
postcom/dmdirc/ServerManager.me == old com/dmdirc/Serve rManager.me
postinit'ed(this.modified)
postnew ArrayList(ServerManager#1) num objects == 0, if init'ed
postnew ServerManager(getServerManager#1) num objects == 0, if init'ed
postnew ServerManager(getServerManager#1).servers == null
unanalyzedcall on com.dmdirc.actions.ConditionTree$OPERATION: ordinal
unanalyzedcall on java.lang.String:valueOf
unanalyzedcall on com.dmdirc.logger.Logger:assertTrue
unanalyzedcall on getType
unanalyzedcall on com.dmdirc.util.MapList:containsKey
unanalyzedcall on com.dmdirc.util.MapList:get
unanalyzedcall on java.util.ArrayList
unanalyzedcall on java.util.ArrayList:iterator
unanalyzedcall on trigger
unanalyzedcall on getArity
unanalyzedcall on com.dmdirc.interfaces.ActionListener:proces sEvent
unanalyzedcall on triggerActions
unanalyzedcall on getArgTypes
unanalyzedcall on java.util.Deque:pollFirst
unanalyzedcall on java.lang.Character:instanceof
unanalyzedcall on java.lang.Character:charValue
unanalyzedcall on java.util.Deque:isEmpty
unanalyzedcall on readTerm
unanalyzedcall on java.util.ArrayDeque
unanalyzedcall on java.util.Deque:pollLast
unanalyzedcall on java.util.Deque:addFirst
unanalyzedcall on parseStack
unanalyzedcall on java.util.Deque:poll
unanalyzedcall on java.util.Deque:add
unanalyzedcall on java.util.Deque:size
unanalyzedcall on java.lang.String:length
unanalyzedcall on java.lang.String:charAt
unanalyzedcall on java.lang.Integer:parseInt
unanalyzedcall on java.lang.Throwable:__curr_excep_obj
unanalyzedcall on java.lang.Character:valueOf
unanalyzedcall on java.util.List:size
unanalyzedcall on java.util.List:iterator
unanalyzedcall on com.dmdirc.config.IdentityManager:getGlobal Config
unanalyzedcall on com.dmdirc.config.ConfigManager:getOptions
unanalyzedcall on java.util.Map:entrySet
unanalyzedcall on java.util.Set:iterator
unanalyzedcall on java.util.Map$Entry:getKey
unanalyzedcall on java.util.Map$Entry:getValue
unanalyzedcall on [Ljava.lang.String;:instanceof
unanalyzedcall on java.lang.String:instanceof
unanalyzedcall on java.lang.String:split
unanalyzedcall on doServerSubstitutions
unanalyzedcall on doComponentSubstitutions
unanalyzedcall on getServer
unanalyzedcall on getState
unanalyzedcall on com.dmdirc.ServerState:equals
unanalyzedcall on getCompatibleComponents
unanalyzedcall on java.lang.Object:toString
unanalyzedcall on get
unanalyzedcall on test
unanalyzedcall on evaluate
unanalyzedcall on getUI
unanalyzedcall on com.dmdirc.ui.interfaces.UIController:getAc tiveWindow
unanalyzedcall on getFrame
unanalyzedcall on com.dmdirc.ui.interfaces.InputWindow:instan ceof
unanalyzedcall on java.util.List:get
unanalyzedcall on com.dmdirc.commandparser.parsers. GlobalCommandParser:getGlobalCommandParser
unanalyzedcall on com.dmdirc.ui.interfaces.InputWindow:getCom mandParser
unanalyzedcall on com.dmdirc.commandparser.parsers. CommandParser:parseCommand
test_vectorthis.modified: {1}, {0}
test_vectorthis.conditionTree: Addr_Set{null}, Inverse{null}
test_vectorthis.config: Addr_Set{null}, Inverse{null}
test_vectorthis.newFormat: Addr_Set{null}, Inverse{null}
test_vectorthis.triggers[...]: Inverse{null}, Addr_Set{null}
test_vectorcom.dmdirc.util.ConfigFile:isKeyDomain(...)@343: {0}, {1}
test_vectorcom.dmdirc.util.ConfigFile:isKeyDomain(...)@347: {0}, {1}
test_vectorcondition.arg@323: {-231..-2, 0..232-1}, {-1}
test_vectorjava.util.Iterator:hasNext(...)@323: {0}, {1}









  method not available - call not analyzedInfocall on void com.dmdirc.util.ConfigFile(String)










  method not available - call not analyzedInfocall on void com.dmdirc.logger.Logger:appError(Erro rLevel, String, Throwable)










  method not available - call not analyzedInfocall on void com.dmdirc.util.ConfigFile:addDomain(S tring, List)










  method not available - call not analyzedInfocall on void com.dmdirc.util.ConfigFile:addDomain(S tring, List)










  method not available - call not analyzedInfocall on void com.dmdirc.util.ConfigFile:addDomain(S tring, List)










Prev Msg Next Msg
  unused assignment in callee
Low Prob.
Unused assignment to (java.lang.String:valueOf(... )._tainted, java.lang.StringBuilder:toString(...)._ tainted, java.lang.StringBuilder:toString(...). _tainted, java.lang.StringBuilder:toString(...). _tainted) in toString
  method not available - call not analyzedInfocall on List com.dmdirc.util.ConfigFile:getFlatDoma in(String)
Prev Msg Next Msg










  method not available - call not analyzedInfocall on void com.dmdirc.util.ConfigFile:addDomain(S tring, List)










  method not available - call not analyzedInfocall on List com.dmdirc.util.ConfigFile:getFlatDoma in(String)










  method not available - call not analyzedInfocall on void com.dmdirc.util.ConfigFile:addDomain(S tring, Map)










Prev Msg Next Msg
  overflow
Low Prob.
check that i in {-231-1..232-2}
Prev Msg Next Msg










  method not available - call not analyzedInfocall on bool com.dmdirc.util.ConfigFile:isKeyDomain (String)










  method not available - call not analyzedInfocall on Map com.dmdirc.util.ConfigFile:getKeyDomain (String)
  method not available - call not analyzedInfocall on void com.dmdirc.util.ConfigFile:addDomain(S tring, Map)










Prev Msg Next Msg
  overflow
Low Prob.
check that i in {-231-1..232-2}
  method not available - call not analyzedInfocall on bool com.dmdirc.util.ConfigFile:isKeyDomain (String)
Prev Msg Next Msg










  method not available - call not analyzedInfocall on Map com.dmdirc.util.ConfigFile:getKeyDomain (String)
  method not available - call not analyzedInfocall on void com.dmdirc.util.ConfigFile:addDomain(S tring, Map)










  method not available - call not analyzedInfocall on void com.dmdirc.util.ConfigFile:write()










  method not available - call not analyzedInfocall on void com.dmdirc.logger.Logger:userError(Err orLevel, String)











method bool readCondition(Map)
predata != null
pre(soft) this.conditions != null
pre(soft) init'ed(this.group)
pre(soft) init'ed(this.name)
pre(soft) this.triggers != null
pre(soft) this.triggers.length >= 1
pre(soft) this.triggers[0] != null
pre(soft) this.triggers[0].type != null
presumptionappliesTo(...)@414 != null
presumptiongetType(...)@385 != getType(...)
presumptionjava.util.Map:get(...)@408 != null
postinit'ed(return_value)
unanalyzedcall on com.dmdirc.logger.Logger:userError
unanalyzedcall on java.lang.Throwable:__curr_excep_obj
unanalyzedcall on com.dmdirc.logger.Logger:assertTrue
unanalyzedcall on getType
unanalyzedcall on java.util.Map:get
unanalyzedcall on java.lang.String:indexOf
unanalyzedcall on java.lang.String:isEmpty
unanalyzedcall on java.util.List:iterator
unanalyzedcall on java.lang.String:equals
unanalyzedcall on java.lang.Enum:name
unanalyzedcall on getActionComponent
unanalyzedcall on getArgTypes
unanalyzedcall on appliesTo
unanalyzedcall on java.util.ArrayList
unanalyzedcall on java.lang.String:split
unanalyzedcall on java.util.List:add
unanalyzedcall on java.lang.Class:getName
unanalyzedcall on java.lang.IllegalArgumentException
unanalyzedcall on java.lang.Object:equals
unanalyzedcall on java.lang.IllegalArgumentException:getMessa ge
test_vectorjava.lang.Integer:parseInt(...)@379: {-231..-2}, {0..232-2}, {-1}
test_vectorjava.lang.Object:equals(...)@414: {0}, {1}
test_vectorjava.lang.Object:equals(...)@414: {1}, {0}
test_vectorjava.util.Map:get(...)@393: Inverse{null}, Addr_Set{null}
test_vectorjava.util.Map:get(...)@422: Inverse{null}, Addr_Set{null}









Prev Msg Next Msg
  unused assignment
Low Prob.
Unused assignment into target
Prev Msg Next Msg










  call too complex - analysis skippedInfocall on int getArity()










  call too complex - analysis skippedInfocall on Class appliesTo()
  call too complex - analysis skippedInfocall on Class getType()











method ActionComponent readComponent(Map, int)
predata != null
pre(soft) arg >= 0
pre(soft) init'ed(this.group)
pre(soft) init'ed(this.name)
pre(soft) this.triggers != null
pre(soft) this.triggers.length >= 1
pre(soft) this.triggers[0] != null
pre(soft) this.triggers[0].type != null
presumptionappliesTo(...)@467 != null
presumptiongetArgTypes(...).length@454 >= 1
presumptionarg < getArgTypes(...).length@454
presumptiongetArgTypes(...).length@467 >= 1
presumptionarg < getArgTypes(...).length@467
presumptiongetArgTypes(...)@454 != null
presumptiongetArgTypes(...)@467 != null
presumptiongetType(...)@454 != getType(...)
presumptiongetType(...)@467 != getType(...)
presumptionjava.util.Map:get(...)@447 != null
postinit'ed(return_value)
postnew ActionComponentChain(readComponent#1) num objects <= 1
postpossibly_updated(new ActionComponentChain(readCompo nent#1).components)
postnew ArrayList(ActionComponentChain#1) num objects <= 1
unanalyzedcall on com.dmdirc.logger.Logger:userError
unanalyzedcall on com.dmdirc.logger.Logger:assertTrue
unanalyzedcall on java.lang.String:isEmpty
unanalyzedcall on java.util.List:iterator
unanalyzedcall on java.lang.String:equals
unanalyzedcall on java.lang.Enum:name
unanalyzedcall on getActionComponent
unanalyzedcall on appliesTo
unanalyzedcall on getType
unanalyzedcall on java.util.ArrayList
unanalyzedcall on java.lang.String:split
unanalyzedcall on java.util.List:add
unanalyzedcall on java.lang.Class:getName
unanalyzedcall on java.lang.IllegalArgumentException
test_vectorjava.lang.Object:equals(...)@467: {1}, {0}
test_vectorjava.lang.String:indexOf(...)@450: {-231. .-2, 0..232-1}, {-1}









  call too complex - analysis skippedInfocall on Class[] getArgTypes()










  call too complex - analysis skippedInfocall on Class appliesTo()
  call too complex - analysis skippedInfocall on Class[] getArgTypes()











method void error(String)
preinit'ed(this.group)
preinit'ed(this.name)
presumptioninit'ed(com.dmdirc.logger.ErrorLevel.LOW)









  method not available - call not analyzedInfocall on void com.dmdirc.logger.Logger:userError(Err orLevel, String)











method void setName(String)
preinit'ed(com/dmdirc/Main.configdir)
preinit'ed(this.location)
preinit'ed(this.group)
presumptioninit'ed(java.io.File.separator)
postcom/dmdirc/Main.configdir == One-of{old com/dmdirc/Main.configdir, &amp;java.lang. StringBuilder:toString(...)}
postcom/dmdirc/Main.configdir != null
postinit'ed(java.lang.StringBuilder:toString(...)._ tainted)
postjava.lang.StringBuilder:toString(...)._tainted == 0
postthis.location == &amp;java.lang.StringBuilder:toStr ing(...)
postthis.modified == 1
postthis.name == newName
postinit'ed(this.name)
unanalyzedcall on getConfigDir
unanalyzedcall on java.lang.System:getProperty
unanalyzedcall on java.lang.String:startsWith
unanalyzedcall on java.lang.System:getenv









  call too complex - analysis skippedInfocall on void save()











method void setGroup(String)
preinit'ed(com/dmdirc/Main.configdir)
preinit'ed(this.location)
preinit'ed(this.name)
presumptioninit'ed(java.io.File.separator)
postcom/dmdirc/Main.configdir == One-of{old com/dmdirc/Main.configdir, &amp;java.lang. StringBuilder:toString(...)}
postcom/dmdirc/Main.configdir != null
postinit'ed(java.lang.StringBuilder:toString(...)._ tainted)
postjava.lang.StringBuilder:toString(...)._tainted == 0
postthis.group == newGroup
postinit'ed(this.group)
postthis.location == &amp;java.lang.StringBuilder:toStr ing(...)
postthis.modified == 1
unanalyzedcall on getConfigDir
unanalyzedcall on java.lang.System:getProperty
unanalyzedcall on java.lang.String:startsWith
unanalyzedcall on java.lang.System:getenv









  call too complex - analysis skippedInfocall on void save()











method void delete()
preinit'ed(com/dmdirc/actions/ActionManager. killSwitch)
preinit'ed(this.group)
preinit'ed(this.location)
preinit'ed(this.name)
pre(soft) com.dmdirc.actions.CoreActionType__static_ init.new CoreActionType(CoreActionType__static_init #73).type != null
pre(soft) init'ed(com/dmdirc/ServerManager.me)
postcom/dmdirc/ServerManager.me == old com/dmdirc/Serve rManager.me
postnew ArrayList(ServerManager#1) num objects == undefined
postnew ArrayList(ServerManager#1) num objects == 0, if init'ed
postnew ServerManager(getServerManager#1) num objects == new ArrayList(ServerManager#1) num objects
postnew ServerManager(getServerManager#1).servers == undefined
postnew ServerManager(getServerManager#1).servers == null
unanalyzedcall on com.dmdirc.actions.ConditionTree$OPERATION: ordinal
unanalyzedcall on com.dmdirc.logger.Logger:assertTrue
unanalyzedcall on getType
unanalyzedcall on com.dmdirc.util.MapList:containsKey
unanalyzedcall on com.dmdirc.util.MapList:get
unanalyzedcall on java.util.ArrayList
unanalyzedcall on java.util.ArrayList:iterator
unanalyzedcall on trigger
unanalyzedcall on getArity
unanalyzedcall on com.dmdirc.interfaces.ActionListener:proces sEvent
unanalyzedcall on triggerActions
unanalyzedcall on getArgTypes
unanalyzedcall on java.util.Deque:pollFirst
unanalyzedcall on java.lang.Character:instanceof
unanalyzedcall on java.lang.Character:charValue
unanalyzedcall on java.util.Deque:isEmpty
unanalyzedcall on readTerm
unanalyzedcall on java.util.ArrayDeque
unanalyzedcall on java.util.Deque:pollLast
unanalyzedcall on java.util.Deque:addFirst
unanalyzedcall on parseStack
unanalyzedcall on java.util.Deque:poll
unanalyzedcall on java.util.Deque:add
unanalyzedcall on java.util.Deque:size
unanalyzedcall on java.lang.String:length
unanalyzedcall on java.lang.String:charAt
unanalyzedcall on java.lang.String:valueOf
unanalyzedcall on java.lang.Integer:parseInt
unanalyzedcall on java.lang.Throwable:__curr_excep_obj
unanalyzedcall on java.lang.Character:valueOf
unanalyzedcall on java.util.List:size
unanalyzedcall on java.util.List:iterator
unanalyzedcall on com.dmdirc.config.IdentityManager:getGlobal Config
unanalyzedcall on com.dmdirc.config.ConfigManager:getOptions
unanalyzedcall on java.util.Map:entrySet
unanalyzedcall on java.util.Set:iterator
unanalyzedcall on java.util.Map$Entry:getKey
unanalyzedcall on java.util.Map$Entry:getValue
unanalyzedcall on [Ljava.lang.String;:instanceof
unanalyzedcall on java.lang.String:instanceof
unanalyzedcall on java.lang.String:split
unanalyzedcall on doServerSubstitutions
unanalyzedcall on doComponentSubstitutions
unanalyzedcall on getServer
unanalyzedcall on getState
unanalyzedcall on com.dmdirc.ServerState:equals
unanalyzedcall on getCompatibleComponents
unanalyzedcall on java.lang.Object:toString
unanalyzedcall on get
unanalyzedcall on test
unanalyzedcall on evaluate
unanalyzedcall on getUI
unanalyzedcall on com.dmdirc.ui.interfaces.UIController:getAc tiveWindow
unanalyzedcall on getFrame
unanalyzedcall on com.dmdirc.ui.interfaces.InputWindow:instan ceof
unanalyzedcall on java.util.List:get
unanalyzedcall on com.dmdirc.commandparser.parsers. GlobalCommandParser:getGlobalCommandParser
unanalyzedcall on com.dmdirc.ui.interfaces.InputWindow:getCom mandParser
unanalyzedcall on com.dmdirc.commandparser.parsers. CommandParser:parseCommand










method String toString()
preinit'ed(this.conditions)
preinit'ed(this.group)
preinit'ed(this.location)
preinit'ed(this.name)
preinit'ed(this.newFormat)
preinit'ed(this.response)
preinit'ed(this.triggers)
postjava.lang.StringBuilder:toString(...)._tainted == this.location._tainted | this.conditions._tainted | this.group._tainted | this.name._tainted | One-of{this.conditions._tainted | this.group._ tainted | this.name._tainted, this.newFormat. _tainted}
postinit'ed(java.lang.StringBuilder:toString(...)._ tainted)
postreturn_value == &amp;java.lang.StringBuilder:toStri ng(...)
unanalyzedcall on java.util.Arrays:toString