Last Msg First Msg
























method com.dmdirc.parser.irc.ProcessWho__static_init










method void process(String, String[])
preinit'ed(this.myParser.stringConverter)
prethis.myParser != null
prethis.myParser.hClientList != null
pretoken != null
pretoken[7] != null
pre(soft) init'ed(this.myParser.cMyself)
pre(soft) this.myParser.hChannelList != null
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.length >= 10
pre(soft) init'ed(token[4])
pre(soft) init'ed(token[5])
pre(soft) token[8] != null
pre(soft) token[9] != null
presumptionclient.sRealName != null
presumptioniChannel.hChannelUserList@71 != null
presumptionjava.util.Iterator:next(...)@71 != null
presumptionjava.util.Map:values(...)@2067 != null
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 getCallbackManager
unanalyzedcall on getCallbackType
unanalyzedcall on java.lang.Boolean:valueOf
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 parseHost
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 java.lang.Throwable:__curr_excep_obj
unanalyzedcall on java.util.Map:values
unanalyzedcall on java.util.Collection:iterator
unanalyzedcall on getClient
test_vectorclient.bIsAway: {0}, {1}
test_vectorjava.lang.String:indexOf(...)@60: {-231.. -2, 0..232-1}, {-1}
test_vectorjava.lang.String:isEmpty(...)@54: {0}, {1}
test_vectorjava.util.Iterator:hasNext(...)@71: {0}, {1}









Prev Msg Next Msg
  array index out of bounds
High Prob.
check that java/lang/String:split(...).length >= 2
  use of default init
Low Prob.
check if init'ed(java/lang/String:split(...). length)
Prev Msg Next Msg











method bool callAwayState(bool, String)
prethis.myParser != null
prethis.myParser.myCallbackManager != null
prethis.myParser.myCallbackManager.callbackHash != null
presumptiongetCallbackManager(...)@91 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 callAwayStateOther(ClientInfo, bool)
prethis.myParser != null
prethis.myParser.myCallbackManager != null
prethis.myParser.myCallbackManager.callbackHash != null
presumptiongetCallbackManager(...)@103 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 callChannelAwayStateOther(ChannelInfo, ChannelClientInfo, bool)
prethis.myParser != null
prethis.myParser.myCallbackManager != null
prethis.myParser.myCallbackManager.callbackHash != null
presumptiongetCallbackManager(...)@116 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 == 1
postreturn_value[0] == &amp;"352"










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