PluginInfo.java


current inspection = 2009-09-03 21:56:13 (id #1)


Filter Options
Annotation Kind:
pre
presumption
post
unanalyzed
test_vector


  • ResourceManager access$002(PluginInfo, ResourceManager)

  • Kind Annotation Text
    prex0 != null
    postinit'ed(return_value)
    postreturn_value == x1
    postx0.myResourceManager == return_value

  • void activateServices()

  • Kind Annotation Text
    pre(soft) init'ed(this.plugin)
    postjava.lang.StringBuilder:toString(...)._tainted == 0
    postthis.isLoading == old this.isLoading
    postthis.lastError == old this.lastError
    postthis.tempLoaded == old this.tempLoaded

  • void addChild(PluginInfo)

  • Kind Annotation Text
    prethis.children != null

  • bool checkFiles(String)

  • Kind Annotation Text
    predesired != null
    postjava.lang.StringBuilder:toString(...)._tainted == 0
    postreturn_value == 1
    postthis.requirementsError == One-of{old this.requirementsError, &java.lang. StringBuilder:toString(...)}
    test_vectorjava.lang.String:isEmpty(...)@630: {0}, {1}

  • bool checkMaximumVersion(String, int)

  • Kind Annotation Text
    predesired != null
    postinit'ed(return_value)
    postthis.requirementsError == One-of{old this.requirementsError, &"'maxversion' is a non-integer", &"Plugin is for an older version of DMDirc"}
    test_vectoractual: {-231..0}, {2..232-1}
    test_vectorjava.lang.Integer:parseInt(...)@544: {-231..0}, {1..232-2}
    test_vectorjava.lang.String:isEmpty(...)@539: {0}, {1}

  • bool checkMinimumVersion(String, int)

  • Kind Annotation Text
    predesired != null
    postinit'ed(return_value)
    postthis.requirementsError == One-of{old this.requirementsError, &"'minversion' is a non-integer", &"Plugin is for a newer version of DMDirc"}
    test_vectoractual: {-231..0}, {1..232-2}
    test_vectorjava.lang.Integer:parseInt(...)@510: {-231..0}, {2..232-1}
    test_vectorjava.lang.String:isEmpty(...)@505: {0}, {1}

  • bool checkOS(String, String, String, String)

  • Kind Annotation Text
    pre(soft) actualName != null
    predesired != null
    postinit'ed(java.lang.StringBuilder:toString(...)._ tainted)
    postinit'ed(return_value)
    postjava.lang.StringBuilder:toString(...)._tainted == 0
    postthis.requirementsError == One-of{old this.requirementsError, &java.lang. StringBuilder:toString(...)}
    test_vectorjava.lang.String:isEmpty(...)@573: {0}, {1}
    test_vectorjava.lang.String:matches(...)@579: {1}, {0}

  • bool checkPlugins(String)

  • Kind Annotation Text
    predesired != null
    postinit'ed(new PluginManager(getPluginManager#1). knownPlugins)
    postinit'ed(new PluginManager(getPluginManager#1). myDir)
    postinit'ed(new PluginManager(getPluginManager#1). services)
    postjava.lang.StringBuilder:toString(...)._tainted == 0
    postnew HashMap(PluginManager#2) num objects == 0
    postnew Hashtable(PluginManager#1) num objects == 0
    postnew PluginClassLoader(getSubClassLoader#1) num objects == 0
    postnew PluginClassLoader(getSubClassLoader#1). pluginInfo == null
    postnew PluginManager(getPluginManager#1) num objects == 0
    postpossibly_updated(com/dmdirc/plugins/PluginManager. me)
    postreturn_value == 1
    postthis.requirementsError == One-of{old this.requirementsError, &java.lang. StringBuilder:toString(...)}
    unanalyzedcall on addError
    unanalyzedcall on addPlugin
    unanalyzedcall on com.dmdirc.Main:getConfigDir
    unanalyzedcall on com.dmdirc.actions.ActionManager:addListene r
    unanalyzedcall on com.dmdirc.actions.ActionManager:processEve nt
    unanalyzedcall on com.dmdirc.plugins.PluginException:getMessa ge
    unanalyzedcall on com.dmdirc.plugins.PluginInfo
    unanalyzedcall on com.dmdirc.updater.Version
    unanalyzedcall on com.dmdirc.updater.components. PluginComponent
    unanalyzedcall on com.dmdirc.util.ConfigFile:getFlatDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isFlatDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on delPlugin
    unanalyzedcall on delProvider
    unanalyzedcall on getPluginInfoByName
    unanalyzedcall on getPluginManager
    unanalyzedcall on getPossiblePluginInfos
    unanalyzedcall on isUnloadable
    unanalyzedcall on java.io.File
    unanalyzedcall on java.io.File:exists
    unanalyzedcall on java.io.File:getName
    unanalyzedcall on java.io.File:getPath
    unanalyzedcall on java.io.File:isDirectory
    unanalyzedcall on java.io.File:isFile
    unanalyzedcall on java.io.File:listFiles
    unanalyzedcall on java.lang.ClassLoader
    unanalyzedcall on java.lang.Exception
    unanalyzedcall on java.lang.Exception:getMessage
    unanalyzedcall on java.lang.Exception:printStackTrace
    unanalyzedcall on java.lang.String:endsWith
    unanalyzedcall on java.lang.String:equalsIgnoreCase
    unanalyzedcall on java.lang.String:isEmpty
    unanalyzedcall on java.lang.String:length
    unanalyzedcall on java.lang.String:substring
    unanalyzedcall on java.lang.String:toLowerCase
    unanalyzedcall on java.lang.System:getProperty
    unanalyzedcall on java.lang.Throwable:__curr_excep_obj
    unanalyzedcall on java.net.MalformedURLException:getMessage
    unanalyzedcall on java.net.URL
    unanalyzedcall on java.net.URL:getPath
    unanalyzedcall on java.util.ArrayList
    unanalyzedcall on java.util.Collection:iterator
    unanalyzedcall on java.util.HashMap
    unanalyzedcall on java.util.Hashtable
    unanalyzedcall on java.util.LinkedList
    unanalyzedcall on java.util.LinkedList:add
    unanalyzedcall on java.util.LinkedList:isEmpty
    unanalyzedcall on java.util.LinkedList:pop
    unanalyzedcall on java.util.List:clear
    unanalyzedcall on java.util.List:contains
    unanalyzedcall on java.util.List:iterator
    unanalyzedcall on java.util.List:remove
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get
    unanalyzedcall on java.util.Map:put
    unanalyzedcall on java.util.Map:remove
    unanalyzedcall on java.util.Map:values
    unanalyzedcall on onUnload
    unanalyzedcall on unloadPlugin
    test_vectorjava.lang.String:isEmpty(...)@665: {0}, {1}

  • bool checkRequirements(bool)

  • Kind Annotation Text
    preinit'ed(this.metaData)
    presumptionjava.lang.System:getProperty(...)@720 != null
    postinit'ed(return_value)
    postjava.lang.StringBuilder:toString(...)._tainted == 0
    postthis.requirementsError == One-of{old this.requirementsError, &java.lang. StringBuilder:toString(...)}
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on java.io.File
    unanalyzedcall on java.io.File:exists
    unanalyzedcall on java.lang.String:isEmpty
    unanalyzedcall on java.lang.String:matches
    unanalyzedcall on java.lang.String:split
    unanalyzedcall on java.lang.String:toLowerCase
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get
    test_vectorcheckPlugins(...)@720: {0}, {1}
    test_vectorcheckServices(...)@720: {1}, {0}
    test_vectorpreliminary: {1}, {0}
    test_vectorthis.metaData: Inverse{null}, Addr_Set{null}

  • bool checkServices(List)

  • Kind Annotation Text
    pre(soft) init'ed(com/dmdirc/plugins/PluginManager. me)
    presumptiongetPluginManager(...).services != null
    presumptionjava.util.Iterator:next(...)@743 != null
    presumptionjava.util.List:get(...)@755 != null
    postinit'ed(com/dmdirc/plugins/PluginManager.me)
    postinit'ed(new HashMap(PluginManager#2) num objects)
    postinit'ed(new Hashtable(PluginManager#1) num objects)
    postinit'ed(new PluginClassLoader(getSubClassLoader#1) num objects)
    postinit'ed(new PluginManager(getPluginManager#1) num objects)
    postinit'ed(new PluginManager(getPluginManager#1). knownPlugins)
    postinit'ed(new PluginManager(getPluginManager#1). myDir)
    postinit'ed(new PluginManager(getPluginManager#1). services)
    postinit'ed(return_value)
    postjava.lang.StringBuilder:toString(...)._tainted == 0
    postpossibly_updated(new PluginClassLoader(getSubClassL oader#1).pluginInfo)
    unanalyzedcall on activateServices
    unanalyzedcall on addError
    unanalyzedcall on addPlugin
    unanalyzedcall on checkRequirements
    unanalyzedcall on com.dmdirc.Main:getConfigDir
    unanalyzedcall on com.dmdirc.actions.ActionManager:addListene r
    unanalyzedcall on com.dmdirc.actions.ActionManager:processEve nt
    unanalyzedcall on com.dmdirc.plugins.PluginException:getMessa ge
    unanalyzedcall on com.dmdirc.plugins.PluginInfo
    unanalyzedcall on com.dmdirc.updater.components. PluginComponent
    unanalyzedcall on com.dmdirc.util.ConfigFile:getFlatDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isFlatDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on delPlugin
    unanalyzedcall on delProvider
    unanalyzedcall on getMainClass
    unanalyzedcall on getName
    unanalyzedcall on getPluginInfoByName
    unanalyzedcall on getPluginManager
    unanalyzedcall on getPossiblePluginInfos
    unanalyzedcall on isActive
    unanalyzedcall on isUnloadable
    unanalyzedcall on java.io.File
    unanalyzedcall on java.io.File:exists
    unanalyzedcall on java.io.File:getName
    unanalyzedcall on java.io.File:getPath
    unanalyzedcall on java.io.File:isDirectory
    unanalyzedcall on java.io.File:isFile
    unanalyzedcall on java.io.File:listFiles
    unanalyzedcall on java.lang.ClassLoader
    unanalyzedcall on java.lang.Exception
    unanalyzedcall on java.lang.Exception:getMessage
    unanalyzedcall on java.lang.Exception:printStackTrace
    unanalyzedcall on java.lang.String:endsWith
    unanalyzedcall on java.lang.String:equalsIgnoreCase
    unanalyzedcall on java.lang.String:isEmpty
    unanalyzedcall on java.lang.String:length
    unanalyzedcall on java.lang.String:substring
    unanalyzedcall on java.lang.String:toLowerCase
    unanalyzedcall on java.lang.System:getProperty
    unanalyzedcall on java.lang.Throwable:__curr_excep_obj
    unanalyzedcall on java.lang.Throwable:getMessage
    unanalyzedcall on java.net.MalformedURLException:getMessage
    unanalyzedcall on java.net.URL
    unanalyzedcall on java.net.URL:getPath
    unanalyzedcall on java.util.ArrayList
    unanalyzedcall on java.util.Collection:iterator
    unanalyzedcall on java.util.HashMap
    unanalyzedcall on java.util.Hashtable
    unanalyzedcall on java.util.LinkedList
    unanalyzedcall on java.util.LinkedList:add
    unanalyzedcall on java.util.LinkedList:isEmpty
    unanalyzedcall on java.util.LinkedList:pop
    unanalyzedcall on java.util.List:clear
    unanalyzedcall on java.util.List:contains
    unanalyzedcall on java.util.List:iterator
    unanalyzedcall on java.util.List:remove
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get
    unanalyzedcall on java.util.Map:put
    unanalyzedcall on java.util.Map:remove
    unanalyzedcall on java.util.Map:values
    unanalyzedcall on loadClass
    unanalyzedcall on loadPlugin
    unanalyzedcall on loadRequired
    unanalyzedcall on onLoad
    unanalyzedcall on onUnload
    unanalyzedcall on unloadPlugin
    unanalyzedcall on updateProvides
    test_vectorjava.lang.String:equalsIgnoreCase(...)@751: {0}, {1}
    test_vectorjava.util.Iterator:hasNext(...)@743: {0}, {1}
    test_vectorjava.util.List:size(...)@741: {1..232-1}, {-231..0}
    test_vectorservices: Addr_Set{null}, Inverse{null}

  • bool checkUI(String, String)

  • Kind Annotation Text
    pre(soft) actual != null
    predesired != null
    postinit'ed(java.lang.StringBuilder:toString(...)._ tainted)
    postinit'ed(return_value)
    postthis.requirementsError == One-of{old this.requirementsError, &java.lang. StringBuilder:toString(...)}
    test_vectorjava.lang.String:isEmpty(...)@606: {0}, {1}
    test_vectorjava.lang.String:matches(...)@610: {1}, {0}

  • void com.dmdirc.plugins.PluginInfo$1(PluginInfo)

  • Kind Annotation Text

  • com.dmdirc.plugins.PluginInfo$1__static_init

  • Kind Annotation Text

  • void com.dmdirc.plugins.PluginInfo(URL)

  • Kind Annotation Text

  • void com.dmdirc.plugins.PluginInfo(URL, bool)

  • Kind Annotation Text
    preurl != null
    presumptioncom.dmdirc.updater.Version:isValid(...)@153 == 1
    presumptioncom.dmdirc.util.resourcemanager.ResourceManager:get ResourcesStartingWith(...)@174 != null
    presumptioncom.dmdirc.util.resourcemanager.ResourceManager:res ourceExists(...)@169 == 1
    presumptionjava.lang.String:isEmpty(...)@156 == 0
    presumptionjava.lang.String:isEmpty(...)@159 == 0
    presumptionjava.lang.String:isEmpty(...)@162 == 0
    presumptionjava.util.Iterator:next(...)@174 != null
    postinit'ed(this.classloader)
    postinit'ed(this.filename)
    postinit'ed(this.isLoading)
    postinit'ed(this.migrated)
    postinit'ed(this.myResourceManager)
    postinit'ed(this.plugin)
    postinit'ed(this.tempLoaded)
    postjava.lang.StringBuilder:toString(...)._tainted == 0
    postnew ArrayList(PluginInfo#1) num objects == 1
    postnew ArrayList(PluginInfo#2) num objects == 1
    postnew ArrayList(PluginInfo#3) num objects == 1
    postnew ConfigFile(getConfigFile#1) num objects <= 1
    postnew ConfigFile(getMigratedConfigFile#1) num objects <= 1
    postnew HashMap(PluginInfo#4) num objects == 1
    postthis.children == &amp;new ArrayList(PluginInfo#3)
    postthis.exports == &amp;new HashMap(PluginInfo#4)
    postthis.lastError == &amp;"No Error"
    postthis.metaData in Addr_Set{null,&amp;new ConfigFile(getConfigFile#1),&amp;new ConfigFile(getMigratedConfigFile#1),&amp;new ConfigFile(getConfigFile#1),&amp;new ConfigFile(getMigratedConfigFile#1)}
    postthis.myClasses == &amp;new ArrayList(PluginInfo#1)
    postthis.provides == &amp;new ArrayList(PluginInfo#2)
    postthis.requirementsError in Addr_Set{&amp;"", &amp;java.lang.StringBuilder:toString(...), &amp;java.lang.StringBuilder:toString(...)}
    postthis.url != null
    postthis.url == url
    unanalyzedcall on activate
    unanalyzedcall on checkPlugins
    unanalyzedcall on checkServices
    unanalyzedcall on com.dmdirc.config.Identity:setOption
    unanalyzedcall on com.dmdirc.config.IdentityManager:getAddonI dentity
    unanalyzedcall on com.dmdirc.updater.Version
    unanalyzedcall on com.dmdirc.updater.Version:compareTo
    unanalyzedcall on com.dmdirc.util.ConfigFile
    unanalyzedcall on com.dmdirc.util.ConfigFile:addDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:getFlatDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isFlatDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:read
    unanalyzedcall on com.dmdirc.util.resourcemanager. ResourceManager:getResourceInputStream
    unanalyzedcall on com.dmdirc.util.resourcemanager. ResourceManager:getResourceManager
    unanalyzedcall on com.dmdirc.util.resourcemanager. ResourceManager:resourceExists
    unanalyzedcall on getPluginInfoByName
    unanalyzedcall on getPluginManager
    unanalyzedcall on getService
    unanalyzedcall on getServicesByType
    unanalyzedcall on isActive
    unanalyzedcall on java.io.File
    unanalyzedcall on java.io.File:exists
    unanalyzedcall on java.io.IOException
    unanalyzedcall on java.lang.Exception
    unanalyzedcall on java.lang.Object:toString
    unanalyzedcall on java.lang.String:equalsIgnoreCase
    unanalyzedcall on java.lang.String:isEmpty
    unanalyzedcall on java.lang.String:matches
    unanalyzedcall on java.lang.String:split
    unanalyzedcall on java.lang.String:startsWith
    unanalyzedcall on java.lang.String:substring
    unanalyzedcall on java.lang.String:toLowerCase
    unanalyzedcall on java.lang.System:getProperty
    unanalyzedcall on java.lang.Throwable:__curr_excep_obj
    unanalyzedcall on java.net.URL:getPath
    unanalyzedcall on java.util.ArrayList
    unanalyzedcall on java.util.HashMap
    unanalyzedcall on java.util.List:add
    unanalyzedcall on java.util.List:contains
    unanalyzedcall on java.util.List:get
    unanalyzedcall on java.util.List:iterator
    unanalyzedcall on java.util.List:size
    unanalyzedcall on java.util.Map$Entry:getKey
    unanalyzedcall on java.util.Map$Entry:getValue
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:entrySet
    unanalyzedcall on java.util.Map:get
    unanalyzedcall on java.util.Map:put
    unanalyzedcall on java.util.Properties
    unanalyzedcall on java.util.Properties:containsKey
    unanalyzedcall on java.util.Properties:entrySet
    unanalyzedcall on java.util.Properties:getProperty
    unanalyzedcall on java.util.Properties:load
    unanalyzedcall on java.util.Set:iterator
    unanalyzedcall on java.util.Timer
    unanalyzedcall on java.util.Timer:schedule
    unanalyzedcall on java.util.TimerTask
    unanalyzedcall on java.util.logging.Logger:finer
    test_vectorjava.io.File:delete(...)@118: {0}, {1}
    test_vectorjava.io.File:exists(...)@118: {0}, {1}
    test_vectorjava.lang.String:matches(...)@176: {0}, {1}
    test_vectorjava.util.Iterator:hasNext(...)@174: {0}, {1}
    test_vectorload: {1}, {0}

  • com.dmdirc.plugins.PluginInfo__static_init

  • Kind Annotation Text
    postinit'ed(LOGGER)

  • int compareTo(PluginInfo)

  • Kind Annotation Text
    preinit'ed(o.metaData)
    preinit'ed(this.metaData)
    preo != null
    postinit'ed(return_value)
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on getNiceName
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get

  • int compareTo(Object)

  • Kind Annotation Text
    preinit'ed(this.metaData)
    preinit'ed(x0.metaData)
    prex0 != null
    postinit'ed(return_value)
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on getNiceName
    unanalyzedcall on java.lang.String:compareTo
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get
    unanalyzedcall on toString

  • void delChild(PluginInfo)

  • Kind Annotation Text
    prethis.children != null

  • int getAddonID()

  • Kind Annotation Text
    pre(soft) init'ed(this.metaData)
    postinit'ed(return_value)
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get

  • String getAuthor()

  • Kind Annotation Text
    preinit'ed(this.metaData)
    postinit'ed(return_value)
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get

  • List getClassList()

  • Kind Annotation Text
    preinit'ed(this.myClasses)
    postinit'ed(return_value)
    postreturn_value == this.myClasses

  • ConfigFile getConfigFile()

  • Kind Annotation Text
    pre(soft) this.url != null
    preinit'ed(this.myResourceManager)
    presumptioncom.dmdirc.util.resourcemanager.ResourceManager:res ourceExists(...)@306 == 1
    postnew ConfigFile(getConfigFile#1) num objects <= 1
    postnew ConfigFile(getMigratedConfigFile#1) num objects <= 1
    postpossibly_updated(this.migrated)
    postreturn_value in Addr_Set{null,&amp;new ConfigFile(getMigratedConfigFile#1),&amp;new ConfigFile(getConfigFile#1),&amp;new ConfigFile(getMigratedConfigFile#1)}
    postthis.myResourceManager != null
    unanalyzedcall on com.dmdirc.util.ConfigFile
    unanalyzedcall on com.dmdirc.util.ConfigFile:addDomain
    unanalyzedcall on com.dmdirc.util.resourcemanager. ResourceManager:getResourceInputStream
    unanalyzedcall on com.dmdirc.util.resourcemanager. ResourceManager:getResourceManager
    unanalyzedcall on java.lang.Object:toString
    unanalyzedcall on java.lang.String:startsWith
    unanalyzedcall on java.lang.String:substring
    unanalyzedcall on java.lang.String:toLowerCase
    unanalyzedcall on java.net.URL:getPath
    unanalyzedcall on java.util.ArrayList
    unanalyzedcall on java.util.HashMap
    unanalyzedcall on java.util.List:add
    unanalyzedcall on java.util.Map$Entry:getKey
    unanalyzedcall on java.util.Map$Entry:getValue
    unanalyzedcall on java.util.Map:put
    unanalyzedcall on java.util.Properties
    unanalyzedcall on java.util.Properties:containsKey
    unanalyzedcall on java.util.Properties:entrySet
    unanalyzedcall on java.util.Properties:getProperty
    unanalyzedcall on java.util.Properties:load
    unanalyzedcall on java.util.Set:iterator
    unanalyzedcall on java.util.Timer
    unanalyzedcall on java.util.Timer:schedule
    unanalyzedcall on java.util.TimerTask
    test_vectorcom.dmdirc.util.resourcemanager.ResourceManager:res ourceExists(...)@301: {0}, {1}
    test_vectorcom.dmdirc.util.resourcemanager.ResourceManager:res ourceExists(...)@312: {0}, {1}

  • void getDefaults()

  • Kind Annotation Text
    preinit'ed(this.metaData)
    presumptioncom.dmdirc.config.IdentityManager:getAddonIdentity( ...)@325 != null
    presumptioncom.dmdirc.util.ConfigFile:getKeyDomain(...)@331 != null
    presumptioncom.dmdirc.util.ConfigFile:getKeyDomain(...)@342 != null
    presumptioncom.dmdirc.util.ConfigFile:getKeyDomain(...)@353 != null
    presumptionjava.util.Iterator:next(...)@333 != null
    presumptionjava.util.Iterator:next(...)@344 != null
    presumptionjava.util.Iterator:next(...)@355 != null
    presumptionjava.util.Map:entrySet(...)@333 != null
    presumptionjava.util.Map:entrySet(...)@344 != null
    presumptionjava.util.Map:entrySet(...)@355 != null
    presumptionjava.util.Map_Entry:getKey(...)@334 != null
    presumptionjava.util.Map_Entry:getKey(...)@345 != null
    presumptionjava.util.Map_Entry:getKey(...)@356 != null
    presumptionjava.util.Map_Entry:getValue(...)@335 != null
    presumptionjava.util.Map_Entry:getValue(...)@346 != null
    presumptionjava.util.Map_Entry:getValue(...)@357 != null
    presumptionjava.util.logging.Logger:getLogger(...)@52 != null
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get
    test_vectorcom.dmdirc.util.ConfigFile:isKeyDomain(...)@330: {0}, {1}
    test_vectorcom.dmdirc.util.ConfigFile:isKeyDomain(...)@341: {0}, {1}
    test_vectorcom.dmdirc.util.ConfigFile:isKeyDomain(...)@352: {0}, {1}
    test_vectorjava.util.Iterator:hasNext(...)@333: {0}, {1}
    test_vectorjava.util.Iterator:hasNext(...)@344: {0}, {1}
    test_vectorjava.util.Iterator:hasNext(...)@355: {0}, {1}
    test_vectorthis.metaData: Inverse{null}, Addr_Set{null}

  • String getDescription()

  • Kind Annotation Text
    preinit'ed(this.metaData)
    postinit'ed(return_value)
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get

  • ExportedService getExportedService(String)

  • Kind Annotation Text
    pre(soft) com/dmdirc/plugins/GlobalClassLoader.me != null
    prethis.exports != null
    presumptioncom/dmdirc/plugins/GlobalClassLoader.me. resourcesList@1446 != null
    presumptionjava.util.Map:get(...).className@1446 != null
    presumptionjava.util.Map:get(...).pluginInfo...url@1446 != null
    presumptionjava.util.Map:get(...).pluginInfo.classloader. pluginInfo@1446 != null
    presumptionjava.util.Map:get(...).pluginInfo.classloader@1446 != null
    presumptionjava.util.Map:get(...).pluginInfo@1446 != null
    presumptionjava.util.Map:get(...)@1446 != null
    postinit'ed(com/dmdirc/plugins/GlobalClassLoader.me)
    postinit'ed(new ExportedService(getExportedService#1). myMethod)
    postinit'ed(new ExportedService(getExportedService#1*). myMethod)
    postinit'ed(new ExportedService(getExportedService#1*). myObject)
    postinit'ed(new ExportedService(getExportedService#2*). myMethod)
    postinit'ed(new GlobalClassLoader(getGlobalClassLoader# 1).resourcesList)
    postnew ExportedService(getExportedService#1) num objects <= 1
    postnew ExportedService(getExportedService#1).myObject == null
    postnew ExportedService(getExportedService#1*) num objects <= 1
    postnew ExportedService(getExportedService#2*) num objects <= 1
    postnew ExportedService(getExportedService#2*). myObject == null
    postnew GlobalClassLoader(getGlobalClassLoader#1) num objects == 0
    postnew HashMap(GlobalClassLoader#1) num objects == 0
    postreturn_value in Addr_Set{&amp;new ExportedService(g etExportedService#1),&amp;new ExportedService(getEx portedService#1*),&amp;new ExportedService(getExpor tedService#2*)}
    unanalyzedcall on com.dmdirc.plugins.GlobalClassLoader:define Class
    unanalyzedcall on com.dmdirc.plugins.GlobalClassLoader:findLo adedClass
    unanalyzedcall on com.dmdirc.plugins.PluginClassLoader:define Class
    unanalyzedcall on com.dmdirc.plugins.PluginClassLoader:findLo adedClass
    unanalyzedcall on com.dmdirc.plugins.PluginClassLoader:getPar ent
    unanalyzedcall on com.dmdirc.plugins.PluginClassLoader:resolv eClass
    unanalyzedcall on com.dmdirc.util.ConfigFile:getFlatDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isFlatDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on com.dmdirc.util.resourcemanager. ResourceManager:getResourceBytes
    unanalyzedcall on com.dmdirc.util.resourcemanager. ResourceManager:getResourceManager
    unanalyzedcall on com.dmdirc.util.resourcemanager. ResourceManager:getResourcesStartingWith
    unanalyzedcall on com.dmdirc.util.resourcemanager. ResourceManager:resourceExists
    unanalyzedcall on getClassList
    unanalyzedcall on getFullFilename
    unanalyzedcall on getMainClass
    unanalyzedcall on getName
    unanalyzedcall on getPersistentClasses
    unanalyzedcall on getPluginClassLoader
    unanalyzedcall on getPluginInfos
    unanalyzedcall on getPluginManager
    unanalyzedcall on getPluginObject
    unanalyzedcall on getResourceManager
    unanalyzedcall on isPersistent
    unanalyzedcall on java.lang.Class:getDeclaredMethods
    unanalyzedcall on java.lang.ClassLoader
    unanalyzedcall on java.lang.ClassLoader:loadClass
    unanalyzedcall on java.lang.ClassNotFoundException
    unanalyzedcall on java.lang.NoClassDefFoundError:getMessage
    unanalyzedcall on java.lang.String:equals
    unanalyzedcall on java.lang.String:matches
    unanalyzedcall on java.lang.String:replace
    unanalyzedcall on java.lang.String:replaceAll
    unanalyzedcall on java.lang.Throwable:__curr_excep_obj
    unanalyzedcall on java.lang.reflect.Method:getName
    unanalyzedcall on java.net.URL:getPath
    unanalyzedcall on java.util.ArrayList
    unanalyzedcall on java.util.Collection:iterator
    unanalyzedcall on java.util.HashMap
    unanalyzedcall on java.util.List:add
    unanalyzedcall on java.util.List:contains
    unanalyzedcall on java.util.List:iterator
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get
    unanalyzedcall on java.util.Map:put
    unanalyzedcall on java.util.Timer
    unanalyzedcall on java.util.Timer:schedule
    unanalyzedcall on java.util.TimerTask
    unanalyzedcall on loadClass
    test_vectorjava.util.Map:containsKey(...)@1445: {0}, {1}

  • String getFilename()

  • Kind Annotation Text
    postinit'ed(return_value)
    postreturn_value == this.filename

  • String getFriendlyVersion()

  • Kind Annotation Text
    preinit'ed(this.metaData)
    postinit'ed(return_value)
    postjava.lang.String:valueOf(...)._tainted == 0
    unanalyzedcall on com.dmdirc.updater.Version
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get

  • String getFullFilename()

  • Kind Annotation Text
    prethis.url != null
    postinit'ed(return_value)

  • String getKeyValue(String, String, String)

  • Kind Annotation Text
    preinit'ed(this.metaData)
    presumptioncom.dmdirc.util.ConfigFile:getKeyDomain(...)@1105 != null
    postinit'ed(return_value)
    test_vectorcom.dmdirc.util.ConfigFile:isKeyDomain(...)@1104: {0}, {1}
    test_vectorthis.metaData: Addr_Set{null}, Inverse{null}

  • String getLastError()

  • Kind Annotation Text
    preinit'ed(this.lastError)
    postinit'ed(return_value)
    postreturn_value == this.lastError

  • String getMainClass()

  • Kind Annotation Text
    preinit'ed(this.metaData)
    postinit'ed(return_value)
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get

  • String getMaxVersion()

  • Kind Annotation Text
    preinit'ed(this.metaData)
    postreturn_value == &amp;""
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get
    test_vectorjava.lang.String:isEmpty(...)@1302: {1}, {0}

  • String getMetaInfo(String)

  • Kind Annotation Text
    preinit'ed(this.metaData)
    postinit'ed(return_value)
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get

  • String getMetaInfo(String, String)

  • Kind Annotation Text
    preinit'ed(this.metaData)
    postinit'ed(return_value)
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get

  • String getMetaInfo(Properties, String[], String)

  • Kind Annotation Text
    pre(soft) init'ed(metainfo[...])
    pre(soft) properties != null
    premetainfo != null
    premetainfo.length <= 232-1
    postinit'ed(return_value)
    test_vectorjava.util.Properties:getProperty(...)@204: Addr_Set{null}, Inverse{null}

  • String getMetaInfo(String[])

  • Kind Annotation Text
    pre(soft) init'ed(metainfo[...])
    pre(soft) init'ed(this.metaData)
    premetainfo != null
    premetainfo.length <= 232-1
    postinit'ed(return_value)
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get

  • String getMetaInfo(String[], String)

  • Kind Annotation Text
    pre(soft) init'ed(metainfo[...])
    pre(soft) init'ed(this.metaData)
    premetainfo != null
    premetainfo.length <= 232-1
    postinit'ed(return_value)
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get

  • ConfigFile getMigratedConfigFile()

  • Kind Annotation Text
    pre(soft) this.url != null
    preinit'ed(this.myResourceManager)
    presumptionjava.util.Iterator:next(...)@266 != null
    presumptionjava.util.Map_Entry:getKey(...)@267 != null
    presumptionjava.util.Map_Entry:getValue(...)@268 != null
    presumptionjava.util.Properties:entrySet(...)@266 != null
    postnew ConfigFile(getMigratedConfigFile#1) num objects == 1
    postreturn_value == &amp;new ConfigFile(getMigratedConf igFile#1)
    postthis.migrated == 1
    postthis.myResourceManager != null
    unanalyzedcall on com.dmdirc.util.resourcemanager. ResourceManager:getResourceManager
    unanalyzedcall on java.net.URL:getPath
    unanalyzedcall on java.util.Properties:getProperty
    unanalyzedcall on java.util.Timer
    unanalyzedcall on java.util.Timer:schedule
    unanalyzedcall on java.util.TimerTask
    test_vectorjava.lang.String:startsWith(...)@275: {0}, {1}
    test_vectorjava.util.Iterator:hasNext(...)@266: {0}, {1}
    test_vectorjava.util.Properties:containsKey(...)@238: {0}, {1}
    test_vectorjava.util.Properties:containsKey(...)@241: {0}, {1}
    test_vectorjava.util.Properties:containsKey(...)@252: {0}, {1}
    test_vectorjava.util.Properties:containsKey(...)@257: {0}, {1}
    test_vectorjava.util.Properties:containsKey(...)@261: {0}, {1}

  • String getMinVersion()

  • Kind Annotation Text
    preinit'ed(this.metaData)
    postreturn_value in Addr_Set{null,&amp;""}
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get
    test_vectorjava.lang.String:isEmpty(...)@1287: {1}, {0}

  • String getName()

  • Kind Annotation Text
    preinit'ed(this.metaData)
    postinit'ed(return_value)
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get

  • String getNiceName()

  • Kind Annotation Text
    preinit'ed(this.metaData)
    postinit'ed(return_value)
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get

  • List getPersistentClasses()

  • Kind Annotation Text
    pre(soft) this.url != null
    preinit'ed(this.metaData)
    presumptioncom.dmdirc.util.resourcemanager.ResourceManager:get ResourcesStartingWith(...)@1208 != null
    presumptionjava.util.Iterator:next(...)@1208 != null
    postinit'ed(return_value)
    postnew ArrayList(getPersistentClasses#1) num objects == 1
    postpossibly_updated(this.myResourceManager)
    unanalyzedcall on com.dmdirc.util.ConfigFile:getFlatDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isFlatDomain
    unanalyzedcall on com.dmdirc.util.resourcemanager. ResourceManager:getResourceManager
    unanalyzedcall on java.net.URL:getPath
    unanalyzedcall on java.util.List:contains
    unanalyzedcall on java.util.Timer
    unanalyzedcall on java.util.Timer:schedule
    unanalyzedcall on java.util.TimerTask
    test_vectorcom.dmdirc.util.ConfigFile:isFlatDomain(...)@1216: {0}, {1}
    test_vectorjava.lang.String:matches(...)@1209: {0}, {1}
    test_vectorthis.metaData: Addr_Set{null}, Inverse{null}

  • Plugin getPlugin()

  • Kind Annotation Text
    preinit'ed(this.plugin)
    postinit'ed(return_value)
    postreturn_value == this.plugin

  • PluginClassLoader getPluginClassLoader()

  • Kind Annotation Text
    preinit'ed(this.classloader)
    postinit'ed(return_value)
    postreturn_value == this.classloader

  • Plugin getPluginObject()

  • Kind Annotation Text
    preinit'ed(this.plugin)
    postinit'ed(return_value)
    postreturn_value == this.plugin

  • String getProviderName()

  • Kind Annotation Text
    preinit'ed(this.metaData)
    postinit'ed(java.lang.StringBuilder:toString(...)._ tainted)
    postreturn_value == &amp;java.lang.StringBuilder:toStri ng(...)
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get

  • String getRelativeFilename()

  • Kind Annotation Text
    preinit'ed(com/dmdirc/plugins/PluginManager.me)
    prethis.url != null
    presumptiongetPluginManager(...).myDir != null
    presumptiongetPluginManager(...)@1262 init'ed
    presumptionjava.net.URL:getPath(...)@1252 != null
    postcom/dmdirc/plugins/PluginManager.me != null
    postcom/dmdirc/plugins/PluginManager.me == One-of{old com/dmdirc/plugins/PluginManager.me, &amp;new PluginManager(getPluginManager#1)}
    postinit'ed(return_value)
    postjava.lang.String:substring(...)._tainted == 0
    postjava.lang.StringBuilder:toString(...)._tainted == 0
    postnew HashMap(PluginManager#2) num objects <= 1
    postnew Hashtable(PluginManager#1) num objects == new HashMap(PluginManager#2) num objects
    postnew PluginClassLoader(getSubClassLoader#1) num objects == 0, if init'ed
    postnew PluginClassLoader(getSubClassLoader#1) num objects == undefined
    postnew PluginClassLoader(getSubClassLoader#1). pluginInfo == null
    postnew PluginClassLoader(getSubClassLoader#1). pluginInfo == undefined
    postnew PluginManager(getPluginManager#1) num objects == new HashMap(PluginManager#2) num objects
    postnew PluginManager(getPluginManager#1).knownPlugins == &amp;new Hashtable(PluginManager#1)
    postnew PluginManager(getPluginManager#1).myDir == &amp;java.lang.StringBuilder:toString(...)
    postnew PluginManager(getPluginManager#1).services == &amp;new HashMap(PluginManager#2)
    unanalyzedcall on addError
    unanalyzedcall on addPlugin
    unanalyzedcall on com.dmdirc.Main:getConfigDir
    unanalyzedcall on com.dmdirc.actions.ActionManager:addListene r
    unanalyzedcall on com.dmdirc.actions.ActionManager:processEve nt
    unanalyzedcall on com.dmdirc.plugins.PluginException:getMessa ge
    unanalyzedcall on com.dmdirc.plugins.PluginInfo
    unanalyzedcall on com.dmdirc.updater.components. PluginComponent
    unanalyzedcall on com.dmdirc.util.ConfigFile:getFlatDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isFlatDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on delPlugin
    unanalyzedcall on delProvider
    unanalyzedcall on getPluginInfoByName
    unanalyzedcall on getPluginManager
    unanalyzedcall on getPossiblePluginInfos
    unanalyzedcall on isUnloadable
    unanalyzedcall on java.io.File
    unanalyzedcall on java.io.File:exists
    unanalyzedcall on java.io.File:getName
    unanalyzedcall on java.io.File:getPath
    unanalyzedcall on java.io.File:isDirectory
    unanalyzedcall on java.io.File:isFile
    unanalyzedcall on java.io.File:listFiles
    unanalyzedcall on java.lang.ClassLoader
    unanalyzedcall on java.lang.Exception
    unanalyzedcall on java.lang.Exception:getMessage
    unanalyzedcall on java.lang.Exception:printStackTrace
    unanalyzedcall on java.lang.String:endsWith
    unanalyzedcall on java.lang.String:equalsIgnoreCase
    unanalyzedcall on java.lang.String:isEmpty
    unanalyzedcall on java.lang.String:length
    unanalyzedcall on java.lang.String:substring
    unanalyzedcall on java.lang.String:toLowerCase
    unanalyzedcall on java.lang.System:getProperty
    unanalyzedcall on java.lang.Throwable:__curr_excep_obj
    unanalyzedcall on java.net.MalformedURLException:getMessage
    unanalyzedcall on java.net.URL
    unanalyzedcall on java.net.URL:getPath
    unanalyzedcall on java.util.ArrayList
    unanalyzedcall on java.util.Collection:iterator
    unanalyzedcall on java.util.HashMap
    unanalyzedcall on java.util.Hashtable
    unanalyzedcall on java.util.LinkedList
    unanalyzedcall on java.util.LinkedList:add
    unanalyzedcall on java.util.LinkedList:isEmpty
    unanalyzedcall on java.util.LinkedList:pop
    unanalyzedcall on java.util.List:clear
    unanalyzedcall on java.util.List:contains
    unanalyzedcall on java.util.List:iterator
    unanalyzedcall on java.util.List:remove
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get
    unanalyzedcall on java.util.Map:put
    unanalyzedcall on java.util.Map:remove
    unanalyzedcall on java.util.Map:values
    unanalyzedcall on onUnload
    unanalyzedcall on unloadPlugin
    test_vectorjava.lang.String:startsWith(...)@1263: {0}, {1}

  • String getRequirementsError()

  • Kind Annotation Text
    preinit'ed(this.requirementsError)
    postinit'ed(return_value)
    postreturn_value == this.requirementsError

  • ResourceManager getResourceManager()

  • Kind Annotation Text
    pre(soft) this.url != null
    preinit'ed(this.myResourceManager)
    postinit'ed(return_value)
    postthis.myResourceManager == return_value
    unanalyzedcall on com.dmdirc.util.resourcemanager. ResourceManager:getResourceManager
    unanalyzedcall on java.net.URL:getPath
    unanalyzedcall on java.util.Timer
    unanalyzedcall on java.util.Timer:schedule
    unanalyzedcall on java.util.TimerTask

  • ResourceManager getResourceManager(bool)

  • Kind Annotation Text
    pre(soft) this.url != null
    preinit'ed(this.myResourceManager)
    postinit'ed(return_value)
    postthis.myResourceManager == return_value
    unanalyzedcall on java.net.URL:getPath
    unanalyzedcall on java.util.TimerTask
    test_vectorforceNew: {0}, {1}

  • List getServices()

  • Kind Annotation Text
    postnew ArrayList(getServices#1) num objects == 1
    postreturn_value == &amp;new ArrayList(getServices#1)

  • Version getVersion()

  • Kind Annotation Text
    preinit'ed(this.metaData)
    postnew Version(getVersion#1) num objects == 1
    postreturn_value == &amp;new Version(getVersion#1)
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get

  • bool hasPersistent()

  • Kind Annotation Text
    preinit'ed(this.metaData)
    presumptioncom.dmdirc.util.ConfigFile:getFlatDomain(...)@1189 != null
    postinit'ed(return_value)
    test_vectorcom.dmdirc.util.ConfigFile:isFlatDomain(...)@1188: {0}, {1}
    test_vectorthis.metaData: Addr_Set{null}, Inverse{null}

  • bool isActive()

  • Kind Annotation Text
    pre(soft) init'ed(this.tempLoaded)
    preinit'ed(this.plugin)
    postinit'ed(return_value)

  • bool isLoaded()

  • Kind Annotation Text
    pre(soft) init'ed(this.tempLoaded)
    preinit'ed(this.plugin)
    postinit'ed(return_value)

  • bool isMigrated()

  • Kind Annotation Text
    preinit'ed(this.migrated)
    postinit'ed(return_value)
    postreturn_value == this.migrated

  • bool isPersistent()

  • Kind Annotation Text
    preinit'ed(this.metaData)
    presumptioncom.dmdirc.util.ConfigFile:getFlatDomain(...)@1175 != null
    postinit'ed(return_value)
    test_vectorcom.dmdirc.util.ConfigFile:isFlatDomain(...)@1174: {0}, {1}
    test_vectorthis.metaData: Addr_Set{null}, Inverse{null}

  • bool isPersistent(String)

  • Kind Annotation Text
    preinit'ed(this.metaData)
    presumptioncom.dmdirc.util.ConfigFile:getFlatDomain(...)@1233 != null
    postinit'ed(return_value)
    unanalyzedcall on com.dmdirc.util.ConfigFile:getFlatDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isFlatDomain
    unanalyzedcall on java.util.List:contains
    test_vectorcom.dmdirc.util.ConfigFile:isFlatDomain(...)@1232: {0}, {1}
    test_vectorthis.metaData: Addr_Set{null}, Inverse{null}

  • bool isTempLoaded()

  • Kind Annotation Text
    pre(soft) init'ed(this.tempLoaded)
    preinit'ed(this.plugin)
    postinit'ed(return_value)

  • bool isUnloadable()

  • Kind Annotation Text
    pre(soft) init'ed(this.plugin)
    pre(soft) init'ed(this.tempLoaded)
    preinit'ed(this.metaData)
    postinit'ed(return_value)
    unanalyzedcall on com.dmdirc.util.ConfigFile:getFlatDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isFlatDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on java.util.List:contains
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get
    test_vector!(this.plugin == null) &amp; this.tempLoaded != 0: {0}, {1}
    test_vector!(this.plugin == null) &amp; this.tempLoaded == 0: {1}, {0}
    test_vector(!(this.plugin == null) &amp; this.tempLoaded != 0) | this.plugin == null: {0}, {1}
    test_vectorthis.tempLoaded: {0}, {1}

  • bool loadAll()

  • Kind Annotation Text
    preinit'ed(this.metaData)
    postinit'ed(return_value)
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get

  • void loadClass(String)

  • Kind Annotation Text
    pre(soft) classname != null
    pre(soft) init'ed(com/dmdirc/plugins/GlobalClassLoader .me)
    pre(soft) init'ed(this.classloader)
    pre(soft) init'ed(this.metaData)
    pre(soft) init'ed(this.tempLoaded)
    pre(soft) this.children != null
    pre(soft) this.classloader.pluginInfo != null
    pre(soft) this.provides != null
    presumptionjava.util.logging.Logger:getLogger(...)@52 != null
    postinit'ed(com/dmdirc/plugins/GlobalClassLoader.me)
    postinit'ed(java.lang.StringBuilder:toString(...)._ tainted)
    postinit'ed(new GlobalClassLoader(getGlobalClassLoader# 1).resourcesList)
    postinit'ed(new PluginClassLoader(getSubClassLoader#1) num objects)
    postinit'ed(this.plugin.domainSet)
    postinit'ed(this.plugin.myDomain)
    postinit'ed(this.tempLoaded)
    postjava.lang.StringBuilder:toString(...)._tainted == 0
    postnew GlobalClassLoader(getGlobalClassLoader#1) num objects <= 1
    postnew GlobalClassLoader(getGlobalClassLoader#1) num objects == 0
    postnew HashMap(GlobalClassLoader#1) num objects <= 1
    postnew HashMap(GlobalClassLoader#1) num objects == 0
    postpossibly_updated(com.dmdirc.logger.ErrorManager__ static_init.new ErrorManager(ErrorManager__static_i nit#1).reportThread)
    postpossibly_updated(com/dmdirc/logger/ProgramError. errorDir)
    postpossibly_updated(com/dmdirc/plugins/PluginManager. me)
    postpossibly_updated(java.lang.StringBuilder:toString(. ..)._tainted)
    postpossibly_updated(new ErrorReportingThread(sendError #1) num objects)
    postpossibly_updated(new ErrorReportingThread(sendError #1).queue)
    postpossibly_updated(new File(getErrorFile#1) num objects)
    postpossibly_updated(new HashMap(PluginManager#2) num objects)
    postpossibly_updated(new Hashtable(PluginManager#1) num objects)
    postpossibly_updated(new PluginClassLoader(getSubClassL oader#1) num objects)
    postpossibly_updated(new PluginClassLoader(getSubClassL oader#1).pluginInfo)
    postpossibly_updated(new PluginClassLoader(loadClass#1) num objects)
    postpossibly_updated(new PluginClassLoader(loadClass#1) .pluginInfo)
    postpossibly_updated(new PluginManager(getPluginManager #1) num objects)
    postpossibly_updated(new PluginManager(getPluginManager #1).knownPlugins)
    postpossibly_updated(new PluginManager(getPluginManager #1).myDir)
    postpossibly_updated(new PluginManager(getPluginManager #1).services)
    postpossibly_updated(this...myResourceManager)
    postpossibly_updated(this.classloader)
    postpossibly_updated(this.lastError)
    postpossibly_updated(this.myResourceManager)
    postpossibly_updated(this.plugin)
    unanalyzedcall on addError
    unanalyzedcall on addPlugin
    unanalyzedcall on com.dmdirc.Main:getConfigDir
    unanalyzedcall on com.dmdirc.actions.ActionManager:addListene r
    unanalyzedcall on com.dmdirc.actions.ActionManager:processEve nt
    unanalyzedcall on com.dmdirc.config.prefs.validator. ValidationResponse
    unanalyzedcall on com.dmdirc.logger.ErrorFixedStatus:equals
    unanalyzedcall on com.dmdirc.logger.ErrorReportStatus:equals
    unanalyzedcall on com.dmdirc.logger.ErrorReportStatus:ordinal
    unanalyzedcall on com.dmdirc.logger.ErrorReportingThread:setD aemon
    unanalyzedcall on com.dmdirc.plugins.GlobalClassLoader:define Class
    unanalyzedcall on com.dmdirc.plugins.GlobalClassLoader:findLo adedClass
    unanalyzedcall on com.dmdirc.plugins.PluginClassLoader:define Class
    unanalyzedcall on com.dmdirc.plugins.PluginClassLoader:findLo adedClass
    unanalyzedcall on com.dmdirc.plugins.PluginClassLoader:getPar ent
    unanalyzedcall on com.dmdirc.plugins.PluginClassLoader:resolv eClass
    unanalyzedcall on com.dmdirc.plugins.PluginException:getMessa ge
    unanalyzedcall on com.dmdirc.plugins.PluginInfo
    unanalyzedcall on com.dmdirc.updater.components. PluginComponent
    unanalyzedcall on com.dmdirc.util.ConfigFile:getFlatDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isFlatDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on com.dmdirc.util.ListenerList:get
    unanalyzedcall on com.dmdirc.util.resourcemanager. ResourceManager:getResourceBytes
    unanalyzedcall on com.dmdirc.util.resourcemanager. ResourceManager:getResourceManager
    unanalyzedcall on com.dmdirc.util.resourcemanager. ResourceManager:getResourcesStartingWith
    unanalyzedcall on com.dmdirc.util.resourcemanager. ResourceManager:resourceExists
    unanalyzedcall on delPlugin
    unanalyzedcall on delProvider
    unanalyzedcall on equals
    unanalyzedcall on errorAdded
    unanalyzedcall on errorStatusChanged
    unanalyzedcall on fireErrorStatusChanged
    unanalyzedcall on getClassList
    unanalyzedcall on getErrorManager
    unanalyzedcall on getFullFilename
    unanalyzedcall on getName
    unanalyzedcall on getPersistentClasses
    unanalyzedcall on getPluginClassLoader
    unanalyzedcall on getPluginInfoByName
    unanalyzedcall on getPluginInfos
    unanalyzedcall on getPluginManager
    unanalyzedcall on getPossiblePluginInfos
    unanalyzedcall on getReportStatus
    unanalyzedcall on getResourceManager
    unanalyzedcall on getTrace
    unanalyzedcall on isPersistent
    unanalyzedcall on isReady
    unanalyzedcall on isUnloadable
    unanalyzedcall on java.awt.GraphicsEnvironment:isHeadless
    unanalyzedcall on java.io.File
    unanalyzedcall on java.io.File:createNewFile
    unanalyzedcall on java.io.File:exists
    unanalyzedcall on java.io.File:getName
    unanalyzedcall on java.io.File:getPath
    unanalyzedcall on java.io.File:isDirectory
    unanalyzedcall on java.io.File:isFile
    unanalyzedcall on java.io.File:listFiles
    unanalyzedcall on java.io.File:mkdirs
    unanalyzedcall on java.io.File:renameTo
    unanalyzedcall on java.io.FileOutputStream
    unanalyzedcall on java.io.IOException:printStackTrace
    unanalyzedcall on java.io.OutputStream
    unanalyzedcall on java.io.PrintStream:println
    unanalyzedcall on java.io.PrintWriter
    unanalyzedcall on java.io.PrintWriter:close
    unanalyzedcall on java.io.PrintWriter:println
    unanalyzedcall on java.lang.ClassLoader
    unanalyzedcall on java.lang.ClassLoader:loadClass
    unanalyzedcall on java.lang.ClassNotFoundException
    unanalyzedcall on java.lang.Exception
    unanalyzedcall on java.lang.Exception:getMessage
    unanalyzedcall on java.lang.Exception:printStackTrace
    unanalyzedcall on java.lang.IllegalArgumentException
    unanalyzedcall on java.lang.NoClassDefFoundError:getMessage
    unanalyzedcall on java.lang.Object:equals
    unanalyzedcall on java.lang.Object:getClass
    unanalyzedcall on java.lang.Object:notifyAll
    unanalyzedcall on java.lang.Object:wait
    unanalyzedcall on java.lang.StackTraceElement:toString
    unanalyzedcall on java.lang.String:endsWith
    unanalyzedcall on java.lang.String:equals
    unanalyzedcall on java.lang.String:equalsIgnoreCase
    unanalyzedcall on java.lang.String:isEmpty
    unanalyzedcall on java.lang.String:length
    unanalyzedcall on java.lang.String:matches
    unanalyzedcall on java.lang.String:replace
    unanalyzedcall on java.lang.String:replaceAll
    unanalyzedcall on java.lang.String:startsWith
    unanalyzedcall on java.lang.String:substring
    unanalyzedcall on java.lang.String:toLowerCase
    unanalyzedcall on java.lang.System:getProperty
    unanalyzedcall on java.lang.Thread
    unanalyzedcall on java.lang.Thread:isAlive
    unanalyzedcall on java.lang.Thread:start
    unanalyzedcall on java.lang.Throwable:__curr_excep_obj
    unanalyzedcall on java.lang.Throwable:getCause
    unanalyzedcall on java.lang.Throwable:getStackTrace
    unanalyzedcall on java.lang.Throwable:toString
    unanalyzedcall on java.net.MalformedURLException:getMessage
    unanalyzedcall on java.net.URL
    unanalyzedcall on java.net.URL:getPath
    unanalyzedcall on java.util.ArrayList
    unanalyzedcall on java.util.Arrays:copyOf
    unanalyzedcall on java.util.Arrays:equals
    unanalyzedcall on java.util.Collection:iterator
    unanalyzedcall on java.util.Date
    unanalyzedcall on java.util.Date:clone
    unanalyzedcall on java.util.Date:getTime
    unanalyzedcall on java.util.HashMap
    unanalyzedcall on java.util.Hashtable
    unanalyzedcall on java.util.LinkedList
    unanalyzedcall on java.util.LinkedList:add
    unanalyzedcall on java.util.LinkedList:isEmpty
    unanalyzedcall on java.util.LinkedList:pop
    unanalyzedcall on java.util.List:add
    unanalyzedcall on java.util.List:clear
    unanalyzedcall on java.util.List:contains
    unanalyzedcall on java.util.List:iterator
    unanalyzedcall on java.util.List:remove
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get
    unanalyzedcall on java.util.Map:put
    unanalyzedcall on java.util.Map:remove
    unanalyzedcall on java.util.Map:values
    unanalyzedcall on java.util.Timer
    unanalyzedcall on java.util.Timer:schedule
    unanalyzedcall on java.util.TimerTask
    unanalyzedcall on java.util.concurrent.BlockingQueue:add
    unanalyzedcall on java.util.concurrent.Semaphore
    unanalyzedcall on java.util.concurrent.Semaphore:acquireUnint erruptibly
    unanalyzedcall on java.util.concurrent.Semaphore:release
    unanalyzedcall on java.util.concurrent.atomic. AtomicLong:getAndIncrement
    unanalyzedcall on javax.swing.JButton:setEnabled
    unanalyzedcall on javax.swing.JButton:setText
    unanalyzedcall on javax.swing.SwingUtilities:invokeLater
    unanalyzedcall on loadClass
    unanalyzedcall on onUnload
    unanalyzedcall on unloadPlugin
    test_vectorcom.dmdirc.config.prefs.validator.ValidationRespons e:isFailure(...)@964: {1}, {0}
    test_vectorjava.lang.String:equals(...)@959: {0}, {1}
    test_vectorjava.lang.String:isEmpty(...)@933: {0}, {1}
    test_vectorthis.classloader: Inverse{null}, Addr_Set{null}

  • void loadEntirePlugin()

  • Kind Annotation Text
    pre(soft) init'ed(com/dmdirc/plugins/GlobalClassLoader .me)
    pre(soft) init'ed(this.classloader)
    pre(soft) init'ed(this.plugin)
    prethis.myClasses != null
    postcom/dmdirc/plugins/GlobalClassLoader.me == old com/dmdirc/plugins/GlobalClassLoader.me
    postjava.lang.StringBuilder:toString(...)._tainted == 0
    postnew GlobalClassLoader(getGlobalClassLoader#1) num objects == 0, if init'ed
    postnew GlobalClassLoader(getGlobalClassLoader#1) num objects == undefined
    postnew GlobalClassLoader(getGlobalClassLoader#1). resourcesList == null
    postnew GlobalClassLoader(getGlobalClassLoader#1). resourcesList == undefined
    postnew HashMap(GlobalClassLoader#1) num objects == new GlobalClassLoader(getGlobalClassLoader#1) num objects
    postnew PluginClassLoader(getSubClassLoader#1) num objects == new GlobalClassLoader(getGlobalClassLoa der#1) num objects
    postnew PluginClassLoader(getSubClassLoader#1). pluginInfo == new GlobalClassLoader(getGlobalClassL oader#1).resourcesList
    postnew PluginClassLoader(loadClass#1) num objects == new GlobalClassLoader(getGlobalClassLoader#1) num objects
    postnew PluginClassLoader(loadClass#1).pluginInfo == new GlobalClassLoader(getGlobalClassLoader#1). resourcesList
    postthis.classloader == old this.classloader
    postthis.isLoading == old this.isLoading
    postthis.lastError == old this.lastError
    postthis.plugin == old this.plugin
    postthis.plugin.domainSet == old this.plugin.domainSet
    postthis.plugin.myDomain == old this.plugin.myDomain
    postthis.tempLoaded == old this.tempLoaded
    test_vectorjava.util.Iterator:hasNext(...)@837: {0}, {1}

  • void loadPlugin()

  • Kind Annotation Text
    pre(soft) init'ed(com/dmdirc/plugins/GlobalClassLoader .me)
    pre(soft) init'ed(this.isLoading)
    pre(soft) init'ed(this.requirementsError)
    pre(soft) init'ed(this.tempLoaded)
    pre(soft) this.children != null
    pre(soft) this.metaData != null
    preinit'ed(this.plugin)
    prethis.exports != null
    prethis.provides != null
    presumption(soft) init'ed(com.dmdirc.actions.CoreActionType. PLUGIN_LOADED)
    postcom.dmdirc.logger.ErrorManager__static_init.new ErrorManager(ErrorManager__static_init#1). reportThread == old com.dmdirc.logger. ErrorManager__static_init.new ErrorManager(ErrorMan ager__static_init#1).reportThread
    postcom/dmdirc/logger/ProgramError.errorDir == One-of{old com/dmdirc/logger/ProgramError. errorDir, &amp;new File(getErrorFile#1)}
    postcom/dmdirc/plugins/GlobalClassLoader.me == old com/dmdirc/plugins/GlobalClassLoader.me
    postinit'ed(java.lang.StringBuilder:toString(...)._ tainted)
    postinit'ed(new PluginClassLoader(getSubClassLoader#1) num objects)
    postinit'ed(this.isLoading)
    postinit'ed(this.plugin)
    postinit'ed(this.requirementsError)
    postinit'ed(this.tempLoaded)
    postjava.lang.StringBuilder:toString(...)._tainted == 0
    postnew GlobalClassLoader(getGlobalClassLoader#1) num objects == 0, if init'ed
    postnew GlobalClassLoader(getGlobalClassLoader#1) num objects == undefined
    postnew GlobalClassLoader(getGlobalClassLoader#1). resourcesList == null
    postnew GlobalClassLoader(getGlobalClassLoader#1). resourcesList == undefined
    postnew HashMap(GlobalClassLoader#1) num objects == new GlobalClassLoader(getGlobalClassLoader#1) num objects
    postnew PluginClassLoader(getSubClassLoader#1) num objects == new GlobalClassLoader(getGlobalClassLoa der#1) num objects
    postnew PluginClassLoader(getSubClassLoader#1). pluginInfo == new GlobalClassLoader(getGlobalClassL oader#1).resourcesList
    postnew PluginClassLoader(loadClass#1) num objects == new GlobalClassLoader(getGlobalClassLoader#1) num objects
    postnew PluginClassLoader(loadClass#1).pluginInfo == new GlobalClassLoader(getGlobalClassLoader#1). resourcesList
    postpossibly_updated(new ErrorReportingThread(sendError #1) num objects)
    postpossibly_updated(new ErrorReportingThread(sendError #1).queue)
    postpossibly_updated(new File(getErrorFile#1) num objects)
    postpossibly_updated(new PluginClassLoader(getSubClassL oader#1).pluginInfo)
    postpossibly_updated(this.lastError)
    postthis.classloader == One-of{old this.classloader, null}
    postthis.plugin == One-of{old this.plugin, null}
    postthis.plugin.domainSet == old this.plugin.domainSet
    postthis.plugin.myDomain == old this.plugin.myDomain
    postthis.requirementsError == One-of{old this.requirementsError, &amp;java.lang. StringBuilder:toString(...)}
    unanalyzedcall on activate
    unanalyzedcall on addError
    unanalyzedcall on checkPlugins
    unanalyzedcall on checkServices
    unanalyzedcall on com.dmdirc.Main:getConfigDir
    unanalyzedcall on com.dmdirc.actions.ActionManager:processEve nt
    unanalyzedcall on com.dmdirc.logger.ErrorFixedStatus:equals
    unanalyzedcall on com.dmdirc.logger.ErrorReportStatus:equals
    unanalyzedcall on com.dmdirc.logger.ErrorReportStatus:ordinal
    unanalyzedcall on com.dmdirc.logger.ErrorReportingThread:setD aemon
    unanalyzedcall on com.dmdirc.updater.Version
    unanalyzedcall on com.dmdirc.updater.Version:compareTo
    unanalyzedcall on com.dmdirc.util.ConfigFile:getFlatDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isFlatDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on com.dmdirc.util.ListenerList:get
    unanalyzedcall on delProvider
    unanalyzedcall on equals
    unanalyzedcall on errorAdded
    unanalyzedcall on errorStatusChanged
    unanalyzedcall on fireErrorStatusChanged
    unanalyzedcall on getErrorManager
    unanalyzedcall on getPluginInfoByName
    unanalyzedcall on getPluginManager
    unanalyzedcall on getReportStatus
    unanalyzedcall on getService
    unanalyzedcall on getServicesByType
    unanalyzedcall on getTrace
    unanalyzedcall on isActive
    unanalyzedcall on isReady
    unanalyzedcall on isUnloadable
    unanalyzedcall on java.awt.GraphicsEnvironment:isHeadless
    unanalyzedcall on java.io.File
    unanalyzedcall on java.io.File:createNewFile
    unanalyzedcall on java.io.File:exists
    unanalyzedcall on java.io.File:mkdirs
    unanalyzedcall on java.io.File:renameTo
    unanalyzedcall on java.io.FileOutputStream
    unanalyzedcall on java.io.IOException:printStackTrace
    unanalyzedcall on java.io.OutputStream
    unanalyzedcall on java.io.PrintStream:println
    unanalyzedcall on java.io.PrintWriter
    unanalyzedcall on java.io.PrintWriter:close
    unanalyzedcall on java.io.PrintWriter:println
    unanalyzedcall on java.lang.ClassLoader
    unanalyzedcall on java.lang.Exception:getMessage
    unanalyzedcall on java.lang.Exception:printStackTrace
    unanalyzedcall on java.lang.IllegalArgumentException
    unanalyzedcall on java.lang.Object:equals
    unanalyzedcall on java.lang.Object:getClass
    unanalyzedcall on java.lang.Object:notifyAll
    unanalyzedcall on java.lang.Object:wait
    unanalyzedcall on java.lang.StackTraceElement:toString
    unanalyzedcall on java.lang.String:equals
    unanalyzedcall on java.lang.String:equalsIgnoreCase
    unanalyzedcall on java.lang.String:isEmpty
    unanalyzedcall on java.lang.String:matches
    unanalyzedcall on java.lang.String:split
    unanalyzedcall on java.lang.String:startsWith
    unanalyzedcall on java.lang.String:toLowerCase
    unanalyzedcall on java.lang.System:getProperty
    unanalyzedcall on java.lang.Thread
    unanalyzedcall on java.lang.Thread:isAlive
    unanalyzedcall on java.lang.Thread:start
    unanalyzedcall on java.lang.Throwable:__curr_excep_obj
    unanalyzedcall on java.lang.Throwable:getCause
    unanalyzedcall on java.lang.Throwable:getStackTrace
    unanalyzedcall on java.lang.Throwable:toString
    unanalyzedcall on java.util.Arrays:copyOf
    unanalyzedcall on java.util.Arrays:equals
    unanalyzedcall on java.util.Date
    unanalyzedcall on java.util.Date:clone
    unanalyzedcall on java.util.Date:getTime
    unanalyzedcall on java.util.List:add
    unanalyzedcall on java.util.List:clear
    unanalyzedcall on java.util.List:contains
    unanalyzedcall on java.util.List:get
    unanalyzedcall on java.util.List:iterator
    unanalyzedcall on java.util.List:remove
    unanalyzedcall on java.util.List:size
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get
    unanalyzedcall on java.util.concurrent.BlockingQueue:add
    unanalyzedcall on java.util.concurrent.Semaphore
    unanalyzedcall on java.util.concurrent.Semaphore:acquireUnint erruptibly
    unanalyzedcall on java.util.concurrent.Semaphore:release
    unanalyzedcall on java.util.concurrent.atomic. AtomicLong:getAndIncrement
    unanalyzedcall on javax.swing.JButton:setEnabled
    unanalyzedcall on javax.swing.JButton:setText
    unanalyzedcall on javax.swing.SwingUtilities:invokeLater
    unanalyzedcall on onUnload
    unanalyzedcall on unloadPlugin
    test_vector!(this.plugin == null) &amp; this.tempLoaded != 0: {0}, {1}
    test_vector!(this.plugin == null) &amp; this.tempLoaded == 0: {0}, {1}
    test_vector(!(this.plugin == null) &amp; this.tempLoaded == 0) | this.plugin == null: {0}, {1}
    test_vectorthis.isLoading: {0}, {1}
    test_vectorthis.tempLoaded: {1}, {0}

  • void loadPluginTemp()

  • Kind Annotation Text
    postjava.lang.StringBuilder:toString(...)._tainted == 0
    postthis.isLoading == old this.isLoading
    postthis.lastError == old this.lastError
    postthis.tempLoaded == 1

  • void loadRequired()

  • Kind Annotation Text
    preinit'ed(this.metaData)
    postinit'ed(new PluginManager(getPluginManager#1). knownPlugins)
    postinit'ed(new PluginManager(getPluginManager#1). myDir)
    postinit'ed(new PluginManager(getPluginManager#1). services)
    postjava.lang.StringBuilder:toString(...)._tainted == 0
    postnew HashMap(PluginManager#2) num objects == 0
    postnew Hashtable(PluginManager#1) num objects == 0
    postnew PluginClassLoader(getSubClassLoader#1) num objects == 0
    postnew PluginManager(getPluginManager#1) num objects == 0
    postpossibly_updated(com/dmdirc/plugins/PluginManager. me)
    postpossibly_updated(new PluginClassLoader(getSubClassL oader#1).pluginInfo)
    unanalyzedcall on addError
    unanalyzedcall on addPlugin
    unanalyzedcall on checkRequirements
    unanalyzedcall on com.dmdirc.Main:getConfigDir
    unanalyzedcall on com.dmdirc.actions.ActionManager:addListene r
    unanalyzedcall on com.dmdirc.actions.ActionManager:processEve nt
    unanalyzedcall on com.dmdirc.plugins.PluginException:getMessa ge
    unanalyzedcall on com.dmdirc.plugins.PluginInfo
    unanalyzedcall on com.dmdirc.updater.components. PluginComponent
    unanalyzedcall on com.dmdirc.util.ConfigFile:getFlatDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isFlatDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on delPlugin
    unanalyzedcall on delProvider
    unanalyzedcall on getMainClass
    unanalyzedcall on getName
    unanalyzedcall on getPluginInfoByName
    unanalyzedcall on getPluginManager
    unanalyzedcall on getPossiblePluginInfos
    unanalyzedcall on isUnloadable
    unanalyzedcall on java.io.File
    unanalyzedcall on java.io.File:exists
    unanalyzedcall on java.io.File:getName
    unanalyzedcall on java.io.File:getPath
    unanalyzedcall on java.io.File:isDirectory
    unanalyzedcall on java.io.File:isFile
    unanalyzedcall on java.io.File:listFiles
    unanalyzedcall on java.lang.ClassLoader
    unanalyzedcall on java.lang.Exception
    unanalyzedcall on java.lang.Exception:getMessage
    unanalyzedcall on java.lang.Exception:printStackTrace
    unanalyzedcall on java.lang.String:endsWith
    unanalyzedcall on java.lang.String:equalsIgnoreCase
    unanalyzedcall on java.lang.String:isEmpty
    unanalyzedcall on java.lang.String:length
    unanalyzedcall on java.lang.String:substring
    unanalyzedcall on java.lang.String:toLowerCase
    unanalyzedcall on java.lang.System:getProperty
    unanalyzedcall on java.lang.Throwable:__curr_excep_obj
    unanalyzedcall on java.lang.Throwable:getMessage
    unanalyzedcall on java.net.MalformedURLException:getMessage
    unanalyzedcall on java.net.URL
    unanalyzedcall on java.net.URL:getPath
    unanalyzedcall on java.util.ArrayList
    unanalyzedcall on java.util.Collection:iterator
    unanalyzedcall on java.util.HashMap
    unanalyzedcall on java.util.Hashtable
    unanalyzedcall on java.util.LinkedList
    unanalyzedcall on java.util.LinkedList:add
    unanalyzedcall on java.util.LinkedList:isEmpty
    unanalyzedcall on java.util.LinkedList:pop
    unanalyzedcall on java.util.List:clear
    unanalyzedcall on java.util.List:contains
    unanalyzedcall on java.util.List:iterator
    unanalyzedcall on java.util.List:remove
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get
    unanalyzedcall on java.util.Map:put
    unanalyzedcall on java.util.Map:remove
    unanalyzedcall on java.util.Map:values
    unanalyzedcall on loadClass
    unanalyzedcall on loadPlugin
    unanalyzedcall on loadRequired
    unanalyzedcall on onLoad
    unanalyzedcall on onUnload
    unanalyzedcall on unloadPlugin
    unanalyzedcall on updateProvides

  • void pluginUpdated()

  • Kind Annotation Text
    pre(soft) init'ed(this.metaData)
    pre(soft) this.myClasses != null
    pre(soft) this.url != null
    presumptioncom.dmdirc.util.resourcemanager.ResourceManager:get ResourcesStartingWith(...)@405 != null
    presumptionjava.util.Iterator:next(...)@405 != null
    postinit'ed(this.metaData)
    postnew ConfigFile(getConfigFile#1) num objects <= 1
    postnew ConfigFile(getMigratedConfigFile#1) num objects <= 1
    postpossibly_updated(this.migrated)
    postpossibly_updated(this.myResourceManager)
    postthis.metaData == One-of{&amp;new ConfigFile(getConf igFile#1), &amp;new ConfigFile(getMigratedConfigFil e#1), null, old this.metaData}
    unanalyzedcall on com.dmdirc.config.Identity:setOption
    unanalyzedcall on com.dmdirc.config.IdentityManager:getAddonI dentity
    unanalyzedcall on com.dmdirc.util.ConfigFile
    unanalyzedcall on com.dmdirc.util.ConfigFile:addDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:read
    unanalyzedcall on com.dmdirc.util.resourcemanager. ResourceManager:getResourceInputStream
    unanalyzedcall on com.dmdirc.util.resourcemanager. ResourceManager:getResourceManager
    unanalyzedcall on com.dmdirc.util.resourcemanager. ResourceManager:resourceExists
    unanalyzedcall on getConfigFile
    unanalyzedcall on java.io.IOException
    unanalyzedcall on java.lang.Object:toString
    unanalyzedcall on java.lang.String:startsWith
    unanalyzedcall on java.lang.String:substring
    unanalyzedcall on java.lang.String:toLowerCase
    unanalyzedcall on java.lang.Throwable:__curr_excep_obj
    unanalyzedcall on java.net.URL:getPath
    unanalyzedcall on java.util.ArrayList
    unanalyzedcall on java.util.HashMap
    unanalyzedcall on java.util.List:add
    unanalyzedcall on java.util.Map$Entry:getKey
    unanalyzedcall on java.util.Map$Entry:getValue
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:entrySet
    unanalyzedcall on java.util.Map:get
    unanalyzedcall on java.util.Map:put
    unanalyzedcall on java.util.Properties
    unanalyzedcall on java.util.Properties:containsKey
    unanalyzedcall on java.util.Properties:entrySet
    unanalyzedcall on java.util.Properties:getProperty
    unanalyzedcall on java.util.Properties:load
    unanalyzedcall on java.util.Set:iterator
    unanalyzedcall on java.util.Timer
    unanalyzedcall on java.util.Timer:schedule
    unanalyzedcall on java.util.TimerTask
    unanalyzedcall on java.util.logging.Logger:finer
    test_vectorjava.lang.String:matches(...)@407: {0}, {1}
    test_vectorjava.util.Iterator:hasNext(...)@405: {0}, {1}

  • void run()

  • Kind Annotation Text

  • String toString()

  • Kind Annotation Text
    preinit'ed(this.metaData)
    postinit'ed(java.lang.StringBuilder:toString(...)._ tainted)
    postreturn_value == &amp;java.lang.StringBuilder:toStri ng(...)
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get

  • void unloadPlugin()

  • Kind Annotation Text
    pre(soft) init'ed(this.metaData)
    pre(soft) init'ed(this.tempLoaded)
    pre(soft) this.children != null
    pre(soft) this.plugin != null
    pre(soft) this.provides != null
    postpossibly_updated(java.lang.StringBuilder:toString(. ..)._tainted)
    postpossibly_updated(new PluginClassLoader(getSubClassL oader#1) num objects)
    postpossibly_updated(new PluginClassLoader(getSubClassL oader#1).pluginInfo)
    postpossibly_updated(this.lastError)
    postthis.classloader == One-of{old this.classloader, null}
    postthis.plugin == One-of{old this.plugin, null}
    postthis.tempLoaded == One-of{old this.tempLoaded, 0}
    unanalyzedcall on addError
    unanalyzedcall on com.dmdirc.actions.ActionManager:processEve nt
    unanalyzedcall on com.dmdirc.util.ConfigFile:getFlatDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isFlatDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on delProvider
    unanalyzedcall on getPluginInfoByName
    unanalyzedcall on getPluginManager
    unanalyzedcall on isUnloadable
    unanalyzedcall on java.lang.ClassLoader
    unanalyzedcall on java.lang.Exception:getMessage
    unanalyzedcall on java.lang.Exception:printStackTrace
    unanalyzedcall on java.lang.String:equalsIgnoreCase
    unanalyzedcall on java.lang.String:isEmpty
    unanalyzedcall on java.lang.Throwable:__curr_excep_obj
    unanalyzedcall on java.util.List:clear
    unanalyzedcall on java.util.List:contains
    unanalyzedcall on java.util.List:iterator
    unanalyzedcall on java.util.List:remove
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get
    unanalyzedcall on onUnload
    unanalyzedcall on unloadPlugin

  • void unloadPlugin(bool)

  • Kind Annotation Text
    pre(soft) init'ed(this.metaData)
    pre(soft) init'ed(this.tempLoaded)
    pre(soft) this.children != null
    pre(soft) this.plugin != null
    pre(soft) this.provides != null
    presumptioninit'ed(com.dmdirc.actions.CoreActionType.PLUGIN_ UNLOADED)
    postcom.dmdirc.logger.ErrorManager__static_init.new ErrorManager(ErrorManager__static_init#1). reportThread == old com.dmdirc.logger. ErrorManager__static_init.new ErrorManager(ErrorMan ager__static_init#1).reportThread
    postcom/dmdirc/logger/ProgramError.errorDir == One-of{old com/dmdirc/logger/ProgramError. errorDir, &amp;new File(getErrorFile#1)}
    postcom/dmdirc/plugins/PluginManager.me == One-of{old com/dmdirc/plugins/PluginManager.me, &amp;new PluginManager(getPluginManager#1)}
    postinit'ed(java.lang.StringBuilder:toString(...)._ tainted)
    postinit'ed(new PluginClassLoader(getSubClassLoader#1) num objects)
    postinit'ed(new PluginClassLoader(getSubClassLoader#1). pluginInfo)
    postinit'ed(this.plugin)
    postinit'ed(this.tempLoaded)
    postnew PluginClassLoader(getSubClassLoader#1) num objects <= 1
    postpossibly_updated(java.lang.StringBuilder:toString(. ..)._tainted)
    postpossibly_updated(new ErrorReportingThread(sendError #1) num objects)
    postpossibly_updated(new ErrorReportingThread(sendError #1).queue)
    postpossibly_updated(new File(getErrorFile#1) num objects)
    postpossibly_updated(new HashMap(PluginManager#2) num objects)
    postpossibly_updated(new Hashtable(PluginManager#1) num objects)
    postpossibly_updated(new PluginManager(getPluginManager #1) num objects)
    postpossibly_updated(new PluginManager(getPluginManager #1).knownPlugins)
    postpossibly_updated(new PluginManager(getPluginManager #1).myDir)
    postpossibly_updated(new PluginManager(getPluginManager #1).services)
    postpossibly_updated(this.lastError)
    postthis.classloader == One-of{old this.classloader, null}
    postthis.plugin == One-of{old this.plugin, null}
    unanalyzedcall on addError
    unanalyzedcall on addPlugin
    unanalyzedcall on com.dmdirc.Main:getConfigDir
    unanalyzedcall on com.dmdirc.actions.ActionManager:addListene r
    unanalyzedcall on com.dmdirc.actions.ActionManager:processEve nt
    unanalyzedcall on com.dmdirc.logger.ErrorFixedStatus:equals
    unanalyzedcall on com.dmdirc.logger.ErrorReportStatus:equals
    unanalyzedcall on com.dmdirc.logger.ErrorReportStatus:ordinal
    unanalyzedcall on com.dmdirc.logger.ErrorReportingThread:setD aemon
    unanalyzedcall on com.dmdirc.plugins.PluginException:getMessa ge
    unanalyzedcall on com.dmdirc.plugins.PluginInfo
    unanalyzedcall on com.dmdirc.updater.components. PluginComponent
    unanalyzedcall on com.dmdirc.util.ConfigFile:getFlatDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isFlatDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on com.dmdirc.util.ListenerList:get
    unanalyzedcall on delPlugin
    unanalyzedcall on delProvider
    unanalyzedcall on equals
    unanalyzedcall on errorAdded
    unanalyzedcall on errorStatusChanged
    unanalyzedcall on fireErrorStatusChanged
    unanalyzedcall on getErrorManager
    unanalyzedcall on getPluginInfoByName
    unanalyzedcall on getPluginManager
    unanalyzedcall on getPossiblePluginInfos
    unanalyzedcall on getReportStatus
    unanalyzedcall on getTrace
    unanalyzedcall on isReady
    unanalyzedcall on isUnloadable
    unanalyzedcall on java.awt.GraphicsEnvironment:isHeadless
    unanalyzedcall on java.io.File
    unanalyzedcall on java.io.File:createNewFile
    unanalyzedcall on java.io.File:exists
    unanalyzedcall on java.io.File:getName
    unanalyzedcall on java.io.File:getPath
    unanalyzedcall on java.io.File:isDirectory
    unanalyzedcall on java.io.File:isFile
    unanalyzedcall on java.io.File:listFiles
    unanalyzedcall on java.io.File:mkdirs
    unanalyzedcall on java.io.File:renameTo
    unanalyzedcall on java.io.FileOutputStream
    unanalyzedcall on java.io.IOException:printStackTrace
    unanalyzedcall on java.io.OutputStream
    unanalyzedcall on java.io.PrintStream:println
    unanalyzedcall on java.io.PrintWriter
    unanalyzedcall on java.io.PrintWriter:close
    unanalyzedcall on java.io.PrintWriter:println
    unanalyzedcall on java.lang.ClassLoader
    unanalyzedcall on java.lang.Exception
    unanalyzedcall on java.lang.Exception:getMessage
    unanalyzedcall on java.lang.Exception:printStackTrace
    unanalyzedcall on java.lang.IllegalArgumentException
    unanalyzedcall on java.lang.Object:equals
    unanalyzedcall on java.lang.Object:getClass
    unanalyzedcall on java.lang.Object:notifyAll
    unanalyzedcall on java.lang.Object:wait
    unanalyzedcall on java.lang.StackTraceElement:toString
    unanalyzedcall on java.lang.String:endsWith
    unanalyzedcall on java.lang.String:equals
    unanalyzedcall on java.lang.String:equalsIgnoreCase
    unanalyzedcall on java.lang.String:isEmpty
    unanalyzedcall on java.lang.String:length
    unanalyzedcall on java.lang.String:startsWith
    unanalyzedcall on java.lang.String:substring
    unanalyzedcall on java.lang.String:toLowerCase
    unanalyzedcall on java.lang.System:getProperty
    unanalyzedcall on java.lang.Thread
    unanalyzedcall on java.lang.Thread:isAlive
    unanalyzedcall on java.lang.Thread:start
    unanalyzedcall on java.lang.Throwable:__curr_excep_obj
    unanalyzedcall on java.lang.Throwable:getCause
    unanalyzedcall on java.lang.Throwable:getStackTrace
    unanalyzedcall on java.lang.Throwable:toString
    unanalyzedcall on java.net.MalformedURLException:getMessage
    unanalyzedcall on java.net.URL
    unanalyzedcall on java.net.URL:getPath
    unanalyzedcall on java.util.ArrayList
    unanalyzedcall on java.util.Arrays:copyOf
    unanalyzedcall on java.util.Arrays:equals
    unanalyzedcall on java.util.Collection:iterator
    unanalyzedcall on java.util.Date
    unanalyzedcall on java.util.Date:clone
    unanalyzedcall on java.util.Date:getTime
    unanalyzedcall on java.util.HashMap
    unanalyzedcall on java.util.Hashtable
    unanalyzedcall on java.util.LinkedList
    unanalyzedcall on java.util.LinkedList:add
    unanalyzedcall on java.util.LinkedList:isEmpty
    unanalyzedcall on java.util.LinkedList:pop
    unanalyzedcall on java.util.List:add
    unanalyzedcall on java.util.List:clear
    unanalyzedcall on java.util.List:contains
    unanalyzedcall on java.util.List:iterator
    unanalyzedcall on java.util.List:remove
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get
    unanalyzedcall on java.util.Map:put
    unanalyzedcall on java.util.Map:remove
    unanalyzedcall on java.util.Map:values
    unanalyzedcall on java.util.concurrent.BlockingQueue:add
    unanalyzedcall on java.util.concurrent.Semaphore
    unanalyzedcall on java.util.concurrent.Semaphore:acquireUnint erruptibly
    unanalyzedcall on java.util.concurrent.Semaphore:release
    unanalyzedcall on java.util.concurrent.atomic. AtomicLong:getAndIncrement
    unanalyzedcall on javax.swing.JButton:setEnabled
    unanalyzedcall on javax.swing.JButton:setText
    unanalyzedcall on javax.swing.SwingUtilities:invokeLater
    unanalyzedcall on onUnload
    unanalyzedcall on unloadPlugin
    test_vector!(this.plugin == null) &amp; this.tempLoaded != 0: {1}, {0}
    test_vector!(this.plugin == null) &amp; this.tempLoaded == 0: {0}, {1}
    test_vector(!(this.plugin == null) &amp; this.tempLoaded != 0) | this.plugin == null: {1}, {0}
    test_vector(!(this.plugin == null) &amp; this.tempLoaded == 0) | this.plugin == null: {0}, {1}
    test_vectorjava.lang.String:isEmpty(...)@1050: {1}, {0}
    test_vectorjava.util.Iterator:hasNext(...)@1046: {0}, {1}
    test_vectorjava.util.Iterator:hasNext(...)@1067: {0}, {1}
    test_vectorparentUnloading: {1}, {0}
    test_vectorthis.tempLoaded: {1}, {0}

  • void updateExports()

  • Kind Annotation Text
    prethis.exports != null
    prethis.metaData != null
    presumptionjava.util.Iterator:next(...)@1418 != null
    postinit'ed(new PluginManager(getPluginManager#1). knownPlugins)
    postinit'ed(new PluginManager(getPluginManager#1). myDir)
    postinit'ed(new PluginManager(getPluginManager#1). services)
    postjava.lang.StringBuilder:toString(...)._tainted == 0
    postnew HashMap(PluginManager#2) num objects == 0
    postnew Hashtable(PluginManager#1) num objects == 0
    postnew PluginClassLoader(getSubClassLoader#1) num objects == 0
    postnew PluginManager(getPluginManager#1) num objects == 0
    postpossibly_updated(com/dmdirc/plugins/PluginManager. me)
    postpossibly_updated(new PluginClassLoader(getSubClassL oader#1).pluginInfo)
    unanalyzedcall on addError
    unanalyzedcall on addPlugin
    unanalyzedcall on com.dmdirc.Main:getConfigDir
    unanalyzedcall on com.dmdirc.actions.ActionManager:addListene r
    unanalyzedcall on com.dmdirc.actions.ActionManager:processEve nt
    unanalyzedcall on com.dmdirc.plugins.PluginException:getMessa ge
    unanalyzedcall on com.dmdirc.plugins.PluginInfo
    unanalyzedcall on com.dmdirc.updater.components. PluginComponent
    unanalyzedcall on com.dmdirc.util.ConfigFile:getFlatDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isFlatDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on delPlugin
    unanalyzedcall on delProvider
    unanalyzedcall on getPluginInfoByName
    unanalyzedcall on getPluginManager
    unanalyzedcall on getPossiblePluginInfos
    unanalyzedcall on isUnloadable
    unanalyzedcall on java.io.File
    unanalyzedcall on java.io.File:exists
    unanalyzedcall on java.io.File:getName
    unanalyzedcall on java.io.File:getPath
    unanalyzedcall on java.io.File:isDirectory
    unanalyzedcall on java.io.File:isFile
    unanalyzedcall on java.io.File:listFiles
    unanalyzedcall on java.lang.ClassLoader
    unanalyzedcall on java.lang.Exception
    unanalyzedcall on java.lang.Exception:getMessage
    unanalyzedcall on java.lang.Exception:printStackTrace
    unanalyzedcall on java.lang.String:endsWith
    unanalyzedcall on java.lang.String:equalsIgnoreCase
    unanalyzedcall on java.lang.String:isEmpty
    unanalyzedcall on java.lang.String:length
    unanalyzedcall on java.lang.String:substring
    unanalyzedcall on java.lang.String:toLowerCase
    unanalyzedcall on java.lang.System:getProperty
    unanalyzedcall on java.lang.Throwable:__curr_excep_obj
    unanalyzedcall on java.net.MalformedURLException:getMessage
    unanalyzedcall on java.net.URL
    unanalyzedcall on java.net.URL:getPath
    unanalyzedcall on java.util.ArrayList
    unanalyzedcall on java.util.Collection:iterator
    unanalyzedcall on java.util.HashMap
    unanalyzedcall on java.util.Hashtable
    unanalyzedcall on java.util.LinkedList
    unanalyzedcall on java.util.LinkedList:add
    unanalyzedcall on java.util.LinkedList:isEmpty
    unanalyzedcall on java.util.LinkedList:pop
    unanalyzedcall on java.util.List:add
    unanalyzedcall on java.util.List:clear
    unanalyzedcall on java.util.List:contains
    unanalyzedcall on java.util.List:iterator
    unanalyzedcall on java.util.List:remove
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get
    unanalyzedcall on java.util.Map:put
    unanalyzedcall on java.util.Map:remove
    unanalyzedcall on java.util.Map:values
    unanalyzedcall on onUnload
    unanalyzedcall on unloadPlugin
    test_vectorcom.dmdirc.util.ConfigFile:getFlatDomain(... )@1416: Addr_Set{null}, Inverse{null}
    test_vectorjava.util.Iterator:hasNext(...)@1418: {0}, {1}

  • bool updateMetaData()

  • Kind Annotation Text
    pre(soft) init'ed(this.myResourceManager)
    pre(soft) this.url != null
    postinit'ed(return_value)
    postinit'ed(this.myResourceManager)
    postnew ConfigFile(getConfigFile#1) num objects <= 1
    postnew ConfigFile(getMigratedConfigFile#1) num objects <= 1
    postpossibly_updated(this.migrated)
    postthis.metaData == One-of{&amp;new ConfigFile(getConf igFile#1), &amp;new ConfigFile(getMigratedConfigFil e#1), null, old this.metaData}
    unanalyzedcall on com.dmdirc.util.ConfigFile
    unanalyzedcall on com.dmdirc.util.ConfigFile:addDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:read
    unanalyzedcall on com.dmdirc.util.resourcemanager. ResourceManager:getResourceInputStream
    unanalyzedcall on com.dmdirc.util.resourcemanager. ResourceManager:getResourceManager
    unanalyzedcall on com.dmdirc.util.resourcemanager. ResourceManager:resourceExists
    unanalyzedcall on java.io.IOException
    unanalyzedcall on java.lang.Object:toString
    unanalyzedcall on java.lang.String:startsWith
    unanalyzedcall on java.lang.String:substring
    unanalyzedcall on java.lang.String:toLowerCase
    unanalyzedcall on java.lang.Throwable:__curr_excep_obj
    unanalyzedcall on java.net.URL:getPath
    unanalyzedcall on java.util.ArrayList
    unanalyzedcall on java.util.HashMap
    unanalyzedcall on java.util.List:add
    unanalyzedcall on java.util.Map$Entry:getKey
    unanalyzedcall on java.util.Map$Entry:getValue
    unanalyzedcall on java.util.Map:put
    unanalyzedcall on java.util.Properties
    unanalyzedcall on java.util.Properties:containsKey
    unanalyzedcall on java.util.Properties:entrySet
    unanalyzedcall on java.util.Properties:getProperty
    unanalyzedcall on java.util.Properties:load
    unanalyzedcall on java.util.Set:iterator
    unanalyzedcall on java.util.Timer
    unanalyzedcall on java.util.Timer:schedule
    unanalyzedcall on java.util.TimerTask

  • void updateProvides()

  • Kind Annotation Text
    pre(soft) init'ed(com/dmdirc/plugins/PluginManager. me)
    prethis.metaData != null
    prethis.provides != null
    presumptiongetPluginManager(...).services != null
    presumptionjava.util.Iterator:next(...)@371 != null
    presumptionjava.util.Iterator:next(...)@379 != null
    presumptionservice.serviceproviders@371 != null
    presumptionservice.serviceproviders@385 != null
    postinit'ed(com/dmdirc/plugins/PluginManager.me)
    postinit'ed(new HashMap(PluginManager#2) num objects)
    postinit'ed(new Hashtable(PluginManager#1) num objects)
    postinit'ed(new PluginClassLoader(getSubClassLoader#1) num objects)
    postinit'ed(new PluginClassLoader(getSubClassLoader#1). pluginInfo)
    postinit'ed(new PluginManager(getPluginManager#1) num objects)
    postinit'ed(new PluginManager(getPluginManager#1). knownPlugins)
    postinit'ed(new PluginManager(getPluginManager#1). myDir)
    postinit'ed(new PluginManager(getPluginManager#1). services)
    postjava.lang.StringBuilder:toString(...)._tainted == 0
    unanalyzedcall on addError
    unanalyzedcall on addPlugin
    unanalyzedcall on com.dmdirc.Main:getConfigDir
    unanalyzedcall on com.dmdirc.actions.ActionManager:addListene r
    unanalyzedcall on com.dmdirc.actions.ActionManager:processEve nt
    unanalyzedcall on com.dmdirc.plugins.PluginException:getMessa ge
    unanalyzedcall on com.dmdirc.plugins.PluginInfo
    unanalyzedcall on com.dmdirc.updater.components. PluginComponent
    unanalyzedcall on com.dmdirc.util.ConfigFile:getFlatDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isFlatDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on delPlugin
    unanalyzedcall on delProvider
    unanalyzedcall on getPluginInfoByName
    unanalyzedcall on getPluginManager
    unanalyzedcall on getPossiblePluginInfos
    unanalyzedcall on isUnloadable
    unanalyzedcall on java.io.File
    unanalyzedcall on java.io.File:exists
    unanalyzedcall on java.io.File:getName
    unanalyzedcall on java.io.File:getPath
    unanalyzedcall on java.io.File:isDirectory
    unanalyzedcall on java.io.File:isFile
    unanalyzedcall on java.io.File:listFiles
    unanalyzedcall on java.lang.ClassLoader
    unanalyzedcall on java.lang.Exception
    unanalyzedcall on java.lang.Exception:getMessage
    unanalyzedcall on java.lang.Exception:printStackTrace
    unanalyzedcall on java.lang.String:endsWith
    unanalyzedcall on java.lang.String:equalsIgnoreCase
    unanalyzedcall on java.lang.String:isEmpty
    unanalyzedcall on java.lang.String:length
    unanalyzedcall on java.lang.String:substring
    unanalyzedcall on java.lang.String:toLowerCase
    unanalyzedcall on java.lang.System:getProperty
    unanalyzedcall on java.lang.Throwable:__curr_excep_obj
    unanalyzedcall on java.net.MalformedURLException:getMessage
    unanalyzedcall on java.net.URL
    unanalyzedcall on java.net.URL:getPath
    unanalyzedcall on java.util.ArrayList
    unanalyzedcall on java.util.Collection:iterator
    unanalyzedcall on java.util.HashMap
    unanalyzedcall on java.util.Hashtable
    unanalyzedcall on java.util.LinkedList
    unanalyzedcall on java.util.LinkedList:add
    unanalyzedcall on java.util.LinkedList:isEmpty
    unanalyzedcall on java.util.LinkedList:pop
    unanalyzedcall on java.util.List:add
    unanalyzedcall on java.util.List:clear
    unanalyzedcall on java.util.List:contains
    unanalyzedcall on java.util.List:iterator
    unanalyzedcall on java.util.List:remove
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get
    unanalyzedcall on java.util.Map:put
    unanalyzedcall on java.util.Map:remove
    unanalyzedcall on java.util.Map:values
    unanalyzedcall on onUnload
    unanalyzedcall on unloadPlugin
    test_vectorcom.dmdirc.util.ConfigFile:getFlatDomain(...)@377: Addr_Set{null}, Inverse{null}
    test_vectorjava.lang.String:equalsIgnoreCase(...)@384: {1}, {0}
    test_vectorjava.util.Iterator:hasNext(...)@371: {0}, {1}
    test_vectorjava.util.Iterator:hasNext(...)@379: {0}, {1}