Last Msg First Msg
























method com.dmdirc.parser.irc.ProcessListModes__static_ init










method void process(String, String[])
preinit'ed(this.myParser.stringConverter)
prethis.myParser != null
prethis.myParser.hChannelList != null
pretoken != null
pretoken.length >= 4
pretoken[3] != null
pre(soft) sParam != null
pre(soft) this.myParser.h005Info != 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.sNetworkName != null
pre(soft) this.myParser.stringConverter.lowercase != null
pre(soft) init'ed(this.myParser.stringConverter. lowercase[...])
pre(soft) token[4] != null
pre(soft) token[...] != null
presumptionchannel.hListModes != null
presumptionchannel.lAddingModes != null
presumptionchannel.myParser != null
presumptionchannel.myParser.h005Info != null
presumptionchannel.myParser.hChanModesOther != null
presumptionchannel.myParser.myCallbackManager.callbackHash != null
presumptionchannel.myParser.myCallbackManager@43 != null
presumptionchannel.myParser.sNetworkName != null
presumptionchannel.myParser.stringConverter != null
presumptionchannel.myParser.stringConverter.lowercase. length@157 >= 1
presumptionchannel.myParser.stringConverter.lowercase@157 != null
presumptionjava.lang.Character:valueOf(...)@105 != null
presumptionjava.lang.Character:valueOf(...)@190 != null
presumptionjava.util.Queue:peek(...)@106 != null
postinit'ed(this.myParser.stringConverter)
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 call
unanalyzedcall on callDebugInfo
unanalyzedcall on java.lang.String:isEmpty
unanalyzedcall on java.lang.String:charAt
unanalyzedcall on java.lang.String:substring
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:matches
unanalyzedcall on java.lang.String:equalsIgnoreCase
unanalyzedcall on java.util.LinkedList
unanalyzedcall on java.lang.System:currentTimeMillis
unanalyzedcall on java.lang.Integer:valueOf
unanalyzedcall on java.lang.Throwable:__curr_excep_obj
unanalyzedcall on java.util.List:contains
unanalyzedcall on java.lang.Byte:byteValue
unanalyzedcall on java.util.ArrayList
unanalyzedcall on java.util.Map:put
unanalyzedcall on java.util.List:add
unanalyzedcall on java.util.List:remove
unanalyzedcall on java.lang.String:format
unanalyzedcall on java.lang.String:toCharArray
unanalyzedcall on java.lang.String:length
unanalyzedcall on java.lang.Character:charValue
unanalyzedcall on java.lang.Character:valueOf
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.List:clear
unanalyzedcall on java.lang.String
test_vectortoken.length: {7..+Inf}, {4}
test_vectorjava.lang.Character:charValue(...)@106: {98}, {113}, {0..97, 99, 101..112, 114..216-1}, {100}
test_vectorjava.lang.String:charAt(...)@152: {0..36, 38..216-1}, {37}
test_vectorjava.lang.String:equals(...)@100: {0}, {1}
test_vectorjava.lang.String:equals(...)@116: {1}, {0}
test_vectorjava.lang.String:equals(...)@116: {0}, {1}
test_vectorjava.lang.String:equals(...)@144: {1}, {0}
test_vectorjava.lang.String:equals(...)@144: {0}, {1}
test_vectorjava.lang.String:equals(...)@152: {0}, {1}
test_vectorjava.lang.String:equals(...)@164: {1}, {0}
test_vectorjava.lang.String:equals(...)@164: {0}, {1}
test_vectorjava.lang.String:equals(...)@53: {1}, {0}
test_vectorjava.lang.String:equals(...)@53: {0}, {1}
test_vectorjava.lang.String:equals(...)@58: {1}, {0}
test_vectorjava.lang.String:equals(...)@58: {0}, {1}
test_vectorjava.lang.String:equals(...)@62: {1}, {0}
test_vectorjava.lang.String:equals(...)@62: {0}, {1}
test_vectorjava.lang.String:equals(...)@66: {1}, {0}
test_vectorjava.lang.String:equals(...)@66: {0}, {1}
test_vectorjava.lang.String:equals(...)@70: {1}, {0}
test_vectorjava.lang.String:equals(...)@70: {0}, {1}
test_vectorjava.lang.String:equals(...)@72: {0}, {1}
test_vectorjava.lang.String:equals(...)@74: {0}, {1}
test_vectorjava.lang.String:equals(...)@80: {1}, {0}
test_vectorjava.lang.String:equals(...)@80: {0}, {1}
test_vectorjava.lang.String:equals(...)@84: {1}, {0}
test_vectorjava.lang.String:equals(...)@84: {0}, {1}
test_vectorjava.lang.String:equals(...)@88: {1}, {0}
test_vectorjava.lang.String:equals(...)@88: {0}, {1}
test_vectorjava.lang.String:equals(...)@93: {0}, {1}
test_vectorjava.lang.String:indexOf(...)@148: {-231. .-1}, {0..232-2}
test_vectorjava.lang.String:isEmpty(...)@187: {1}, {0}
test_vectorjava.util.LinkedList:size(...)@195: {-231..-1, 1..232-1}, {0}
test_vectorjava.util.List:contains(...)@566: {1}, {0}
test_vectorjava.util.Queue:peek(...)@104: Addr_Set{null}, Inverse{null}









Prev Msg Next Msg
  array index out of bounds
Medium Prob.
check that token.length >= 5
Prev Msg Next Msg










Prev Msg Next Msg
  test always goes same way
Low Prob.
Test predetermined because mode == 100
Prev Msg Next Msg











method String[] handles()
postreturn_value == &amp;new String[](handles#1)
postnew String[](handles#1) num objects == 1
postreturn_value.length == 16
postreturn_value[0] == &amp;"367"
postreturn_value[10] == &amp;"388"
postreturn_value[11] == &amp;"389"
postreturn_value[12] == &amp;"940"
postreturn_value[13] == &amp;"941"
postreturn_value[14] == &amp;"482"
postreturn_value[15] == &amp;"__LISTMODE__"
postreturn_value[1] == &amp;"368"
postreturn_value[2] == &amp;"344"
postreturn_value[3] == &amp;"345"
postreturn_value[4] == &amp;"346"
postreturn_value[5] == &amp;"347"
postreturn_value[6] == &amp;"348"
postreturn_value[7] == &amp;"349"
postreturn_value[8] == &amp;"386"
postreturn_value[9] == &amp;"387"










method bool callChannelGotListModes(ChannelInfo)
prethis.myParser != null
prethis.myParser.myCallbackManager != null
prethis.myParser.myCallbackManager.callbackHash != null
presumptiongetCallbackManager(...)@230 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 void com.dmdirc.parser.irc.ProcessListModes(IRCPar ser, ProcessingManager)
postthis.myManager == manager
postinit'ed(this.myManager)
postthis.myParser == parser
postinit'ed(this.myParser)