Last Msg First Msg
























method com.dmdirc.parser.irc.Process001__static_init










method void process(String, String[])
preinit'ed(this.myParser.cMyself.bIsFake)
preinit'ed(this.myParser.pingTimer)
prethis.myParser != null
prethis.myParser.cMyself != null
prethis.myParser.pingNeeded != null
preinit'ed(this.myParser.pingTimerLength)
prethis.myParser.pingTimerSem != null
pretoken != null
pretoken.length >= 3
pretoken[0] != null
pre(soft) this.myParser.cMyself.sNickname != null
pre(soft) init'ed(this.myParser.stringConverter)
pre(soft) this.myParser.hClientList != 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[2] != null
presumptionthis.myParser.stringConverter.lowercase@52 != null
presumptionthis.myParser.stringConverter.lowercase@56 != null
postjava.lang.String:substring(...)._tainted == token[0]._tainted
postinit'ed(java.lang.String:substring(...)._tainted)
postthis.myParser.cMyself.bIsFake == 0
postthis.myParser.cMyself.sHost == One-of{&"", undefined, old this.myParser.cMyself.sHost}
postthis.myParser.cMyself.sIdent == One-of{&"", undefined, old this.myParser.cMyself.sIdent}
postthis.myParser.cMyself.sNickname == One-of{undefined , old this.myParser.cMyself.sNickname}
postthis.myParser.got001 == 1
postthis.myParser.pingCountDown == 1
postnew Timer(startPingTimer#1) num objects == 1
postthis.myParser.pingTimer == &new Timer(startPingTimer#1)
postthis.myParser.sServerName == &java.lang. String:substring(...)
postinit'ed(this.myParser.stringConverter)
postnew IRCStringConverter(getIRCStringConverter#1) num objects <= 1
postnew IRCStringConverter(getIRCStringConverter#1) num objects == 0
postinit'ed(new IRCStringConverter(getIRCStringConverte r#1).limit)
postpossibly_updated(new IRCStringConverter(getIRCStrin gConverter#1).limit)
postinit'ed(new IRCStringConverter(getIRCStringConverte r#1).lowercase)
postpossibly_updated(new IRCStringConverter(getIRCStrin gConverter#1).lowercase)
postinit'ed(new IRCStringConverter(getIRCStringConverte r#1).uppercase)
postpossibly_updated(new IRCStringConverter(getIRCStrin gConverter#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). 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). length)
postpossibly_updated(new char[](IRCStringConverter#2)[...])
unanalyzedcall on getCallbackManager
unanalyzedcall on getCallbackType
unanalyzedcall on call
unanalyzedcall on getNickname
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:isEmpty
unanalyzedcall on java.lang.String:charAt
unanalyzedcall on java.lang.String:substring
unanalyzedcall on java.lang.String:split
unanalyzedcall on java.lang.String:toCharArray
unanalyzedcall on java.lang.String:length
unanalyzedcall on java.lang.String
unanalyzedcall on java.util.Map:put
unanalyzedcall on java.util.Map:remove
unanalyzedcall on parseHost
unanalyzedcall on java.util.concurrent.atomic. AtomicBoolean:set
unanalyzedcall on java.util.concurrent.Semaphore:acquireUnint erruptibly
unanalyzedcall on java.util.Timer:cancel
unanalyzedcall on java.util.Timer
unanalyzedcall on java.util.TimerTask
unanalyzedcall on java.util.Timer:schedule
unanalyzedcall on java.util.concurrent.Semaphore:release
test_vectorthis.myParser.cMyself.bIsFake: {0}, {1}
test_vectorjava.lang.String:equalsIgnoreCase(...)@50: {1}, {0}









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
  precondition failure
High Prob.
com/dmdirc/parser/irc/IRCParser.getClientInfo: sHost != null
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











method bool callServerReady()
prethis.myParser != null
prethis.myParser.myCallbackManager != null
prethis.myParser.myCallbackManager.callbackHash != null
presumptiongetCallbackManager(...)@77 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;"001"










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