Last Msg First Msg
























method com.dmdirc.parser.irc.ClientInfo__static_init










method void com.dmdirc.parser.irc.ClientInfo(IRCParser, String)
presHostmask != null
postthis.lModeQueue == &new LinkedList(ClientInfo#2 )
postthis.myAwayReason == &""
postthis.sRealName == &""
postthis.myChannelClientInfos == &new Hashtable(ClientInfo#1)
postthis.myMap == &new HashMap(ClientInfo#3)
postthis.myParser == tParser
postinit'ed(this.myParser)
postthis.sHost == One-of{this.myAwayReason, undefined}
postthis.sHost in Addr_Set{null,&""}
postthis.sIdent == One-of{this.myAwayReason, undefined}
postthis.sIdent in Addr_Set{null,&""}
postthis.sNickname == undefined
postthis.sNickname == null
postnew HashMap(ClientInfo#3) num objects == 1
postnew Hashtable(ClientInfo#1) num objects == 1
postnew LinkedList(ClientInfo#2) num objects == 1
unanalyzedcall on java.lang.String:isEmpty
unanalyzedcall on java.lang.String:charAt
unanalyzedcall on java.lang.String:substring
unanalyzedcall on java.lang.String:split










method void setMap(Map)
postthis.myMap == newMap
postinit'ed(this.myMap)










method Map getMap()
preinit'ed(this.myMap)
postreturn_value == this.myMap
postinit'ed(return_value)










method bool isFake()
preinit'ed(this.bIsFake)
postreturn_value == this.bIsFake
postinit'ed(return_value)










method bool isServer()
prethis.sNickname != null
postinit'ed(return_value)










method ClientInfo setFake(bool)
postreturn_value == this
postreturn_value != null
postthis.bIsFake == newValue
postinit'ed(this.bIsFake)










method String parseHost(String)
presWho != null
postreturn_value == undefined
postreturn_value == null
unanalyzedcall on java.lang.String:isEmpty
unanalyzedcall on java.lang.String:charAt
unanalyzedcall on java.lang.String:substring
unanalyzedcall on java.lang.String:split










method String[] parseHostFull(String)
presWho != null
postreturn_value == &new String[](parseHostFull#1)
postnew String[](parseHostFull#1) num objects == 1
postreturn_value.length == 3
postreturn_value[0] == undefined
postreturn_value[0] == null
postreturn_value[1] == null
postreturn_value[2] == null
test_vectorjava.lang.String:charAt(...)@139: {0..57, 59..216-1}, {58}
test_vectorjava.lang.String:isEmpty(...)@139: {1}, {0}









Prev Msg Next Msg
  array index out of bounds
High Prob.
check that sTemp.length >= 2
  use of default init
Low Prob.
check if init'ed(sTemp.length)
  test always goes same way
Low Prob.
Test predetermined because sTemp.length == 0
  dead code
Low Prob.
Dead code here because sTemp.length == 0
Prev Msg Next Msg










Prev Msg Next Msg
  null dereference
Medium Prob.
check that not_init'ed(sTemp[0])
  use of default init
Low Prob.
check if init'ed(sTemp.length)
Prev Msg Next Msg










Prev Msg Next Msg
  array index out of bounds
High Prob.
check that sTemp.length >= 2
  use of default init
Low Prob.
check if init'ed(sTemp.length)
  test always goes same way
Low Prob.
Test predetermined because sTemp.length == 0
  dead code
Low Prob.
Dead code here because sTemp.length == 0
Prev Msg Next Msg










Prev Msg Next Msg
  use of default init
Low Prob.
check if init'ed(sTemp.length)
Prev Msg Next Msg











method void setUserBits(String, bool)
presHostmask != null
postthis.sHost == One-of{old this.sHost, &"", undefined}
postthis.sIdent == One-of{old this.sIdent, &"", undefined}
postthis.sNickname == One-of{old this.sNickname, undefined}
unanalyzedcall on java.lang.String:isEmpty
unanalyzedcall on java.lang.String:charAt
unanalyzedcall on java.lang.String:substring
unanalyzedcall on java.lang.String:split










method void setUserBits(String, bool, bool)
presHostmask != null
postthis.sHost == One-of{old this.sHost, &"", undefined}
postthis.sIdent == One-of{old this.sIdent, &"", undefined}
postthis.sNickname == One-of{old this.sNickname, undefined}
unanalyzedcall on java.lang.String:isEmpty
unanalyzedcall on java.lang.String:charAt
unanalyzedcall on java.lang.String:substring
unanalyzedcall on java.lang.String:split
test_vectorallowBlank: {0}, {1}
test_vectorbUpdateNick: {0}, {1}









Prev Msg Next Msg
  null dereference
High Prob.
check that sTemp[2] != null
Prev Msg Next Msg










Prev Msg Next Msg
  null dereference
High Prob.
check that sTemp[1] != null
Prev Msg Next Msg











method String toString()
preinit'ed(this.sHost)
preinit'ed(this.sIdent)
preinit'ed(this.sNickname)
postjava.lang.StringBuilder:toString(...)._tainted == this.sHost._tainted | this.sNickname._tainted | this.sIdent._tainted
postinit'ed(java.lang.StringBuilder:toString(...)._ tainted)
postreturn_value == &java.lang.StringBuilder:toStri ng(...)










method String getNickname()
preinit'ed(this.sNickname)
postreturn_value == this.sNickname
postinit'ed(return_value)










method String getIdent()
preinit'ed(this.sIdent)
postreturn_value == this.sIdent
postinit'ed(return_value)










method String getHost()
preinit'ed(this.sHost)
postreturn_value == this.sHost
postinit'ed(return_value)










method void setAwayState(bool)
postthis.bIsAway == bNewState
postinit'ed(this.bIsAway)
postthis.myAwayReason == One-of{old this.myAwayReason, &""}
test_vectorbNewState: {1}, {0}










method bool getAwayState()
preinit'ed(this.bIsAway)
postreturn_value == this.bIsAway
postinit'ed(return_value)










method String getAwayReason()
preinit'ed(this.myAwayReason)
postreturn_value == this.myAwayReason
postinit'ed(return_value)










method void setAwayReason(String)
postthis.myAwayReason == newValue
postinit'ed(this.myAwayReason)










method String getRealName()
preinit'ed(this.sRealName)
postreturn_value == this.sRealName
postinit'ed(return_value)










method void setRealName(String)
postthis.sRealName == newValue
postinit'ed(this.sRealName)










method void setUserMode(long)
postthis.nModes == nNewMode
postinit'ed(this.nModes)










method long getUserMode()
preinit'ed(this.nModes)
postreturn_value == this.nModes
postinit'ed(return_value)










method String getUserModeStr()
prethis.myParser != null
prethis.myParser.hUserModes != null
preinit'ed(this.nModes)
presumptionjava.util.Iterator:next(...)@274 != null
presumptionjava.util.Map:get(...)@275 != null
presumptionjava.util.Map:keySet(...)@274 != null
postjava.lang.StringBuilder:toString(...)._tainted == 0
postreturn_value == &java.lang.StringBuilder:toStri ng(...)
test_vectorjava.util.Iterator:hasNext(...)@274: {0}, {1}










method bool isOper()
prethis.myParser != null
prethis.myParser.hUserModes != null
preinit'ed(this.nModes)
postinit'ed(return_value)
unanalyzedcall on java.util.Map:keySet
unanalyzedcall on java.util.Set:iterator
unanalyzedcall on java.lang.Character:charValue
unanalyzedcall on java.lang.Character:valueOf
unanalyzedcall on java.util.Map:get
unanalyzedcall on java.lang.Long:longValue









Prev Msg Next Msg
  unused assignment in callee
Low Prob.
Unused assignment to (java.lang.StringBuilder:toStr ing(...)._tainted) in getUserModeStr
Prev Msg Next Msg











method void addChannelClientInfo(ChannelClientInfo)
precci != null
precci.myChannel != null
precci.myChannel.sName != null
preinit'ed(this.myParser.stringConverter)
prethis.myChannelClientInfos != null
prethis.myParser != null
pre(soft) this.myParser.stringConverter.lowercase != null
pre(soft) init'ed(this.myParser.stringConverter. lowercase[...])
postthis.myParser.stringConverter == One-of{old this.myParser.stringConverter, &new IRCStringConverter(getIRCStringConverter#1)}
postthis.myParser.stringConverter != null
postnew IRCStringConverter(getIRCStringConverter#1) num objects <= 1
postnew char[](IRCStringConverter#1) num objects == new IRCStringConverter(getIRCStringConverter#1) num objects
postnew char[](IRCStringConverter#2) num objects == new IRCStringConverter(getIRCStringConverter#1) num objects
postnew IRCStringConverter(getIRCStringConverter#1). limit == 4
postnew IRCStringConverter(getIRCStringConverter#1). lowercase == &amp;new char[](IRCStringConverter#1)
postnew IRCStringConverter(getIRCStringConverter#1). uppercase == &amp;new char[](IRCStringConverter#2)
postnew char[](IRCStringConverter#1).length == 127
postnew char[](IRCStringConverter#2).length == 127
postpossibly_updated(new char[](IRCStringConverter#1)[...])
postpossibly_updated(new char[](IRCStringConverter#2)[...])
unanalyzedcall on java.lang.String:toCharArray
unanalyzedcall on java.lang.String:length
unanalyzedcall on java.lang.String
test_vectorjava.util.Map:containsKey(...)@301: {1}, {0}










method void delChannelClientInfo(ChannelClientInfo)
precci != null
precci.myChannel != null
precci.myChannel.sName != null
preinit'ed(this.myParser.stringConverter)
prethis.myChannelClientInfos != null
prethis.myParser != null
pre(soft) this.myParser.stringConverter.lowercase != null
pre(soft) init'ed(this.myParser.stringConverter. lowercase[...])
postthis.myParser.stringConverter == One-of{old this.myParser.stringConverter, &amp;new IRCStringConverter(getIRCStringConverter#1)}
postthis.myParser.stringConverter != null
postnew IRCStringConverter(getIRCStringConverter#1) num objects <= 1
postnew char[](IRCStringConverter#1) num objects == new IRCStringConverter(getIRCStringConverter#1) num objects
postnew char[](IRCStringConverter#2) num objects == new IRCStringConverter(getIRCStringConverter#1) num objects
postnew IRCStringConverter(getIRCStringConverter#1). limit == 4
postnew IRCStringConverter(getIRCStringConverter#1). lowercase == &amp;new char[](IRCStringConverter#1)
postnew IRCStringConverter(getIRCStringConverter#1). uppercase == &amp;new char[](IRCStringConverter#2)
postnew char[](IRCStringConverter#1).length == 127
postnew char[](IRCStringConverter#2).length == 127
postpossibly_updated(new char[](IRCStringConverter#1)[...])
postpossibly_updated(new char[](IRCStringConverter#2)[...])
unanalyzedcall on java.lang.String:toCharArray
unanalyzedcall on java.lang.String:length
unanalyzedcall on java.lang.String
test_vectorjava.util.Map:containsKey(...)@313: {0}, {1}










method bool checkVisibility()
prethis.myChannelClientInfos != null
postinit'ed(return_value)










method int channelCount()
prethis.myChannelClientInfos != null
postinit'ed(return_value)










method List getChannelClients()
prethis.myChannelClientInfos != null
presumptionjava.util.Map:values(...)@343 != null
postreturn_value == &amp;new ArrayList(getChannelClient s#1)
postnew ArrayList(getChannelClients#1) num objects == 1
test_vectorjava.util.Iterator:hasNext(...)@343: {0}, {1}










method void alterMode(bool, Character)
preinit'ed(this.bIsFake)
pre(soft) init'ed(this.myParser.stringConverter)
pre(soft) this.lModeQueue != null
pre(soft) this.myParser != null
pre(soft) this.myParser.cMyself != null
pre(soft) init'ed(this.myParser.currentSocketState)
pre(soft) this.myParser.h005Info != null
pre(soft) this.myParser.hChanModesOther != null
pre(soft) this.myParser.hChannelList != null
pre(soft) this.myParser.hUserModes != null
pre(soft) this.myParser.myCallbackManager != null
pre(soft) this.myParser.myCallbackManager. callbackHash != null
pre(soft) init'ed(this.myParser.out)
pre(soft) init'ed(this.sNickname)
postinit'ed(java.lang.String:substring(...)._tainted)
postpossibly_updated(this...myAwayReason)
postthis.myParser.stringConverter == One-of{old this.myParser.stringConverter, &amp;new IRCStringConverter(getIRCStringConverter#1)}
postinit'ed(this.myParser.stringConverter)
postnew IRCStringConverter(getIRCStringConverter#1) num objects <= 1
postinit'ed(new IRCStringConverter(getIRCStringConverte r#1).limit)
postinit'ed(new IRCStringConverter(getIRCStringConverte r#1).lowercase)
postinit'ed(new IRCStringConverter(getIRCStringConverte r#1).uppercase)
postnew char[](IRCStringConverter#1) num objects <= 1
postinit'ed(new char[](IRCStringConverter#1).length)
postpossibly_updated(new char[](IRCStringConverter#1)[...])
postnew char[](IRCStringConverter#2) num objects <= 1
postinit'ed(new char[](IRCStringConverter#2).length)
postpossibly_updated(new char[](IRCStringConverter#2)[...])
unanalyzedcall on java.lang.String:charAt
unanalyzedcall on java.util.List:clear
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on java.lang.String:toLowerCase
unanalyzedcall on java.lang.RuntimeException
unanalyzedcall on java.util.Map:get
unanalyzedcall on call
unanalyzedcall on callDebugInfo
unanalyzedcall on java.lang.String:format
unanalyzedcall on java.lang.Integer:valueOf
unanalyzedcall on java.util.List:size
unanalyzedcall on java.lang.String:toCharArray
unanalyzedcall on java.lang.String:length
unanalyzedcall on java.lang.String
unanalyzedcall on java.util.List:isEmpty
unanalyzedcall on java.util.List:get
unanalyzedcall on java.lang.String:indexOf
unanalyzedcall on java.lang.String:substring
unanalyzedcall on java.lang.String:split
unanalyzedcall on java.lang.Throwable:__curr_excep_obj
unanalyzedcall on java.lang.String:equalsIgnoreCase
unanalyzedcall on java.lang.Character:valueOf
unanalyzedcall on java.lang.Byte:byteValue
unanalyzedcall on doSendString
unanalyzedcall on java.lang.Boolean:valueOf
unanalyzedcall on java.io.PrintWriter:printf
unanalyzedcall on setAwayReason
unanalyzedcall on java.util.LinkedList
unanalyzedcall on getListModeQueue
unanalyzedcall on java.util.LinkedList:contains
unanalyzedcall on java.util.Queue:offer
unanalyzedcall on java.util.LinkedList:offer
unanalyzedcall on java.lang.System:currentTimeMillis
test_vectorthis.bIsFake: {0}, {1}
test_vectorjava.util.List:contains(...)@373: {0}, {1}
test_vectorjava.util.List:contains(...)@376: {0}, {1}
test_vectorjava.util.Map:containsKey(...)@363: {0}, {1}
test_vectorjava.util.Map:containsKey(...)@371: {1}, {0}









Prev Msg Next Msg
  unused assignment
Low Prob.
Unused assignment into modestr
Prev Msg Next Msg











method void sendModes()
prethis.lModeQueue != null
pre(soft) init'ed(this.myParser.stringConverter)
pre(soft) this.myParser != null
pre(soft) this.myParser.cMyself != null
pre(soft) init'ed(this.myParser.currentSocketState)
pre(soft) this.myParser.hChanModesOther != null
pre(soft) this.myParser.hChannelList != null
pre(soft) this.myParser.myCallbackManager != null
pre(soft) this.myParser.myCallbackManager. callbackHash != null
pre(soft) init'ed(this.myParser.out)
pre(soft) init'ed(this.sNickname)
presumptionjava.util.List:get(...)@398 != null
postinit'ed(java.lang.String:substring(...)._tainted)
postpossibly_updated(this...myAwayReason)
postthis.myParser.stringConverter == One-of{old this.myParser.stringConverter, &amp;new IRCStringConverter(getIRCStringConverter#1)}
postinit'ed(this.myParser.stringConverter)
postnew IRCStringConverter(getIRCStringConverter#1) num objects <= 1
postinit'ed(new IRCStringConverter(getIRCStringConverte r#1).limit)
postinit'ed(new IRCStringConverter(getIRCStringConverte r#1).lowercase)
postinit'ed(new IRCStringConverter(getIRCStringConverte r#1).uppercase)
postnew char[](IRCStringConverter#1) num objects <= 1
postinit'ed(new char[](IRCStringConverter#1).length)
postpossibly_updated(new char[](IRCStringConverter#1)[...])
postnew char[](IRCStringConverter#2) num objects <= 1
postinit'ed(new char[](IRCStringConverter#2).length)
postpossibly_updated(new char[](IRCStringConverter#2)[...])
unanalyzedcall on java.util.List:clear
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on java.lang.String:toLowerCase
unanalyzedcall on java.lang.RuntimeException
unanalyzedcall on java.util.Map:get
unanalyzedcall on call
unanalyzedcall on callDebugInfo
unanalyzedcall on java.lang.String:format
unanalyzedcall on java.lang.Integer:valueOf
unanalyzedcall on java.lang.String:toCharArray
unanalyzedcall on java.lang.String:length
unanalyzedcall on java.lang.String
unanalyzedcall on java.lang.String:indexOf
unanalyzedcall on java.lang.String:substring
unanalyzedcall on java.lang.String:split
unanalyzedcall on java.lang.Throwable:__curr_excep_obj
unanalyzedcall on java.lang.String:equalsIgnoreCase
unanalyzedcall on java.lang.Character:valueOf
unanalyzedcall on java.lang.Byte:byteValue
unanalyzedcall on doSendString
unanalyzedcall on java.lang.Boolean:valueOf
unanalyzedcall on java.lang.String:charAt
unanalyzedcall on java.io.PrintWriter:printf
unanalyzedcall on setAwayReason
unanalyzedcall on java.util.LinkedList
unanalyzedcall on getListModeQueue
unanalyzedcall on java.util.LinkedList:contains
unanalyzedcall on java.util.Queue:offer
unanalyzedcall on java.util.LinkedList:offer
unanalyzedcall on java.lang.System:currentTimeMillis
test_vectorjava.lang.String:charAt(...)@399: {0..42, 44..216-1}, {43}
test_vectorjava.lang.StringBuilder:length(...)@406: {-231..0}, {1..232-1}
test_vectorjava.lang.StringBuilder:length(...)@407: {-231..0}, {1..232-1}
test_vectorjava.util.List:isEmpty(...)@391: {0}, {1}










method void clearModeQueue()
prethis.lModeQueue != null










method IRCParser getParser()
postreturn_value == this.myParser
postinit'ed(return_value)