Last Msg First Msg
























method com.dmdirc.plugins.GlobalClassLoader__static_init










method void com.dmdirc.plugins.GlobalClassLoader()
postthis.resourcesList == &new HashMap(GlobalClassL oader#1)
postnew HashMap(GlobalClassLoader#1) num objects == 1










method bool isClassLoaded(String)
postinit'ed(return_value)









  method not available - call not analyzedInfocall on Class com.dmdirc.plugins.GlobalClassLoader: findLoadedClass(String)











method GlobalClassLoader getGlobalClassLoader()
preinit'ed(me)
postme == One-of{old me, &new GlobalClassLoader(get GlobalClassLoader#1)}
postme != null
postreturn_value == me
postnew GlobalClassLoader(getGlobalClassLoader#1) num objects <= 1
postnew GlobalClassLoader(getGlobalClassLoader#1). resourcesList == &amp;new HashMap(GlobalClassLoader #1)
postnew HashMap(GlobalClassLoader#1) num objects <= 1
unanalyzedcall on java.lang.ClassLoader
unanalyzedcall on java.util.HashMap
test_vectorme: Inverse{null}, Addr_Set{null}










method Class loadClass(String, PluginInfo)
prepi != null
preinit'ed(pi.metaData)
pre(soft) pi.url != null
pre(soft) this.resourcesList != null
postpossibly_updated(pi.myResourceManager)
postinit'ed(return_value)
unanalyzedcall on java.lang.Throwable:__curr_excep_obj
unanalyzedcall on com.dmdirc.util.ConfigFile:isFlatDomain
unanalyzedcall on com.dmdirc.util.ConfigFile:getFlatDomain
unanalyzedcall on java.util.List:contains
unanalyzedcall on java.util.List:iterator
unanalyzedcall on java.net.URL:getPath
unanalyzedcall on java.util.List:add
unanalyzedcall on java.lang.String:matches
unanalyzedcall on com.dmdirc.util.resourcemanager. ResourceManager:getResourceManager
unanalyzedcall on java.util.Timer
unanalyzedcall on java.util.TimerTask
unanalyzedcall on java.util.Timer:schedule
unanalyzedcall on java.util.ArrayList
unanalyzedcall on com.dmdirc.util.resourcemanager. ResourceManager:getResourcesStartingWith
unanalyzedcall on java.lang.String:replaceAll
unanalyzedcall on java.lang.String:replace
test_vectorjava.util.Iterator:hasNext(...)@84: {0}, {1}
test_vectorjava.util.Map:containsKey(...)@85: {1}, {0}









Prev Msg Next Msg
  null dereference
Medium Prob.
check that getPersistentClasses(...) != null
Prev Msg Next Msg










  call too complex - analysis skippedInfocall on Class loadClass(String)











method Class loadClass(String)
pre(soft) name != null
pre(soft) init'ed(com/dmdirc/plugins/PluginManager. me)
pre(soft) me != null
pre(soft) this.resourcesList != null
presumptiondata.length <= 232-1
presumptiongetPluginClassLoader(...).pluginInfo.url@111 != null
presumptiongetPluginClassLoader(...).pluginInfo@111 != null
presumptiongetPluginManager(...).knownPlugins != null
presumptionjava.util.Iterator:next(...)@111 != null
presumptionme.resourcesList@113 != null
presumptionpi.myClasses@111 != null
postcom/dmdirc/plugins/PluginManager.me == One-of{old com/dmdirc/plugins/PluginManager.me, &amp;new PluginManager(getPluginManager#1)}
postinit'ed(com/dmdirc/plugins/PluginManager.me)
postjava.lang.StringBuilder:toString(...)._tainted == 0
postinit'ed(me)
postinit'ed(return_value)
postnew GlobalClassLoader(getGlobalClassLoader#1) num objects == 0
postinit'ed(new GlobalClassLoader(getGlobalClassLoader# 1).resourcesList)
postnew HashMap(GlobalClassLoader#1) num objects == 0
postnew HashMap(PluginManager#2) num objects <= 1
postnew Hashtable(PluginManager#1) num objects <= 1
postnew PluginClassLoader(getSubClassLoader#1) num objects == 0, if init'ed
postnew PluginClassLoader(getSubClassLoader#1). pluginInfo == null
postnew PluginManager(getPluginManager#1) num objects <= 1
postinit'ed(new PluginManager(getPluginManager#1). knownPlugins)
postinit'ed(new PluginManager(getPluginManager#1). myDir)
postinit'ed(new PluginManager(getPluginManager#1). services)
unanalyzedcall on java.lang.ClassLoader
unanalyzedcall on java.util.HashMap
unanalyzedcall on com.dmdirc.plugins.GlobalClassLoader:findLo adedClass
unanalyzedcall on java.util.Map:get
unanalyzedcall on com.dmdirc.util.resourcemanager. ResourceManager:getResourceManager
unanalyzedcall on java.lang.String:replace
unanalyzedcall on com.dmdirc.util.resourcemanager. ResourceManager:resourceExists
unanalyzedcall on com.dmdirc.util.resourcemanager. ResourceManager:getResourceBytes
unanalyzedcall on java.lang.Throwable:__curr_excep_obj
unanalyzedcall on com.dmdirc.plugins.GlobalClassLoader:define Class
unanalyzedcall on java.lang.ClassLoader:loadClass
unanalyzedcall on getPluginManager
unanalyzedcall on getPluginInfos
unanalyzedcall on java.util.Collection:iterator
unanalyzedcall on getClassList
unanalyzedcall on java.util.List:contains
unanalyzedcall on getPluginClassLoader
unanalyzedcall on loadClass
unanalyzedcall on getPersistentClasses
unanalyzedcall on java.util.List:iterator
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on getFullFilename
unanalyzedcall on java.util.Map:put
unanalyzedcall on java.util.Hashtable
unanalyzedcall on java.lang.System:getProperty
unanalyzedcall on com.dmdirc.Main:getConfigDir
unanalyzedcall on com.dmdirc.actions.ActionManager:addListene r
unanalyzedcall on java.util.Map:values
unanalyzedcall on java.util.ArrayList
unanalyzedcall on java.lang.String:toLowerCase
unanalyzedcall on getName
unanalyzedcall on addError
unanalyzedcall on com.dmdirc.actions.ActionManager:processEve nt
unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
unanalyzedcall on java.lang.String:isEmpty
unanalyzedcall on java.util.List:remove
unanalyzedcall on com.dmdirc.util.ConfigFile:isFlatDomain
unanalyzedcall on com.dmdirc.util.ConfigFile:getFlatDomain
unanalyzedcall on getPluginInfoByName
unanalyzedcall on java.lang.String:equalsIgnoreCase
unanalyzedcall on unloadPlugin
unanalyzedcall on delProvider
unanalyzedcall on java.util.List:clear
unanalyzedcall on isUnloadable
unanalyzedcall on onUnload
unanalyzedcall on java.lang.Exception:getMessage
unanalyzedcall on java.lang.Exception:printStackTrace
unanalyzedcall on java.util.LinkedList
unanalyzedcall on java.io.File
unanalyzedcall on java.util.LinkedList:add
unanalyzedcall on java.util.LinkedList:isEmpty
unanalyzedcall on java.util.LinkedList:pop
unanalyzedcall on java.io.File:isDirectory
unanalyzedcall on java.io.File:listFiles
unanalyzedcall on java.io.File:isFile
unanalyzedcall on java.io.File:getName
unanalyzedcall on java.lang.String:endsWith
unanalyzedcall on java.io.File:getPath
unanalyzedcall on java.lang.String:length
unanalyzedcall on java.lang.String:substring
unanalyzedcall on addPlugin
unanalyzedcall on java.net.URL
unanalyzedcall on com.dmdirc.plugins.PluginInfo
unanalyzedcall on java.net.MalformedURLException:getMessage
unanalyzedcall on java.net.URL:getPath
unanalyzedcall on java.io.File:exists
unanalyzedcall on delPlugin
unanalyzedcall on com.dmdirc.updater.components. PluginComponent
unanalyzedcall on java.lang.Exception
unanalyzedcall on com.dmdirc.plugins.PluginException:getMessa ge
unanalyzedcall on java.util.Map:remove
unanalyzedcall on getPossiblePluginInfos
unanalyzedcall on com.dmdirc.plugins.PluginClassLoader:findLo adedClass
unanalyzedcall on com.dmdirc.plugins.PluginClassLoader:getPar ent
unanalyzedcall on getResourceManager
unanalyzedcall on isPersistent
unanalyzedcall on java.lang.NoClassDefFoundError:getMessage
unanalyzedcall on java.lang.ClassNotFoundException
unanalyzedcall on com.dmdirc.plugins.PluginClassLoader:define Class
unanalyzedcall on com.dmdirc.plugins.PluginClassLoader:resolv eClass
unanalyzedcall on java.util.List:add
unanalyzedcall on java.lang.String:matches
unanalyzedcall on java.util.Timer
unanalyzedcall on java.util.TimerTask
unanalyzedcall on java.util.Timer:schedule
unanalyzedcall on com.dmdirc.util.resourcemanager. ResourceManager:getResourcesStartingWith
unanalyzedcall on java.lang.String:replaceAll










method Class defineClass(String, byte[])
predata != null
predata.length <= 232-1
postinit'ed(return_value)









  method not available - call not analyzedInfocall on Class com.dmdirc.plugins.GlobalClassLoader: defineClass(String, byte[], int, int)











method byte[] getClassData(String)
pre(soft) classname != null
pre(soft) this.resourcesList != null
presumptioncom.dmdirc.util.resourcemanager.ResourceManager:get ResourceManager(...)@142 != null
postinit'ed(return_value)









  method not available - call not analyzedInfocall on ResourceManager com.dmdirc.util. resourcemanager.ResourceManager:getResourceManager( String)










  method not available - call not analyzedInfocall on bool com.dmdirc.util.resourcemanager. ResourceManager:resourceExists(String)










  method not available - call not analyzedInfocall on byte[] com.dmdirc.util.resourcemanager. ResourceManager:getResourceBytes(String)