Last Msg First Msg
























method com.dmdirc.parser.irc.ProcessMode__static_init










method void process(String, String[])
presParam != null
pretoken != null
pre(soft) this.myParser.nNextKeyUser in {-4_611_686_018_427_387_904..9_223_372_036_854_775 _807}
pre(soft) init'ed(this.myParser.stringConverter)
pre(soft) this.myParser != null
pre(soft) this.myParser.cMyself != null
pre(soft) init'ed(this.myParser.cMyself.bIsFake)
pre(soft) init'ed(this.myParser.cMyself.sNickname)
pre(soft) this.myParser.hChanPrefix != null
pre(soft) this.myParser.hChannelList != null
pre(soft) this.myParser.hClientList != null
pre(soft) this.myParser.hUserModes != null
pre(soft) init'ed(this.myParser.lastLine)
pre(soft) this.myParser.myCallbackManager != null
pre(soft) this.myParser.myCallbackManager. callbackHash != null
pre(soft) init'ed(this.myParser.sThinkNickname)
pre(soft) this.myParser.stringConverter.lowercase != null
pre(soft) init'ed(this.myParser.stringConverter. lowercase[...])
pre(soft) token.length in {5..232}
pre(soft) init'ed(token[0])
pre(soft) token[...] != null
pre(soft) token[2] != null
pre(soft) token[3] != null
presumptionthis.myParser.stringConverter.lowercase != null
postthis.myParser.nNextKeyCMBool == old this.myParser.nNextKeyCMBool
postthis.myParser.nNextKeyUser <= 18_446_744_073_709_55 1_614
postinit'ed(this.myParser.stringConverter)
postnew IRCStringConverter(getIRCStringConverter#1) num objects == undefined
postnew IRCStringConverter(getIRCStringConverter#1) num objects == 0, if init'ed
postnew IRCStringConverter(getIRCStringConverter#1). limit == new IRCStringConverter(getIRCStringConvert er#1) num objects
postnew char[](IRCStringConverter#1) num objects == new IRCStringConverter(getIRCStringConverter#1) num objects
postnew char[](IRCStringConverter#1).length == new IRCStringConverter(getIRCStringConverter#1) num objects
postnew char[](IRCStringConverter#1)[...] == new IRCStringConverter(getIRCStringConverter#1) num objects
postnew char[](IRCStringConverter#2) num objects == new IRCStringConverter(getIRCStringConverter#1) num objects
postnew char[](IRCStringConverter#2).length == new IRCStringConverter(getIRCStringConverter#1) num objects
postnew char[](IRCStringConverter#2)[...] == new IRCStringConverter(getIRCStringConverter#1) num objects
postnew IRCStringConverter(getIRCStringConverter#1) num objects <= 1
postnew IRCStringConverter(getIRCStringConverter#1) num objects == 0
postinit'ed(new IRCStringConverter(getIRCStringConverte r#1).limit)
postnew IRCStringConverter(getIRCStringConverter#1). lowercase == undefined
postnew IRCStringConverter(getIRCStringConverter#1). lowercase == null
postnew IRCStringConverter(getIRCStringConverter#1). uppercase == new IRCStringConverter(getIRCStringCon verter#1).lowercase
postinit'ed(new IRCStringConverter(getIRCStringConverte r#1).lowercase)
postinit'ed(new IRCStringConverter(getIRCStringConverte r#1).uppercase)
postnew char[](IRCStringConverter#1) num objects <= 1
postnew char[](IRCStringConverter#1) num objects == 0
postinit'ed(new char[](IRCStringConverter#1).length)
postpossibly_updated(new char[](IRCStringConverter#1)[...])
postnew char[](IRCStringConverter#2) num objects <= 1
postnew char[](IRCStringConverter#2) num objects == 0
postinit'ed(new char[](IRCStringConverter#2).length)
postpossibly_updated(new char[](IRCStringConverter#2)[...])
unanalyzedcall on java.lang.String:equals
unanalyzedcall on getCallbackManager
unanalyzedcall on getCallbackType
unanalyzedcall on java.lang.String:length
unanalyzedcall on java.lang.String:charAt
unanalyzedcall on java.lang.Character:valueOf
unanalyzedcall on java.lang.Character:equals
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on java.util.Map:get
unanalyzedcall on java.lang.Long:longValue
unanalyzedcall on getLastLine
unanalyzedcall on callErrorInfo
unanalyzedcall on java.lang.Long:valueOf
unanalyzedcall on java.lang.Boolean:valueOf
unanalyzedcall on callDebugInfo
unanalyzedcall on getClientInfo
unanalyzedcall on java.util.Map:put
unanalyzedcall on call
unanalyzedcall on getUserMode
unanalyzedcall on setUserMode
unanalyzedcall on java.lang.String:toLowerCase
unanalyzedcall on java.lang.RuntimeException
unanalyzedcall on java.lang.String:toCharArray
unanalyzedcall on java.lang.String
unanalyzedcall on java.lang.String:isEmpty
unanalyzedcall on java.lang.String:substring
unanalyzedcall on java.lang.String:split
unanalyzedcall on parseHost
unanalyzedcall on java.lang.String:format
unanalyzedcall on getNickname
unanalyzedcall on isValidChannelName
unanalyzedcall on java.lang.Throwable:__curr_excep_obj
unanalyzedcall on java.lang.Integer:valueOf
unanalyzedcall on isFake
unanalyzedcall on java.util.Map:isEmpty
test_vectorjava.lang.String:equals(...)@42: {0}, {1}
test_vectorjava.lang.String:equals(...)@46: {0}, {1}









  call too complex - analysis skippedInfocall on void processChanMode(String, String[], String[], String)











method String trim(String)
prestr != null
postreturn_value != null










method void processChanMode(String, String[], String[], String)
presChannelName != null
presParam != null
prethis.myParser.hChannelList != null
pre(soft) this.myParser.nNextKeyCMBool in {-4_611_686_018_427_387_904..9_223_372_036_854_775 _807}
pre(soft) init'ed(this.myParser.stringConverter)
pre(soft) sModestr != null
pre(soft) sModestr.length in {1..232-1}
pre(soft) sModestr[0] != null
pre(soft) sModestr[...] != null
pre(soft) this.myParser != null
pre(soft) this.myParser.hChanModesBool != null
pre(soft) this.myParser.hChanModesOther != null
pre(soft) this.myParser.hClientList != null
pre(soft) this.myParser.hPrefixModes != null
pre(soft) init'ed(this.myParser.lastLine)
pre(soft) this.myParser.myCallbackManager != null
pre(soft) this.myParser.myCallbackManager. callbackHash != null
pre(soft) this.myParser.stringConverter.lowercase != null
pre(soft) init'ed(this.myParser.stringConverter. lowercase[...])
pre(soft) token != null
pre(soft) token.length >= 1
pre(soft) token[0] != null
presumptiongetClient(...).sHost@108 != null
presumptioniChannel.hChannelUserList != null
presumptioniChannel.hListModes != null
presumptioniChannel.hParamModes != null
presumptioniChannel.myParser != null
presumptioniChannel.myParser.h005Info != null
presumptioniChannel.myParser.hChanModesOther != null
presumptioniChannel.myParser.sNetworkName@108 != null
presumptioniChannel.myParser.stringConverter.lowercase != null
presumptioniChannel.myParser.stringConverter.lowercase. length@108 >= 1
presumptioniChannel.myParser.stringConverter.lowercase@108 != null
presumptioniChannel.sName != null
presumptioniClient.myChannelClientInfos != null
presumptioniClient.myParser != null
presumptionjava.lang.Character:valueOf(...)@116 != null
presumptionjava.lang.String:length(...)@115 <= 232-2
presumptionjava.lang.String:length(...)@115 - sModestr.length in {-232+1..-1, 232-3}
presumptionjava.util.Calendar:getInstance(...)@175 != null
presumptionjava.util.Map:get(...)@123 != null
presumptionjava.util.Map:get(...)@124 != null
presumptionjava.util.Map:get(...)@131 != null
presumptionsetterCCI.cClient@108 != null
presumptionthis.myParser.stringConverter.lowercase != null
presumptionthis.myParser.stringConverter.lowercase@133 != null
postthis.myParser.nNextKeyCMBool <= 18_446_744_073_709_ 551_614
postinit'ed(this.myParser.stringConverter)
postnew IRCStringConverter(getIRCStringConverter#1) num objects == 0
postinit'ed(new IRCStringConverter(getIRCStringConverte r#1) num objects)
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
postinit'ed(new IRCStringConverter(getIRCStringConverte r#1).limit)
postnew IRCStringConverter(getIRCStringConverter#1). limit == 4
postinit'ed(new IRCStringConverter(getIRCStringConverte r#1).lowercase)
postnew IRCStringConverter(getIRCStringConverter#1). lowercase == &amp;new char[](IRCStringConverter#1)
postinit'ed(new IRCStringConverter(getIRCStringConverte r#1).uppercase)
postnew IRCStringConverter(getIRCStringConverter#1). uppercase == &amp;new char[](IRCStringConverter#2)
postnew char[](IRCStringConverter#1) num objects == 0
postinit'ed(new char[](IRCStringConverter#1) num objects)
postinit'ed(new char[](IRCStringConverter#1).length)
postnew char[](IRCStringConverter#1).length == 127
postnew char[](IRCStringConverter#2).length == 127
postinit'ed(new char[](IRCStringConverter#1)[...])
postpossibly_updated(new char[](IRCStringConverter#1)[...])
postnew char[](IRCStringConverter#2) num objects == 0
postinit'ed(new char[](IRCStringConverter#2) num objects)
postinit'ed(new char[](IRCStringConverter#2).length)
postinit'ed(new char[](IRCStringConverter#2)[...])
postpossibly_updated(new char[](IRCStringConverter#2)[...])
unanalyzedcall on java.lang.String:trim
unanalyzedcall on getCallbackManager
unanalyzedcall on getCallbackType
unanalyzedcall on getClient
unanalyzedcall on java.lang.String:isEmpty
unanalyzedcall on java.lang.String:charAt
unanalyzedcall on java.lang.String:substring
unanalyzedcall on call
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 getChannelInfo
unanalyzedcall on java.lang.String:toCharArray
unanalyzedcall on java.lang.String:length
unanalyzedcall on java.lang.String
unanalyzedcall on com.dmdirc.parser.irc.ChannelClientInfo
unanalyzedcall on getUser
unanalyzedcall on java.lang.String:split
unanalyzedcall on parseHost
unanalyzedcall on java.util.Hashtable
unanalyzedcall on java.util.LinkedList
unanalyzedcall on java.util.HashMap
unanalyzedcall on java.lang.String:format
unanalyzedcall on callDebugInfo
unanalyzedcall on getClientInfo
unanalyzedcall on getNickname
unanalyzedcall on java.util.Map:put
unanalyzedcall on java.util.Map:values
unanalyzedcall on java.util.Collection:iterator
unanalyzedcall on java.lang.Byte:byteValue
unanalyzedcall on java.util.ArrayList
unanalyzedcall on java.lang.Character:charValue
unanalyzedcall on java.lang.Character:valueOf
unanalyzedcall on java.lang.String:matches
unanalyzedcall on java.lang.String:equalsIgnoreCase
unanalyzedcall on java.lang.String:equals
unanalyzedcall on java.util.ArrayList:size
unanalyzedcall on java.util.ArrayList:get
unanalyzedcall on java.util.ArrayList:remove
unanalyzedcall on java.util.ArrayList:add
unanalyzedcall on java.util.Map:remove
unanalyzedcall on java.lang.Throwable:__curr_excep_obj
unanalyzedcall on getChannel
unanalyzedcall on getName
unanalyzedcall on java.lang.Integer:valueOf
test_vectorsModestr.length: {2..232-1}, {1}
test_vectorjava.lang.Byte:byteValue(...)@124: {1}, {-128..-1, 4..255}
test_vectorjava.lang.Character:equals(...)@120: {0}, {1}
test_vectorjava.lang.Character:equals(...)@121: {0}, {1}
test_vectorjava.lang.String:equals(...)@106: {1}, {0}
test_vectorjava.lang.String:equals(...)@209: {0}, {1}
test_vectorjava.lang.String:equals(...)@93: {1}, {0}
test_vectorjava.lang.String:isEmpty(...)@111: {0}, {1}
test_vectorjava.lang.String:length(...)@115: {232-2}, {0}
test_vectorjava.lang.String:length(...)@115 - sModestr. length: {-232+2..-1}, {232-3}
test_vectorjava.util.Map:containsKey(...)@123: {0}, {1}
test_vectorjava.util.Map:containsKey(...)@124: {0}, {1}
test_vectorjava.util.Map:containsKey(...)@125: {0}, {1}









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










Prev Msg Next Msg
  array index out of bounds
Medium Prob.
check that nParam < sModestr.length
Prev Msg Next Msg










Prev Msg Next Msg
  precondition failure
High Prob.
com/dmdirc/parser/irc/IRCParser.addClient: client.sNickname != null
Prev Msg Next Msg










Prev Msg Next Msg
  array index out of bounds
Medium Prob.
check that nParam < sModestr.length
Prev Msg Next Msg










  call too complex - analysis skippedInfocall on bool call(Object[])










Prev Msg Next Msg
  array index out of bounds
Medium Prob.
check that nParam < sModestr.length
Prev Msg Next Msg










  call too complex - analysis skippedInfocall on bool call(Object[])










Prev Msg Next Msg
  array index out of bounds
Medium Prob.
check that nParam < sModestr.length
Prev Msg Next Msg










  call too complex - analysis skippedInfocall on bool call(Object[])










  call too complex - analysis skippedInfocall on bool call(Object[])











method void processUserMode(String, String[], String[], bool)
preinit'ed(this.myParser.stringConverter)
prethis.myParser.hClientList != null
pretoken != null
pretoken.length >= 3
pretoken[2] != null
pre(soft) this.myParser.nNextKeyUser in {-4_611_686_018_427_387_904..9_223_372_036_854_775 _807}
pre(soft) sModestr != null
pre(soft) sModestr.length >= 1
pre(soft) sModestr[0] != null
pre(soft) sParam != null
pre(soft) this.myParser != null
pre(soft) this.myParser.hUserModes != null
pre(soft) init'ed(this.myParser.lastLine)
pre(soft) this.myParser.myCallbackManager != null
pre(soft) this.myParser.myCallbackManager. callbackHash != null
pre(soft) this.myParser.stringConverter.lowercase != null
pre(soft) init'ed(this.myParser.stringConverter. lowercase[...])
pre(soft) init'ed(token[0])
presumptionjava.lang.Character:valueOf(...)@237 != null
presumptionjava.util.Map:get(...)@242 != null
postthis.myParser.nNextKeyUser <= 18_446_744_073_709_55 1_614
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 getCallbackManager
unanalyzedcall on getCallbackType
unanalyzedcall on callErrorInfo
unanalyzedcall on call
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 java.lang.String:toCharArray
unanalyzedcall on java.lang.String:length
unanalyzedcall on java.lang.String
unanalyzedcall on java.lang.String:isEmpty
unanalyzedcall on java.lang.String:charAt
unanalyzedcall on java.lang.String:substring
unanalyzedcall on java.lang.String:split
unanalyzedcall on parseHost
unanalyzedcall on java.lang.String:format
unanalyzedcall on callDebugInfo
unanalyzedcall on getClientInfo
unanalyzedcall on java.lang.Integer:valueOf
test_vectorclearOldModes: {0}, {1}
test_vectorjava.lang.Character:equals(...)@238: {0}, {1}
test_vectorjava.lang.Character:equals(...)@239: {0}, {1}
test_vectorjava.lang.String:equals(...)@258: {0}, {1}
test_vectorjava.util.Map:containsKey(...)@242: {0}, {1}










method bool callChannelModeChanged(ChannelInfo, ChannelClientInfo, String, String)
prethis.myParser != null
prethis.myParser.myCallbackManager != null
prethis.myParser.myCallbackManager.callbackHash != null
presumptiongetCallbackManager(...)@276 init'ed
postinit'ed(return_value)
unanalyzedcall on getCallbackManager
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on java.lang.String:toLowerCase
unanalyzedcall on java.lang.RuntimeException
unanalyzedcall on java.util.Map:get









Prev Msg Next Msg
  null dereference
Medium Prob.
check that getCallbackType(...) != null
  call too complex - analysis skippedInfocall on bool call(Object[])
Prev Msg Next Msg











method bool callChannelUserModeChanged(ChannelInfo, ChannelClientInfo, ChannelClientInfo, String, String)
prethis.myParser != null
prethis.myParser.myCallbackManager != null
prethis.myParser.myCallbackManager.callbackHash != null
presumptiongetCallbackManager(...)@291 init'ed
postinit'ed(return_value)
unanalyzedcall on getCallbackManager
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on java.lang.String:toLowerCase
unanalyzedcall on java.lang.RuntimeException
unanalyzedcall on java.util.Map:get









Prev Msg Next Msg
  null dereference
Medium Prob.
check that getCallbackType(...) != null
  call too complex - analysis skippedInfocall on bool call(Object[])
Prev Msg Next Msg











method bool callUserModeChanged(ClientInfo, String, String)
prethis.myParser != null
prethis.myParser.myCallbackManager != null
prethis.myParser.myCallbackManager.callbackHash != null
presumptiongetCallbackManager(...)@304 init'ed
postinit'ed(return_value)
unanalyzedcall on getCallbackManager
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on java.lang.String:toLowerCase
unanalyzedcall on java.lang.RuntimeException
unanalyzedcall on java.util.Map:get









Prev Msg Next Msg
  null dereference
Medium Prob.
check that getCallbackType(...) != null
  call too complex - analysis skippedInfocall on bool call(Object[])
Prev Msg Next Msg











method bool callUserModeDiscovered(ClientInfo, String)
prethis.myParser != null
prethis.myParser.myCallbackManager != null
prethis.myParser.myCallbackManager.callbackHash != null
presumptiongetCallbackManager(...)@316 init'ed
postinit'ed(return_value)
unanalyzedcall on getCallbackManager
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on java.lang.String:toLowerCase
unanalyzedcall on java.lang.RuntimeException
unanalyzedcall on java.util.Map:get









Prev Msg Next Msg
  null dereference
Medium Prob.
check that getCallbackType(...) != null
  call too complex - analysis skippedInfocall on bool call(Object[])
Prev Msg Next Msg











method String[] handles()
postreturn_value == &amp;new String[](handles#1)
postnew String[](handles#1) num objects == 1
postreturn_value.length == 3
postreturn_value[0] == &amp;"MODE"
postreturn_value[1] == &amp;"324"
postreturn_value[2] == &amp;"221"










method void com.dmdirc.parser.irc.ProcessMode(IRCParser, ProcessingManager)
postthis.myManager == manager
postinit'ed(this.myManager)
postthis.myParser == parser
postinit'ed(this.myParser)