Last Msg First Msg
























method com.dmdirc.ui.themes.Theme__static_init










method int compareTo(Object)
prethis.file != null
preinit'ed(this.metadata)
prex0 != null
prex0.file != null
preinit'ed(x0.metadata)
pre(soft) init'ed(this.metadata.automake)
pre(soft) this.metadata.domains != null
pre(soft) this.metadata.keydomains != null
pre(soft) init'ed(x0.metadata.automake)
pre(soft) x0.metadata.domains != null
pre(soft) x0.metadata.keydomains != null
postinit'ed(return_value)
unanalyzedcall on java.io.File:getName
unanalyzedcall on java.lang.String:length
unanalyzedcall on java.lang.String:substring
unanalyzedcall on getName
unanalyzedcall on java.lang.String:compareTo
unanalyzedcall on getMetaData
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on java.util.HashMap
unanalyzedcall on java.util.List:add
unanalyzedcall on java.util.Map:put
unanalyzedcall on java.util.Map:get










method void com.dmdirc.ui.themes.Theme(File)
postthis.file == file
postinit'ed(this.file)










method bool isValidTheme()
preinit'ed(this.rm)
pre(soft) this.file != null
pre(soft) this.rm.zipFile != null
presumptioninit'ed(com.dmdirc.logger.ErrorLevel.MEDIUM)
postinit'ed(return_value)
postthis.metadata == One-of{old this.metadata, &new ConfigFile(isValidTheme#2), null}
postpossibly_updated(this.metadata.lines)
postthis.rm == One-of{old this.rm, &new ZipResourceManager(getInstance#1)}
postinit'ed(this.rm)
postnew ArrayList(ConfigFile#1) num objects <= 1
postnew ArrayList(ZipResourceManager#2) num objects <= 1
postnew ArrayList(readLines#4) num objects == 0
postnew ConfigFile(isValidTheme#2) num objects <= 1
postinit'ed(new ConfigFile(isValidTheme#2).charset)
postnew ConfigFile(isValidTheme#2).domains == &amp;new ArrayList(ConfigFile#1)
postinit'ed(new ConfigFile(isValidTheme#2).file)
postnew ConfigFile(isValidTheme#2).flatdomains == &amp;new MapList(ConfigFile#2)
postinit'ed(new ConfigFile(isValidTheme#2).is)
postnew ConfigFile(isValidTheme#2).keydomains == &amp;new HashMap(ConfigFile#3)
postinit'ed(new ConfigFile(isValidTheme#2).lines)
postnew HashMap(ConfigFile#3) num objects <= 1
postnew HashMap(MapList#1) num objects <= 1
postnew MapList(ConfigFile#2) num objects <= 1
postnew MapList(ConfigFile#2).map == &amp;new HashMap(MapList#1)
postnew ZipFile(ZipResourceManager#1) num objects <= 1
postnew ZipResourceManager(getInstance#1) num objects <= 1
postnew ZipResourceManager(getInstance#1).entries == &amp;new ArrayList(ZipResourceManager#2)
postnew ZipResourceManager(getInstance#1).zipFile == &amp;new ZipFile(ZipResourceManager#1)
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on java.util.HashMap
unanalyzedcall on java.util.List:add
unanalyzedcall on java.util.Map:put
unanalyzedcall on java.util.Map:get
unanalyzedcall on java.util.zip.ZipFile:getEntry
unanalyzedcall on java.util.zip.ZipFile:getInputStream
unanalyzedcall on java.lang.Throwable:__curr_excep_obj
unanalyzedcall on java.util.zip.ZipFile
unanalyzedcall on java.util.ArrayList
unanalyzedcall on java.util.zip.ZipFile:entries
unanalyzedcall on java.util.Enumeration:hasMoreElements
unanalyzedcall on java.util.Enumeration:nextElement
unanalyzedcall on java.util.zip.ZipEntry:getName
unanalyzedcall on java.util.zip.ZipEntry:isDirectory
unanalyzedcall on java.nio.charset.Charset:forName
unanalyzedcall on java.lang.String:length
unanalyzedcall on java.lang.String:charAt
unanalyzedcall on java.util.List:iterator
unanalyzedcall on java.util.Map:clear
unanalyzedcall on java.util.List:clear
unanalyzedcall on java.io.FileInputStream
unanalyzedcall on java.io.InputStreamReader
unanalyzedcall on java.io.BufferedReader
unanalyzedcall on java.io.BufferedReader:readLine
unanalyzedcall on java.io.BufferedReader:close
unanalyzedcall on java.lang.String:isEmpty
unanalyzedcall on java.lang.String:substring
unanalyzedcall on java.lang.String:indexOf
unanalyzedcall on java.lang.String:endsWith
unanalyzedcall on java.util.List:contains
unanalyzedcall on java.lang.Exception
test_vectorthis.rm: Inverse{null}, Addr_Set{null}









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










Prev Msg Next Msg
  test always goes same way
Low Prob.
Test predetermined because this.rm != null
Prev Msg Next Msg











method void applyTheme()
pre(soft) init'ed(this.enabled)
pre(soft) init'ed(this.rm)
pre(soft) this.file != null
pre(soft) this.rm.zipFile != null
presumptioninit'ed(com.dmdirc.logger.ErrorLevel.MEDIUM)
presumptionthis.rm.zipFile@105 != null
postinit'ed(this.enabled)
postthis.identity == One-of{old this.identity, &amp;new ThemeIdentity(applyTheme#1)}
postthis.metadata == One-of{old this.metadata, &amp;new ConfigFile(isValidTheme#2), null}
postinit'ed(this.metadata.lines)
postthis.rm == One-of{old this.rm, &amp;new ZipResourceManager(getInstance#1)}
postinit'ed(this.rm)
postnew ArrayList(ConfigFile#1) num objects <= 1
postnew ConfigFile(isValidTheme#2) num objects == new ArrayList(ConfigFile#1) num objects
postnew HashMap(ConfigFile#3) num objects == new ArrayList(ConfigFile#1) num objects
postnew HashMap(MapList#1) num objects == new ArrayList(ConfigFile#1) num objects
postnew MapList(ConfigFile#2) num objects == new ArrayList(ConfigFile#1) num objects
postnew ArrayList(ZipResourceManager#2) num objects <= 1
postnew ZipFile(ZipResourceManager#1) num objects == new ArrayList(ZipResourceManager#2) num objects
postnew ZipResourceManager(getInstance#1) num objects == new ArrayList(ZipResourceManager#2) num objects
postnew ArrayList(readLines#4) num objects == 0
postinit'ed(new ConfigFile(isValidTheme#2).charset)
postnew ConfigFile(isValidTheme#2).domains == &amp;new ArrayList(ConfigFile#1)
postinit'ed(new ConfigFile(isValidTheme#2).file)
postnew ConfigFile(isValidTheme#2).flatdomains == &amp;new MapList(ConfigFile#2)
postinit'ed(new ConfigFile(isValidTheme#2).is)
postnew ConfigFile(isValidTheme#2).keydomains == &amp;new HashMap(ConfigFile#3)
postinit'ed(new ConfigFile(isValidTheme#2).lines)
postnew MapList(ConfigFile#2).map == &amp;new HashMap(MapList#1)
postnew ThemeIdentity(applyTheme#1) num objects <= 1
postinit'ed(new ThemeIdentity(applyTheme#1).myTarget)
postinit'ed(new ThemeIdentity(applyTheme#1).theme)
postnew ZipResourceManager(getInstance#1).entries == &amp;new ArrayList(ZipResourceManager#2)
postnew ZipResourceManager(getInstance#1).zipFile == &amp;new ZipFile(ZipResourceManager#1)
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on java.util.HashMap
unanalyzedcall on java.util.List:add
unanalyzedcall on java.util.Map:put
unanalyzedcall on java.util.Map:get
unanalyzedcall on java.util.zip.ZipFile:getEntry
unanalyzedcall on java.util.zip.ZipFile:getInputStream
unanalyzedcall on java.lang.Throwable:__curr_excep_obj
unanalyzedcall on com.dmdirc.config.Identity
unanalyzedcall on com.dmdirc.config.ConfigTarget:setTheme
unanalyzedcall on com.dmdirc.logger.Logger:userError
unanalyzedcall on java.io.IOException:getMessage
unanalyzedcall on java.io.File:getCanonicalPath
unanalyzedcall on java.util.zip.ZipFile
unanalyzedcall on java.util.ArrayList
unanalyzedcall on java.util.zip.ZipFile:entries
unanalyzedcall on java.util.Enumeration:hasMoreElements
unanalyzedcall on java.util.Enumeration:nextElement
unanalyzedcall on java.util.zip.ZipEntry:getName
unanalyzedcall on java.util.zip.ZipEntry:isDirectory
unanalyzedcall on java.nio.charset.Charset:forName
unanalyzedcall on java.lang.String:length
unanalyzedcall on java.lang.String:charAt
unanalyzedcall on java.util.List:iterator
unanalyzedcall on java.util.Map:clear
unanalyzedcall on java.util.List:clear
unanalyzedcall on java.io.FileInputStream
unanalyzedcall on java.io.InputStreamReader
unanalyzedcall on java.io.BufferedReader
unanalyzedcall on java.io.BufferedReader:readLine
unanalyzedcall on java.io.BufferedReader:close
unanalyzedcall on java.lang.String:isEmpty
unanalyzedcall on java.lang.String:substring
unanalyzedcall on java.lang.String:indexOf
unanalyzedcall on java.lang.String:endsWith
unanalyzedcall on java.util.List:contains
unanalyzedcall on java.lang.Exception
unanalyzedcall on java.io.File:getAbsolutePath
test_vectorthis.enabled: {0}, {1}









  method not available - call not analyzedInfocall on void com.dmdirc.config.IdentityManager:addI dentity(Identity)










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










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











method void removeTheme()
preinit'ed(this.rm)
pre(soft) init'ed(this.enabled)
pre(soft) this.file != null
pre(soft) init'ed(this.identity)
pre(soft) this.rm.zipFile != null
postinit'ed(this.enabled)
postthis.metadata == One-of{old this.metadata, &amp;new ConfigFile(isValidTheme#2), null}
postinit'ed(this.metadata.lines)
postthis.rm == One-of{old this.rm, &amp;new ZipResourceManager(getInstance#1)}
postinit'ed(this.rm)
postnew ArrayList(ConfigFile#1) num objects <= 1
postnew ConfigFile(isValidTheme#2) num objects == new ArrayList(ConfigFile#1) num objects
postnew HashMap(ConfigFile#3) num objects == new ArrayList(ConfigFile#1) num objects
postnew HashMap(MapList#1) num objects == new ArrayList(ConfigFile#1) num objects
postnew MapList(ConfigFile#2) num objects == new ArrayList(ConfigFile#1) num objects
postnew ArrayList(ZipResourceManager#2) num objects <= 1
postnew ZipFile(ZipResourceManager#1) num objects == new ArrayList(ZipResourceManager#2) num objects
postnew ZipResourceManager(getInstance#1) num objects == new ArrayList(ZipResourceManager#2) num objects
postnew ArrayList(readLines#4) num objects == 0
postinit'ed(new ConfigFile(isValidTheme#2).charset)
postnew ConfigFile(isValidTheme#2).domains == &amp;new ArrayList(ConfigFile#1)
postinit'ed(new ConfigFile(isValidTheme#2).file)
postnew ConfigFile(isValidTheme#2).flatdomains == &amp;new MapList(ConfigFile#2)
postinit'ed(new ConfigFile(isValidTheme#2).is)
postnew ConfigFile(isValidTheme#2).keydomains == &amp;new HashMap(ConfigFile#3)
postinit'ed(new ConfigFile(isValidTheme#2).lines)
postnew MapList(ConfigFile#2).map == &amp;new HashMap(MapList#1)
postnew ZipResourceManager(getInstance#1).entries == &amp;new ArrayList(ZipResourceManager#2)
postnew ZipResourceManager(getInstance#1).zipFile == &amp;new ZipFile(ZipResourceManager#1)
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on java.util.HashMap
unanalyzedcall on java.util.List:add
unanalyzedcall on java.util.Map:put
unanalyzedcall on java.util.Map:get
unanalyzedcall on java.util.zip.ZipFile:getEntry
unanalyzedcall on java.util.zip.ZipFile:getInputStream
unanalyzedcall on java.lang.Throwable:__curr_excep_obj
unanalyzedcall on com.dmdirc.logger.Logger:userError
unanalyzedcall on java.io.IOException:getMessage
unanalyzedcall on java.io.File:getCanonicalPath
unanalyzedcall on java.util.zip.ZipFile
unanalyzedcall on java.util.ArrayList
unanalyzedcall on java.util.zip.ZipFile:entries
unanalyzedcall on java.util.Enumeration:hasMoreElements
unanalyzedcall on java.util.Enumeration:nextElement
unanalyzedcall on java.util.zip.ZipEntry:getName
unanalyzedcall on java.util.zip.ZipEntry:isDirectory
unanalyzedcall on java.nio.charset.Charset:forName
unanalyzedcall on java.lang.String:length
unanalyzedcall on java.lang.String:charAt
unanalyzedcall on java.util.List:iterator
unanalyzedcall on java.util.Map:clear
unanalyzedcall on java.util.List:clear
unanalyzedcall on java.io.FileInputStream
unanalyzedcall on java.io.InputStreamReader
unanalyzedcall on java.io.BufferedReader
unanalyzedcall on java.io.BufferedReader:readLine
unanalyzedcall on java.io.BufferedReader:close
unanalyzedcall on java.lang.String:isEmpty
unanalyzedcall on java.lang.String:substring
unanalyzedcall on java.lang.String:indexOf
unanalyzedcall on java.lang.String:endsWith
unanalyzedcall on java.util.List:contains
unanalyzedcall on java.lang.Exception
unanalyzedcall on java.io.File:getAbsolutePath
test_vectorthis.enabled: {0}, {1}
test_vectorthis.identity: Inverse{null}, Addr_Set{null}









  method not available - call not analyzedInfocall on void com.dmdirc.config.IdentityManager:remo veIdentity(Identity)











method bool isEnabled()
preinit'ed(this.enabled)
postreturn_value == this.enabled
postinit'ed(return_value)










method String getFileName(bool)
prethis.file != null
presumptionjava.io.File:getName(...)@156 != null
postjava.lang.String:substring(...)._tainted == 0
postreturn_value != null
test_vectorincludeExtension: {1}, {0}










method String getFileName()
prethis.file != null
postjava.lang.String:substring(...)._tainted == 0
postreturn_value != null
unanalyzedcall on java.io.File:getName
unanalyzedcall on java.lang.String:length
unanalyzedcall on java.lang.String:substring










method String getName()
prethis.file != null
preinit'ed(this.metadata)
pre(soft) init'ed(this.metadata.automake)
pre(soft) this.metadata.domains != null
pre(soft) this.metadata.keydomains != null
postjava.lang.String:substring(...)._tainted == 0
postinit'ed(return_value)
unanalyzedcall on java.io.File:getName
unanalyzedcall on java.lang.String:length
unanalyzedcall on java.lang.String:substring
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on java.util.HashMap
unanalyzedcall on java.util.List:add
unanalyzedcall on java.util.Map:put
unanalyzedcall on java.util.Map:get










method String getVersion()
preinit'ed(this.metadata)
pre(soft) init'ed(this.metadata.automake)
pre(soft) this.metadata.domains != null
pre(soft) this.metadata.keydomains != null
postinit'ed(return_value)
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on java.util.HashMap
unanalyzedcall on java.util.List:add
unanalyzedcall on java.util.Map:put
unanalyzedcall on java.util.Map:get










method String getAuthor()
preinit'ed(this.metadata)
pre(soft) init'ed(this.metadata.automake)
pre(soft) this.metadata.domains != null
pre(soft) this.metadata.keydomains != null
postinit'ed(return_value)
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on java.util.HashMap
unanalyzedcall on java.util.List:add
unanalyzedcall on java.util.Map:put
unanalyzedcall on java.util.Map:get










method String getDescription()
preinit'ed(this.metadata)
pre(soft) init'ed(this.metadata.automake)
pre(soft) this.metadata.domains != null
pre(soft) this.metadata.keydomains != null
postinit'ed(return_value)
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on java.util.HashMap
unanalyzedcall on java.util.List:add
unanalyzedcall on java.util.Map:put
unanalyzedcall on java.util.Map:get










method int compareTo(Theme)
preo != null
preo.file != null
preinit'ed(o.metadata)
prethis.file != null
preinit'ed(this.metadata)
pre(soft) init'ed(o.metadata.automake)
pre(soft) o.metadata.domains != null
pre(soft) o.metadata.keydomains != null
pre(soft) init'ed(this.metadata.automake)
pre(soft) this.metadata.domains != null
pre(soft) this.metadata.keydomains != null
postinit'ed(return_value)
unanalyzedcall on java.io.File:getName
unanalyzedcall on java.lang.String:length
unanalyzedcall on java.lang.String:substring
unanalyzedcall on getMetaData
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on java.util.HashMap
unanalyzedcall on java.util.List:add
unanalyzedcall on java.util.Map:put
unanalyzedcall on java.util.Map:get









Prev Msg Next Msg
  null dereference
Medium Prob.
check that getName(...) != null
  unused assignment in callee
Low Prob.
Unused assignment to (java.lang.String:substring(.. .)._tainted) in getName
Prev Msg Next Msg











method String getMetaData(String, String)
preinit'ed(this.metadata)
pre(soft) init'ed(this.metadata.automake)
pre(soft) this.metadata.domains != null
pre(soft) this.metadata.keydomains != null
presumptionjava.util.Map:get(...)@236 != null
postinit'ed(return_value)
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on java.util.HashMap
unanalyzedcall on java.util.List:add
unanalyzedcall on java.util.Map:put
unanalyzedcall on java.util.Map:get
test_vectorthis.metadata: Addr_Set{null}, Inverse{null}
test_vectorjava.util.Map:containsKey(...)@226: {1}, {0}
test_vectorjava.util.Map:containsKey(...)@267: {0}, {1}