PluginManager.java


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


Filter Options
Annotation Kind:
pre
presumption
post
unanalyzed
test_vector


  • bool addPlugin(String)

  • Kind Annotation Text
    pre(soft) com.dmdirc.logger.ErrorManager__static_init. new Class[](ErrorManager__static_init#2)[...] != null
    pre(soft) com.dmdirc.logger.ErrorManager__static_init. new ErrorManager(ErrorManager__static_init#1). nextErrorID != null
    pre(soft) init'ed(com.dmdirc.logger.ErrorManager__ static_init.new ErrorManager(ErrorManager__static_i nit#1).logReports)
    pre(soft) init'ed(com.dmdirc.logger.ErrorManager__ static_init.new ErrorManager(ErrorManager__static_i nit#1).reportThread)
    pre(soft) init'ed(com.dmdirc.logger.ErrorManager__ static_init.new ErrorManager(ErrorManager__static_i nit#1).sendReports)
    pre(soft) init'ed(com.dmdirc.ui.FatalErrorDialog$4__ static_init.new int[](FatalErrorDialog$4__static_in it#1)[...])
    pre(soft) init'ed(com/dmdirc/logger/ProgramError. errorDir)
    prefilename != null
    prethis.knownPlugins != null
    presumptionjava.lang.String:isEmpty(...)@273 == 1
    presumptionpluginInfo.requirementsError@270 != null
    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, &new File(getErrorFile#1)}
    postinit'ed(com.dmdirc.logger.ErrorManager__static_ init.new ErrorManager(ErrorManager__static_init#1). reportThread)
    postinit'ed(com/dmdirc/logger/ProgramError.errorDir)
    postinit'ed(new ErrorReportingThread(sendError#1). queue)
    postinit'ed(return_value)
    postnew ErrorReportingThread(sendError#1) num objects == 0
    postnew File(getErrorFile#1) num objects <= 1
    unanalyzedcall on addError
    unanalyzedcall on com.dmdirc.Main:getConfigDir
    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.PluginInfo
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on com.dmdirc.util.ListenerList:get
    unanalyzedcall on equals
    unanalyzedcall on errorAdded
    unanalyzedcall on errorStatusChanged
    unanalyzedcall on fireErrorStatusChanged
    unanalyzedcall on getErrorManager
    unanalyzedcall on getReportStatus
    unanalyzedcall on getTrace
    unanalyzedcall on isReady
    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.Exception
    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:startsWith
    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.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.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: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
    test_vectorjava.io.File:exists(...)@258: {1}, {0}
    test_vectorjava.util.Map:containsKey(...)@254: {0}, {1}

  • void com.dmdirc.plugins.PluginManager()

  • Kind Annotation Text
    presumptioninit'ed(com.dmdirc.actions.CoreActionType.CLIENT_ PREFS_CLOSED)
    presumptioninit'ed(com.dmdirc.actions.CoreActionType.CLIENT_ PREFS_OPENED)
    postjava.lang.StringBuilder:toString(...)._tainted == 0
    postnew HashMap(PluginManager#2) num objects == 1
    postnew Hashtable(PluginManager#1) num objects == 1
    postthis.knownPlugins == &amp;new Hashtable(PluginManag er#1)
    postthis.myDir == &amp;java.lang.StringBuilder:toString (...)
    postthis.services == &amp;new HashMap(PluginManager#2)

  • com.dmdirc.plugins.PluginManager__static_init

  • Kind Annotation Text

  • bool delPlugin(String)

  • Kind Annotation Text
    prefilename != null
    prethis.knownPlugins != null
    presumptionjava.util.Map:get(...)@348 != null
    presumptionpluginInfo.children@300 != null
    presumptionpluginInfo.plugin@300 != null
    presumptionpluginInfo.provides@300 != null
    postinit'ed(java.lang.StringBuilder:toString(...)._ tainted)
    postinit'ed(new PluginClassLoader(getSubClassLoader#1) num objects)
    postinit'ed(return_value)
    postpossibly_updated(java.lang.StringBuilder:toString(. ..)._tainted)
    postpossibly_updated(new PluginClassLoader(getSubClassL oader#1).pluginInfo)
    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.String:toLowerCase
    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
    test_vectorjava.util.Map:containsKey(...)@296: {1}, {0}

  • void doAutoLoad()

  • Kind Annotation Text
    pre(soft) this.knownPlugins != null
    presumptioncom.dmdirc.config.ConfigManager:getOptionList(... )@219 != null
    presumptioncom.dmdirc.config.IdentityManager:getGlobalConfig(. ..)@219 != null
    presumptionjava.util.Iterator:next(...)@219 != null
    presumptionjava.util.Map:get(...)@348 != null
    unanalyzedcall on java.lang.String:toLowerCase
    unanalyzedcall on java.util.Map:get
    test_vectorjava.lang.String:charAt(...)@221: {35}, {0..34, 36..216-1}
    test_vectorjava.lang.String:isEmpty(...)@221: {1}, {0}
    test_vectorjava.util.Iterator:hasNext(...)@219: {0}, {1}
    test_vectorjava.util.Map:get(...)@348: Addr_Set{null}, Inverse{null}

  • List getAllServices()

  • Kind Annotation Text
    prethis.services != null
    presumptionjava.util.Iterator:next(...)@208 != null
    presumptionjava.util.Map:values(...)@208 != null
    postnew ArrayList(getAllServices#1) num objects == 1
    postreturn_value == &amp;new ArrayList(getAllServices#1 )
    test_vectorjava.util.Iterator:hasNext(...)@208: {0}, {1}

  • String getDirectory()

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

  • ExportedService getExportedService(String)

  • Kind Annotation Text
    pre(soft) com/dmdirc/plugins/GlobalClassLoader.me != null
    prethis.services != null
    presumptiongetServiceProvider(...).exports@181 != null
    postinit'ed(com/dmdirc/plugins/GlobalClassLoader.me)
    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#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 == One-of{&amp;new ExportedService(get ExportedService#1*), &amp;new ExportedService(getEx portedService#2*)}
    postreturn_value in Addr_Set{&amp;new ExportedService(g etExportedService#1*),&amp;new ExportedService(getE xportedService#2*),&amp;new ExportedService(getExpo rtedService#1*)}
    unanalyzedcall on activateServices
    unanalyzedcall on addError
    unanalyzedcall on checkRequirements
    unanalyzedcall on com.dmdirc.actions.ActionManager:processEve nt
    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 getService
    unanalyzedcall on isActive
    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.RuntimeException
    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.Throwable:getMessage
    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
    unanalyzedcall on loadPlugin
    unanalyzedcall on loadRequired
    unanalyzedcall on onLoad
    unanalyzedcall on unloadPlugin
    unanalyzedcall on updateProvides

  • PluginInfo getPluginInfo(String)

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

  • PluginInfo getPluginInfoByName(String)

  • Kind Annotation Text
    prethis.knownPlugins != null
    presumptionjava.util.Iterator:next(...)@358 != null
    postinit'ed(return_value)
    unanalyzedcall on com.dmdirc.util.ConfigFile:getKeyDomain
    unanalyzedcall on com.dmdirc.util.ConfigFile:isKeyDomain
    unanalyzedcall on java.util.ArrayList
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get
    unanalyzedcall on java.util.Map:values
    test_vectorjava.lang.String:equalsIgnoreCase(...)@359: {0}, {1}
    test_vectorjava.util.Iterator:hasNext(...)@358: {0}, {1}

  • Collection getPluginInfos()

  • Kind Annotation Text
    prethis.knownPlugins != null
    postnew ArrayList(getPluginInfos#1) num objects == 1
    postreturn_value == &amp;new ArrayList(getPluginInfos#1 )

  • PluginManager getPluginManager()

  • Kind Annotation Text
    preinit'ed(me)
    postjava.lang.StringBuilder:toString(...)._tainted == 0
    postme != null
    postme == One-of{old me, &amp;new PluginManager(getPlug inManager#1)}
    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) num objects == undefined
    postnew PluginClassLoader(getSubClassLoader#1). pluginInfo == null
    postnew PluginClassLoader(getSubClassLoader#1). pluginInfo == undefined
    postnew PluginManager(getPluginManager#1) num objects <= 1
    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)
    postreturn_value == me
    unanalyzedcall on com.dmdirc.Main:getConfigDir
    unanalyzedcall on com.dmdirc.actions.ActionManager:addListene r
    unanalyzedcall on java.lang.System:getProperty
    unanalyzedcall on java.util.HashMap
    unanalyzedcall on java.util.Hashtable
    test_vectorme: Inverse{null}, Addr_Set{null}

  • List getPossiblePluginInfos(bool)

  • Kind Annotation Text
    pre(soft) com.dmdirc.logger.ErrorManager__static_init. new Class[](ErrorManager__static_init#2)[...] != null
    pre(soft) com.dmdirc.logger.ErrorManager__static_init. new ErrorManager(ErrorManager__static_init#1). nextErrorID != null
    pre(soft) init'ed(com.dmdirc.logger.ErrorManager__ static_init.new ErrorManager(ErrorManager__static_i nit#1).logReports)
    pre(soft) init'ed(com.dmdirc.logger.ErrorManager__ static_init.new ErrorManager(ErrorManager__static_i nit#1).reportThread)
    pre(soft) init'ed(com.dmdirc.logger.ErrorManager__ static_init.new ErrorManager(ErrorManager__static_i nit#1).sendReports)
    pre(soft) init'ed(com.dmdirc.ui.FatalErrorDialog$4__ static_init.new int[](FatalErrorDialog$4__static_in it#1)[...])
    pre(soft) init'ed(com/dmdirc/logger/ProgramError. errorDir)
    pre(soft) this.knownPlugins != null
    pre(soft) this.myDir != null
    presumptionarr$.length@394 <= 232-1
    presumptionjava.io.File:getName(...)@397 != null
    presumptionjava.io.File:getPath(...)@398 != null
    presumptionjava.io.File:listFiles(...)@394 != null
    presumptionjava.util.Iterator:next(...)@416 != null
    presumptionjava.util.LinkedList:pop(...)@392 != null
    presumptionjava.util.Map:values(...)@416 != null
    presumptionpi.filename@416 != null
    presumptionpi.url@416 != null
    postinit'ed(com.dmdirc.logger.ErrorManager__static_ init.new ErrorManager(ErrorManager__static_init#1). reportThread)
    postinit'ed(com/dmdirc/logger/ProgramError.errorDir)
    postinit'ed(java.lang.StringBuilder:toString(...)._ tainted)
    postinit'ed(new ErrorReportingThread(sendError#1) num objects)
    postinit'ed(new ErrorReportingThread(sendError#1). queue)
    postinit'ed(new File(getErrorFile#1) num objects)
    postinit'ed(new PluginClassLoader(getSubClassLoader#1) num objects)
    postinit'ed(new PluginClassLoader(getSubClassLoader#1). pluginInfo)
    postnew ErrorReportingThread(sendError#1) num objects == 0, if init'ed
    postnew ErrorReportingThread(sendError#1) num objects == undefined
    postnew ErrorReportingThread(sendError#1).queue == null
    postnew ErrorReportingThread(sendError#1).queue == undefined
    postnew File(getErrorFile#1) num objects == new ErrorReportingThread(sendError#1) num objects
    postnew LinkedList(getPossiblePluginInfos#10) num objects == 1
    postpossibly_updated(java.lang.StringBuilder:toString(. ..)._tainted)
    postreturn_value == &amp;new LinkedList(getPossiblePlug inInfos#10)
    unanalyzedcall on addError
    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.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 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: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:startsWith
    unanalyzedcall on java.lang.String:toLowerCase
    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.URL:getPath
    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:iterator
    unanalyzedcall on java.util.List:remove
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get
    unanalyzedcall on java.util.Map:remove
    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_vectoraddPlugins: {0}, {1}
    test_vectorjava.io.File:exists(...)@417: {1}, {0}
    test_vectorjava.io.File:isDirectory(...)@393: {0}, {1}
    test_vectorjava.io.File:isFile(...)@397: {0}, {1}
    test_vectorjava.lang.String:endsWith(...)@397: {0}, {1}
    test_vectorjava.util.Iterator:hasNext(...)@416: {0}, {1}
    test_vectorjava.util.LinkedList:isEmpty(...)@391: {1}, {0}

  • Service getService(String, String)

  • Kind Annotation Text
    prethis.services != null
    postinit'ed(new Service(getService#1*).serviceproviders )
    postinit'ed(return_value)
    postnew ArrayList(Service#1) num objects == 0
    postnew Service(getService#1*) num objects == 0
    postnew Service(getService#3*) num objects == 0
    postnot_init'ed(new Service(getService#1*).name)
    postnot_init'ed(new Service(getService#1*).type)
    postnot_init'ed(new Service(getService#3*).name)
    postnot_init'ed(new Service(getService#3*). serviceproviders)
    postnot_init'ed(new Service(getService#3*).type)
    unanalyzedcall on java.util.ArrayList
    unanalyzedcall on java.util.HashMap
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get
    unanalyzedcall on java.util.Map:put

  • Service getService(String, String, bool)

  • Kind Annotation Text
    prethis.services != null
    presumptionjava.util.Map:get(...)@97 != null
    postinit'ed(new Service(getService#1).name)
    postinit'ed(new Service(getService#1).serviceproviders)
    postinit'ed(new Service(getService#1).type)
    postinit'ed(new Service(getService#3).name)
    postinit'ed(new Service(getService#3).type)
    postinit'ed(return_value)
    postnew ArrayList(Service#1) num objects <= 1
    postnew Service(getService#1) num objects <= 1
    postnew Service(getService#1).name == name
    postnew Service(getService#1).type == type
    postnew Service(getService#3) num objects <= 1
    postnew Service(getService#3).name == name
    postnew Service(getService#3).serviceproviders == &amp;new ArrayList(Service#1)
    postnew Service(getService#3).type == type
    unanalyzedcall on java.util.ArrayList
    test_vectorcreate: {0}, {1}
    test_vectorjava.util.Map:containsKey(...)@96: {0}, {1}
    test_vectorjava.util.Map:containsKey(...)@99: {0}, {1}

  • ServiceProvider getServiceProvider(String, String)

  • Kind Annotation Text
    prethis.services != null
    postreturn_value != null
    unanalyzedcall on activateServices
    unanalyzedcall on addError
    unanalyzedcall on checkRequirements
    unanalyzedcall on com.dmdirc.actions.ActionManager:processEve nt
    unanalyzedcall on getMainClass
    unanalyzedcall on getName
    unanalyzedcall on isActive
    unanalyzedcall on java.lang.RuntimeException
    unanalyzedcall on java.lang.Throwable:__curr_excep_obj
    unanalyzedcall on java.lang.Throwable:getMessage
    unanalyzedcall on java.util.ArrayList
    unanalyzedcall on java.util.HashMap
    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 loadClass
    unanalyzedcall on loadPlugin
    unanalyzedcall on loadRequired
    unanalyzedcall on onLoad
    unanalyzedcall on unloadPlugin
    unanalyzedcall on updateProvides

  • ServiceProvider getServiceProvider(String, List, bool)

  • Kind Annotation Text
    pre(soft) fallback == 1
    pre(soft) this.services != null
    prenames != null
    presumptionjava.util.List:get(...)@164 != null
    presumptionjava.util.List:size(...)@163 >= 1
    postreturn_value != null
    unanalyzedcall on activateServices
    unanalyzedcall on addError
    unanalyzedcall on checkRequirements
    unanalyzedcall on com.dmdirc.actions.ActionManager:processEve nt
    unanalyzedcall on getMainClass
    unanalyzedcall on getName
    unanalyzedcall on getService
    unanalyzedcall on isActive
    unanalyzedcall on java.lang.RuntimeException
    unanalyzedcall on java.lang.Throwable:__curr_excep_obj
    unanalyzedcall on java.lang.Throwable:getMessage
    unanalyzedcall on java.util.ArrayList
    unanalyzedcall on java.util.HashMap
    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.Map:values
    unanalyzedcall on loadClass
    unanalyzedcall on loadPlugin
    unanalyzedcall on loadRequired
    unanalyzedcall on onLoad
    unanalyzedcall on unloadPlugin
    unanalyzedcall on updateProvides
    test_vectorjava.util.Iterator:hasNext(...)@154: {0}, {1}

  • List getServicesByType(String)

  • Kind Annotation Text
    prethis.services != null
    presumptionjava.util.Map:get(...)@193 != null
    postnew ArrayList(getServicesByType#1) num objects <= 1
    postnew ArrayList(getServicesByType#2) num objects <= 1
    postreturn_value in Addr_Set{&amp;new ArrayList(getServ icesByType#2),&amp;new ArrayList(getServicesByType# 1)}
    test_vectorjava.util.Map:containsKey(...)@192: {0}, {1}

  • void processEvent(ActionType, StringBuffer, Object[])

  • Kind Annotation Text
    pre(soft) arguments != null
    pre(soft) arguments.length >= 1
    pre(soft) com.dmdirc.logger.ErrorManager__static_init. new Class[](ErrorManager__static_init#2)[...] != null
    pre(soft) com.dmdirc.logger.ErrorManager__static_init. new ErrorManager(ErrorManager__static_init#1). nextErrorID != null
    pre(soft) init'ed(arguments[0])
    pre(soft) init'ed(com.dmdirc.logger.ErrorManager__ static_init.new ErrorManager(ErrorManager__static_i nit#1).logReports)
    pre(soft) init'ed(com.dmdirc.logger.ErrorManager__ static_init.new ErrorManager(ErrorManager__static_i nit#1).reportThread)
    pre(soft) init'ed(com.dmdirc.logger.ErrorManager__ static_init.new ErrorManager(ErrorManager__static_i nit#1).sendReports)
    pre(soft) init'ed(com.dmdirc.ui.FatalErrorDialog$4__ static_init.new int[](FatalErrorDialog$4__static_in it#1)[...])
    pre(soft) init'ed(com/dmdirc/logger/ProgramError. errorDir)
    pre(soft) this.knownPlugins != null
    pretype != null
    presumptioninit'ed(com.dmdirc.actions.CoreActionType.CLIENT_ PREFS_CLOSED)
    presumptioninit'ed(com.dmdirc.actions.CoreActionType.CLIENT_ PREFS_OPENED)
    presumptionjava.util.Iterator:next(...)@458 != null
    presumptionjava.util.Iterator:next(...)@471 != null
    presumptionpi.children@471 != null
    presumptionpi.provides@471 != null
    postinit'ed(com.dmdirc.logger.ErrorManager__static_ init.new ErrorManager(ErrorManager__static_init#1). reportThread)
    postinit'ed(com/dmdirc/logger/ProgramError.errorDir)
    postinit'ed(java.lang.StringBuilder:toString(...)._ tainted)
    postinit'ed(new ErrorReportingThread(sendError#1) num objects)
    postinit'ed(new ErrorReportingThread(sendError#1). queue)
    postinit'ed(new File(getErrorFile#1) num objects)
    postinit'ed(new PluginClassLoader(getSubClassLoader#1) num objects)
    postinit'ed(new PluginClassLoader(getSubClassLoader#1). pluginInfo)
    postpossibly_updated(java.lang.StringBuilder:toString(. ..)._tainted)
    unanalyzedcall on addError
    unanalyzedcall on checkRequirements
    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.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 getMainClass
    unanalyzedcall on getName
    unanalyzedcall on getPluginInfoByName
    unanalyzedcall on getPluginManager
    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: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:startsWith
    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:getMessage
    unanalyzedcall on java.lang.Throwable:getStackTrace
    unanalyzedcall on java.lang.Throwable:toString
    unanalyzedcall on java.util.ArrayList
    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:iterator
    unanalyzedcall on java.util.List:remove
    unanalyzedcall on java.util.Map:containsKey
    unanalyzedcall on java.util.Map:get
    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 loadClass
    unanalyzedcall on loadPlugin
    unanalyzedcall on loadRequired
    unanalyzedcall on onLoad
    unanalyzedcall on onUnload
    unanalyzedcall on unloadPlugin
    unanalyzedcall on updateProvides
    test_vectorjava.lang.Object:equals(...)@457: {0}, {1}
    test_vectorjava.lang.Object:equals(...)@470: {0}, {1}
    test_vectorjava.util.Iterator:hasNext(...)@471: {0}, {1}
    test_vectorpi.tempLoaded@458: {0}, {1}

  • void reloadAllPlugins()

  • Kind Annotation Text
    prethis.knownPlugins != null
    presumptionjava.util.Iterator:next(...)@336 != null
    postjava.lang.StringBuilder:toString(...)._tainted == 0
    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
    unanalyzedcall on java.util.ArrayList
    unanalyzedcall on java.util.Map:values
    test_vectorjava.util.Iterator:hasNext(...)@336: {0}, {1}

  • bool reloadPlugin(String)

  • Kind Annotation Text
    pre(soft) init'ed(com.dmdirc.logger.ErrorManager__ static_init.new ErrorManager(ErrorManager__static_i nit#1).reportThread)
    pre(soft) init'ed(com/dmdirc/logger/ProgramError. errorDir)
    prefilename != null
    prethis.knownPlugins != null
    presumptionjava.util.Map:get(...)@348 != null
    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 == old com/dmdirc/logger/ProgramError.errorDir
    postinit'ed(java.lang.StringBuilder:toString(...)._ tainted)
    postinit'ed(new PluginClassLoader(getSubClassLoader#1) num objects)
    postinit'ed(return_value)
    postnew ErrorReportingThread(sendError#1) num objects == 0, if init'ed
    postnew ErrorReportingThread(sendError#1) num objects == undefined
    postnew ErrorReportingThread(sendError#1).queue == null
    postnew ErrorReportingThread(sendError#1).queue == undefined
    postnew File(getErrorFile#1) num objects == new ErrorReportingThread(sendError#1) num objects
    postpossibly_updated(java.lang.StringBuilder:toString(. ..)._tainted)
    postpossibly_updated(new PluginClassLoader(getSubClassL oader#1).pluginInfo)
    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.String:toLowerCase
    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 java.util.Map:remove
    unanalyzedcall on onUnload
    unanalyzedcall on unloadPlugin
    test_vectoraddPlugin(...)@322: {0}, {1}
    test_vectorjava.util.Map:containsKey(...)@316: {1}, {0}

  • void updateAutoLoad(PluginInfo)

  • Kind Annotation Text
    pre(soft) init'ed(plugin.tempLoaded)
    preinit'ed(plugin.plugin)
    preplugin != null
    presumptioncom.dmdirc.config.ConfigManager:getOptionList(... )@433 != null
    presumptioncom.dmdirc.config.IdentityManager:getConfigIdentity (...)@442 != null
    presumptioncom.dmdirc.config.IdentityManager:getGlobalConfig(. ..)@433 != null
    test_vector!(plugin.plugin == null) &amp; plugin.tempLoaded == 0: {0}, {1}
    test_vectorjava.util.List:contains(...)@436: {1}, {0}
    test_vectorjava.util.List:contains(...)@438: {0}, {1}