method com.dmdirc.config.ConfigManager__static_init
poststats == &new TreeMap(ConfigManager__static_ init#1)
postnew TreeMap(ConfigManager__static_init#1) num objects == 1









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











method void com.dmdirc.config.ConfigManager(String, String, String)
pre(soft) init'ed(com.dmdirc.config.ConfigManager$1__ static_init.new int[](ConfigManager$1__static_init# 1)[...])
postjava.lang.StringBuilder:toString(...)._tainted == network._tainted
postinit'ed(java.lang.StringBuilder:toString(...)._ tainted)
postthis.channel == &java.lang.StringBuilder:toStri ng(...)
postthis.ircd == ircd
postinit'ed(this.ircd)
postthis.listeners == &new MapList(ConfigManager#1)
postthis.network == network
postinit'ed(this.network)
postthis.server == server
postinit'ed(this.server)
postthis.sources == &new ArrayList(getSources#1)
postnew ArrayList(getSources#1) num objects == 1
postnew MapList(ConfigManager#1) num objects == 1
unanalyzedcall on java.util.List:iterator
unanalyzedcall on getTarget
unanalyzedcall on com.dmdirc.config.ConfigTarget$TYPE:ordinal
unanalyzedcall on java.lang.String:equalsIgnoreCase
unanalyzedcall on getSources
unanalyzedcall on addListener
unanalyzedcall on com.dmdirc.config.ConfigSource
unanalyzedcall on com.dmdirc.util.MapList
unanalyzedcall on addConfigManager
unanalyzedcall on java.util.ArrayList
unanalyzedcall on java.lang.Throwable:__curr_excep_obj
unanalyzedcall on java.util.List:add
unanalyzedcall on java.util.Collections:sort
unanalyzedcall on com.dmdirc.logger.Logger:assertTrue










method void com.dmdirc.config.ConfigManager(String, String, String, String)
pre(soft) init'ed(com.dmdirc.config.ConfigManager$1__ static_init.new int[](ConfigManager$1__static_init# 1)[...])
presumptionidentity.listeners@102 != null
presumptionjava.util.Iterator:next(...)@102 != null
postjava.lang.StringBuilder:toString(...)._tainted == channel._tainted | network._tainted
postinit'ed(java.lang.StringBuilder:toString(...)._ tainted)
postthis.channel == &java.lang.StringBuilder:toStri ng(...)
postthis.ircd == ircd
postinit'ed(this.ircd)
postthis.listeners == &new MapList(ConfigManager#1)
postthis.network == network
postinit'ed(this.network)
postthis.server == server
postinit'ed(this.server)
postthis.sources == &new ArrayList(getSources#1)
postnew ArrayList(getSources#1) num objects == 1
postnew MapList(ConfigManager#1) num objects == 1
unanalyzedcall on getTarget
unanalyzedcall on com.dmdirc.config.ConfigTarget$TYPE:ordinal
unanalyzedcall on java.lang.String:equalsIgnoreCase
unanalyzedcall on java.util.ArrayList
unanalyzedcall on java.util.List:iterator
unanalyzedcall on java.lang.Throwable:__curr_excep_obj
unanalyzedcall on java.util.List:add
unanalyzedcall on java.util.Collections:sort
unanalyzedcall on com.dmdirc.logger.Logger:assertTrue
test_vectorjava.util.Iterator:hasNext(...)@102: {0}, {1}










method String getOption(String, String)
prethis.sources != null
presumptionjava.util.Iterator:hasNext(...)@115 == 1
presumptionjava.util.Iterator:next(...)@115 != null
presumptionsource.file@115 != null
postinit'ed(return_value)
unanalyzedcall on java.lang.Throwable:__curr_excep_obj
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on java.util.Map:get
unanalyzedcall on java.lang.Integer:intValue
unanalyzedcall on java.lang.Integer:valueOf
unanalyzedcall on java.util.Map:put
unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain










method bool hasOption(String, String)
prethis.sources != null
presumptionjava.util.Iterator:next(...)@131 != null
presumptionsource.file@131 != null
postinit'ed(return_value)
unanalyzedcall on java.lang.Throwable:__curr_excep_obj
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on java.util.Map:get
unanalyzedcall on java.lang.Integer:intValue
unanalyzedcall on java.lang.Integer:valueOf
unanalyzedcall on java.util.Map:put
unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
test_vectorjava.util.Iterator:hasNext(...)@131: {1}, {0}










method Map getOptions(String)
prethis.sources != null
presumptionjava.util.List:get(...).file@153 != null
presumptionjava.util.List:get(...)@153 != null
presumptionjava.util.List:size(...)@152 >= -231+1
postreturn_value == &new HashMap(getOptions#1)
postnew HashMap(getOptions#1) num objects == 1
unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
unanalyzedcall on java.util.HashMap










method void removeIdentity(Identity)
prethis.sources != null
pre(soft) identity != null
pre(soft) identity.file != null
pre(soft) identity.listeners != null
pre(soft) this.listeners != null
presumptionjava.util.Iterator:next(...)@187 != null
presumptionjava.util.Map:keySet(...)@174 != null
presumptionsetting.length@187 >= 2
unanalyzedcall on java.lang.Throwable:__curr_excep_obj
unanalyzedcall on java.util.ArrayList
unanalyzedcall on com.dmdirc.util.MapList:containsKey
unanalyzedcall on com.dmdirc.util.MapList:get
unanalyzedcall on java.util.List:addAll
unanalyzedcall on java.util.List:iterator
unanalyzedcall on com.dmdirc.interfaces.ConfigChangeListener: configChanged
unanalyzedcall on hasOption
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomains
unanalyzedcall on java.util.Map:keySet
unanalyzedcall on java.util.HashSet
unanalyzedcall on java.util.Map:get
unanalyzedcall on java.util.HashMap
unanalyzedcall on java.lang.String:equals
unanalyzedcall on java.util.List:remove
test_vectorjava.util.Iterator:hasNext(...)@173: {0}, {1}
test_vectorjava.util.Iterator:hasNext(...)@174: {0}, {1}
test_vectorjava.util.Iterator:hasNext(...)@187: {0}, {1}
test_vectorjava.util.List:contains(...)@166: {1}, {0}










method Identity getScope(String, String)
prethis.sources != null
presumptionjava.util.Iterator:next(...)@202 != null
presumptionsource.file@202 != null
postinit'ed(return_value)
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
test_vectorjava.util.Iterator:hasNext(...)@202: {1}, {0}










method com.dmdirc.config.ConfigManager$1__static_init
pre(soft) init'ed(com.dmdirc.config.ConfigTarget$TYPE_ _static_init.new ConfigTarget$TYPE[](ConfigTarget$T YPE__static_init#9)[...])
presumptioncom.dmdirc.config.ConfigTarget_TYPE:ordinal(... )@221 in {0..7}
postnew int[](ConfigManager$1__static_init#1) num objects == 1

method bool identityApplies(Identity)
preidentity != null
preidentity.myTarget != null
preidentity.myTarget.type != null
pre(soft) init'ed(com.dmdirc.config.ConfigManager$1__ static_init.new int[](ConfigManager$1__static_init# 1)[...])
pre(soft) init'ed(identity.myTarget.data)
pre(soft) init'ed(this.channel)
pre(soft) init'ed(this.ircd)
pre(soft) init'ed(this.network)
pre(soft) init'ed(this.server)
presumptioncom.dmdirc.config.ConfigTarget_TYPE:ordinal(... )@221 in {0..7}
postinit'ed(return_value)
test_vectorcom.dmdirc.config.ConfigManager$1__static_init.new int[](ConfigManager$1__static_init#1)[...]: {1}, {2}, {3}, {4}, {5}, {-231..0, 6..232-1}









  method not available - call not analyzedInfocall on int com.dmdirc.config.ConfigTarget$TYPE:ord inal()
  method not available - call not analyzedInfocall on int com.dmdirc.config.ConfigTarget$TYPE:ord inal()











method void checkIdentity(Identity)
prethis.sources != null
pre(soft) init'ed(com.dmdirc.config.ConfigManager$1__ static_init.new int[](ConfigManager$1__static_init# 1)[...])
pre(soft) identity != null
pre(soft) identity.file != null
pre(soft) identity.listeners != null
pre(soft) identity.myTarget != null
pre(soft) init'ed(identity.myTarget.data)
pre(soft) identity.myTarget.type != null
pre(soft) init'ed(this.channel)
pre(soft) init'ed(this.ircd)
pre(soft) this.listeners != null
pre(soft) init'ed(this.network)
pre(soft) init'ed(this.server)
presumptionjava.util.Map:keySet(...)@262 != null
unanalyzedcall on java.lang.Throwable:__curr_excep_obj
unanalyzedcall on java.util.ArrayList
unanalyzedcall on com.dmdirc.util.MapList:containsKey
unanalyzedcall on com.dmdirc.util.MapList:get
unanalyzedcall on java.util.List:addAll
unanalyzedcall on java.util.List:iterator
unanalyzedcall on com.dmdirc.interfaces.ConfigChangeListener: configChanged
unanalyzedcall on hasOption
unanalyzedcall on getTarget
unanalyzedcall on com.dmdirc.config.ConfigTarget$TYPE:ordinal
unanalyzedcall on java.lang.String:equalsIgnoreCase
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomains
unanalyzedcall on java.util.Map:keySet
unanalyzedcall on java.util.HashSet
unanalyzedcall on java.util.Map:get
unanalyzedcall on java.util.List:add
unanalyzedcall on java.util.HashMap
unanalyzedcall on java.lang.String:equals
test_vectorjava.util.Iterator:hasNext(...)@261: {0}, {1}
test_vectorjava.util.Iterator:hasNext(...)@262: {0}, {1}
test_vectorjava.util.List:contains(...)@253: {1}, {0}










method Set getDomains()
prethis.sources != null
presumptionjava.util.Iterator:next(...)@280 != null
presumptionsource.file@280 != null
postreturn_value == &new HashSet(getDomains#1)
postnew HashSet(getDomains#1) num objects == 1
unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomains
unanalyzedcall on java.util.Map:keySet
unanalyzedcall on java.util.HashSet
test_vectorjava.util.Iterator:hasNext(...)@280: {1}, {0}










method List getSources()
postreturn_value == &new ArrayList(getSources#1)
postnew ArrayList(getSources#1) num objects == 1










method void migrate(String, String, String)
pre(soft) init'ed(com.dmdirc.config.ConfigManager$1__ static_init.new int[](ConfigManager$1__static_init# 1)[...])
pre(soft) this.listeners != null
pre(soft) this.sources != null
postjava.lang.StringBuilder:toString(...)._tainted == network._tainted
postinit'ed(java.lang.StringBuilder:toString(...)._ tainted)
postthis.channel == &java.lang.StringBuilder:toStri ng(...)
postthis.ircd == ircd
postinit'ed(this.ircd)
postthis.network == network
postinit'ed(this.network)
postthis.server == server
postinit'ed(this.server)
unanalyzedcall on java.lang.Throwable:__curr_excep_obj
unanalyzedcall on java.util.ArrayList
unanalyzedcall on com.dmdirc.util.MapList:containsKey
unanalyzedcall on com.dmdirc.util.MapList:get
unanalyzedcall on java.util.List:addAll
unanalyzedcall on java.util.List:iterator
unanalyzedcall on com.dmdirc.interfaces.ConfigChangeListener: configChanged
unanalyzedcall on hasOption
unanalyzedcall on getTarget
unanalyzedcall on com.dmdirc.config.ConfigTarget$TYPE:ordinal
unanalyzedcall on java.lang.String:equalsIgnoreCase
unanalyzedcall on java.util.ArrayList:iterator
unanalyzedcall on removeIdentity
unanalyzedcall on getSources
unanalyzedcall on checkIdentity
unanalyzedcall on getDomains
unanalyzedcall on java.util.List:contains
unanalyzedcall on java.util.List:add
unanalyzedcall on addListener
unanalyzedcall on java.util.Collections:sort
unanalyzedcall on java.util.Set:iterator
unanalyzedcall on getOptions
unanalyzedcall on java.util.Map:keySet
unanalyzedcall on equals
unanalyzedcall on removeListener
unanalyzedcall on java.util.List:remove
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomains
unanalyzedcall on java.util.HashSet
unanalyzedcall on java.util.Map:get
unanalyzedcall on java.util.HashMap
unanalyzedcall on java.lang.String:equals










method void migrate(String, String, String, String)
pre(soft) init'ed(com.dmdirc.config.ConfigManager$1__ static_init.new int[](ConfigManager$1__static_init# 1)[...])
pre(soft) this.listeners != null
pre(soft) this.sources != null
presumptionidentity.file@326 != null
presumptionidentity.file@333 != null
presumptionidentity.listeners@326 != null
presumptionidentity.listeners@333 != null
presumptionidentity.myTarget.type@326 != null
presumptionidentity.myTarget.type@333 != null
presumptionidentity.myTarget@326 != null
presumptionidentity.myTarget@333 != null
presumptionjava.util.ArrayList:iterator(...)@326 != null
presumptionjava.util.Iterator:next(...)@326 != null
presumptionjava.util.Iterator:next(...)@333 != null
postinit'ed(java.lang.StringBuilder:toString(...)._ tainted)
postthis.channel == &java.lang.StringBuilder:toStri ng(...)
postthis.ircd == ircd
postinit'ed(this.ircd)
postthis.network == network
postinit'ed(this.network)
postthis.server == server
postinit'ed(this.server)
unanalyzedcall on java.lang.Throwable:__curr_excep_obj
unanalyzedcall on java.util.ArrayList
unanalyzedcall on com.dmdirc.util.MapList:containsKey
unanalyzedcall on com.dmdirc.util.MapList:get
unanalyzedcall on java.util.List:addAll
unanalyzedcall on java.util.List:iterator
unanalyzedcall on com.dmdirc.interfaces.ConfigChangeListener: configChanged
unanalyzedcall on hasOption
unanalyzedcall on getTarget
unanalyzedcall on com.dmdirc.config.ConfigTarget$TYPE:ordinal
unanalyzedcall on java.lang.String:equalsIgnoreCase
unanalyzedcall on getDomains
unanalyzedcall on java.util.List:contains
unanalyzedcall on java.util.List:add
unanalyzedcall on addListener
unanalyzedcall on java.util.Collections:sort
unanalyzedcall on java.util.Set:iterator
unanalyzedcall on getOptions
unanalyzedcall on java.util.Map:keySet
unanalyzedcall on equals
unanalyzedcall on removeListener
unanalyzedcall on java.util.List:remove
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomains
unanalyzedcall on java.util.HashSet
unanalyzedcall on java.util.Map:get
unanalyzedcall on java.util.HashMap
unanalyzedcall on java.lang.String:equals
test_vectorjava.util.Iterator:hasNext(...)@326: {0}, {1}
test_vectorjava.util.Iterator:hasNext(...)@333: {0}, {1}










method void doStats(String, String)
presumptionjava.lang.Integer:intValue(...)@348 <= 232-2
presumptionjava.util.Map:get(...)@348 != null










method Map getStats()
postreturn_value == &amp;new TreeMap(ConfigManager__ static_init#1)










method void addChangeListener(String, ConfigChangeListene r)
prethis.listeners != null
unanalyzedcall on com.dmdirc.util.MapList:add
unanalyzedcall on java.lang.Throwable:__curr_excep_obj










method void addChangeListener(String, String, ConfigChangeListener)
prethis.listeners != null
unanalyzedcall on com.dmdirc.util.MapList:add
unanalyzedcall on java.lang.Throwable:__curr_excep_obj










method void removeListener(ConfigChangeListener)
prethis.listeners != null









  method not available - call not analyzedInfocall on void com.dmdirc.util.MapList:removeFromAll( Object)











method void addListener(String, ConfigChangeListener)
prethis.listeners != null









  method not available - call not analyzedInfocall on void com.dmdirc.util.MapList:add(Object, Object)











method void configChanged(String, String)
prethis.listeners != null
presumptionjava.util.Iterator:next(...)@424 != null
test_vectorcom.dmdirc.util.MapList:containsKey(...)@416: {0}, {1}
test_vectorcom.dmdirc.util.MapList:containsKey(...)@420: {0}, {1}
test_vectorjava.util.Iterator:hasNext(...)@424: {0}, {1}









  method not available - call not analyzedInfocall on bool com.dmdirc.util.MapList:containsKey(Ob ject)










  method not available - call not analyzedInfocall on List com.dmdirc.util.MapList:get(Object)










  method not available - call not analyzedInfocall on bool com.dmdirc.util.MapList:containsKey(Ob ject)










  method not available - call not analyzedInfocall on List com.dmdirc.util.MapList:get(Object)










  method not available - call not analyzedInfocall on void com.dmdirc.interfaces.ConfigChangeList ener:configChanged(String, String)