Viewing Issue Advanced Details

ID 0002628 Category [DMDirc] IRC Parser Severity minor
Reproducibility always Date Submitted 2009-06-05 20:58 Last Update 2010-09-02 01:57
Reporter Error Reporter Assigned To Dataforce View Status public
Priority normal Status closed Resolution fixed
Platform Fixed in Version Target Version 0.6.3m2
Product Version Product Build 0.6.3m1rc2
Summary 0002628: Exception in callback (null) — ServerEventHandler.checkParser(ServerEventHandler.java:366)
Description
java.lang.IllegalArgumentException: Event called from a parser that shouldn't be in use.
Current state: RECONNECT_WAIT
com.dmdirc.ServerEventHandler.checkParser(ServerEventHandler.java:366)
com.dmdirc.ServerEventHandler.onPingSent(ServerEventHandler.java:207)
sun.reflect.GeneratedMethodAccessor32.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
com.dmdirc.parser.irc.callbacks.CallbackObject.call(CallbackObject.java:155)
com.dmdirc.parser.irc.IRCParser.callPingSent(IRCParser.java:529)
com.dmdirc.parser.irc.IRCParser.pingTimerTask(IRCParser.java:1894)
com.dmdirc.parser.irc.PingTimer.run(PingTimer.java:53)
java.util.TimerThread.mainLoop(Timer.java:512)
java.util.TimerThread.run(Timer.java:462)

Which caused: java.lang.reflect.InvocationTargetException
sun.reflect.GeneratedMethodAccessor32.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
com.dmdirc.parser.irc.callbacks.CallbackObject.call(CallbackObject.java:155)
com.dmdirc.parser.irc.IRCParser.callPingSent(IRCParser.java:529)
com.dmdirc.parser.irc.IRCParser.pingTimerTask(IRCParser.java:1894)
com.dmdirc.parser.irc.PingTimer.run(PingTimer.java:53)
java.util.TimerThread.mainLoop(Timer.java:512)
java.util.TimerThread.run(Timer.java:462)
-------------------- trace from Wed, 09 Jun 2010 23:33:33 +0100 --------------------
java.lang.IllegalArgumentException: Event called from a parser that shouldn't be in use.
State history:
CONNECTING?TRANSIENTLY_DISCONNECTED com.dmdirc.Server.onConnectError(Server.java:1298) [IRC Parser thread]
TRANSIENTLY_DISCONNECTED?RECONNECT_WAIT com.dmdirc.Server.doDelayedReconnect(Server.java:429) [IRC Parser thread]
RECONNECT_WAIT?TRANSIENTLY_DISCONNECTED com.dmdirc.Server$2.run(Server.java:422) [Server Reconnect Timer]
TRANSIENTLY_DISCONNECTED?CONNECTING com.dmdirc.Server.connect(Server.java:291) [Server Reconnect Timer]
CONNECTING?TRANSIENTLY_DISCONNECTED com.dmdirc.Server.onConnectError(Server.java:1298) [IRC Parser thread]
TRANSIENTLY_DISCONNECTED?RECONNECT_WAIT com.dmdirc.Server.doDelayedReconnect(Server.java:429) [IRC Parser thread]
RECONNECT_WAIT?TRANSIENTLY_DISCONNECTED com.dmdirc.Server$2.run(Server.java:422) [Server Reconnect Timer]
TRANSIENTLY_DISCONNECTED?CONNECTING com.dmdirc.Server.connect(Server.java:291) [Server Reconnect Timer]
CONNECTING?TRANSIENTLY_DISCONNECTED com.dmdirc.Server.onConnectError(Server.java:1298) [IRC Parser thread]
TRANSIENTLY_DISCONNECTED?RECONNECT_WAIT com.dmdirc.Server.doDelayedReconnect(Server.java:429) [IRC Parser thread]
com.dmdirc.ServerEventHandler.checkParser(ServerEventHandler.java:366)
com.dmdirc.ServerEventHandler.onPingSent(ServerEventHandler.java:207)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.dmdirc.parser.irc.callbacks.CallbackObject.call(CallbackObject.java:152)
com.dmdirc.parser.irc.IRCParser.callPingSent(IRCParser.java:529)
com.dmdirc.parser.irc.IRCParser.pingTimerTask(IRCParser.java:1892)
com.dmdirc.parser.irc.PingTimer.run(PingTimer.java:53)
java.util.TimerThread.mainLoop(Unknown Source)
java.util.TimerThread.run(Unknown Source)

Which caused: java.lang.reflect.InvocationTargetException
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.dmdirc.parser.irc.callbacks.CallbackObject.call(CallbackObject.java:152)
com.dmdirc.parser.irc.IRCParser.callPingSent(IRCParser.java:529)
com.dmdirc.parser.irc.IRCParser.pingTimerTask(IRCParser.java:1892)
com.dmdirc.parser.irc.PingTimer.run(PingTimer.java:53)
java.util.TimerThread.mainLoop(Unknown Source)
java.util.TimerThread.run(Unknown Source)
-------------------- trace from Sun, 13 Jun 2010 23:44:17 +0100 --------------------
java.lang.IllegalArgumentException: Event called from a parser that shouldn't be in use.
State history:
CONNECTING?TRANSIENTLY_DISCONNECTED com.dmdirc.Server.onConnectError(Server.java:1298) [IRC Parser thread]
TRANSIENTLY_DISCONNECTED?RECONNECT_WAIT com.dmdirc.Server.doDelayedReconnect(Server.java:429) [IRC Parser thread]
RECONNECT_WAIT?TRANSIENTLY_DISCONNECTED com.dmdirc.Server$2.run(Server.java:422) [Server Reconnect Timer]
TRANSIENTLY_DISCONNECTED?CONNECTING com.dmdirc.Server.connect(Server.java:291) [Server Reconnect Timer]
CONNECTING?TRANSIENTLY_DISCONNECTED com.dmdirc.Server.onConnectError(Server.java:1298) [IRC Parser thread]
TRANSIENTLY_DISCONNECTED?RECONNECT_WAIT com.dmdirc.Server.doDelayedReconnect(Server.java:429) [IRC Parser thread]
RECONNECT_WAIT?TRANSIENTLY_DISCONNECTED com.dmdirc.Server$2.run(Server.java:422) [Server Reconnect Timer]
TRANSIENTLY_DISCONNECTED?CONNECTING com.dmdirc.Server.connect(Server.java:291) [Server Reconnect Timer]
CONNECTING?TRANSIENTLY_DISCONNECTED com.dmdirc.Server.onConnectError(Server.java:1298) [IRC Parser thread]
TRANSIENTLY_DISCONNECTED?RECONNECT_WAIT com.dmdirc.Server.doDelayedReconnect(Server.java:429) [IRC Parser thread]
com.dmdirc.ServerEventHandler.checkParser(ServerEventHandler.java:366)
com.dmdirc.ServerEventHandler.onPingSent(ServerEventHandler.java:207)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.dmdirc.parser.irc.callbacks.CallbackObject.call(CallbackObject.java:152)
com.dmdirc.parser.irc.IRCParser.callPingSent(IRCParser.java:529)
com.dmdirc.parser.irc.IRCParser.pingTimerTask(IRCParser.java:1892)
com.dmdirc.parser.irc.PingTimer.run(PingTimer.java:53)
java.util.TimerThread.mainLoop(Unknown Source)
java.util.TimerThread.run(Unknown Source)

Which caused: java.lang.reflect.InvocationTargetException
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.dmdirc.parser.irc.callbacks.CallbackObject.call(CallbackObject.java:152)
com.dmdirc.parser.irc.IRCParser.callPingSent(IRCParser.java:529)
com.dmdirc.parser.irc.IRCParser.pingTimerTask(IRCParser.java:1892)
com.dmdirc.parser.irc.PingTimer.run(PingTimer.java:53)
java.util.TimerThread.mainLoop(Unknown Source)
java.util.TimerThread.run(Unknown Source)
-------------------- trace from Sun, 13 Jun 2010 23:46:18 +0100 --------------------
java.lang.IllegalArgumentException: Event called from a parser that shouldn't be in use.
State history:
CONNECTING?TRANSIENTLY_DISCONNECTED com.dmdirc.Server.onConnectError(Server.java:1298) [IRC Parser thread]
TRANSIENTLY_DISCONNECTED?RECONNECT_WAIT com.dmdirc.Server.doDelayedReconnect(Server.java:429) [IRC Parser thread]
RECONNECT_WAIT?TRANSIENTLY_DISCONNECTED com.dmdirc.Server$2.run(Server.java:422) [Server Reconnect Timer]
TRANSIENTLY_DISCONNECTED?CONNECTING com.dmdirc.Server.connect(Server.java:291) [Server Reconnect Timer]
CONNECTING?TRANSIENTLY_DISCONNECTED com.dmdirc.Server.onConnectError(Server.java:1298) [IRC Parser thread]
TRANSIENTLY_DISCONNECTED?RECONNECT_WAIT com.dmdirc.Server.doDelayedReconnect(Server.java:429) [IRC Parser thread]
RECONNECT_WAIT?TRANSIENTLY_DISCONNECTED com.dmdirc.Server$2.run(Server.java:422) [Server Reconnect Timer]
TRANSIENTLY_DISCONNECTED?CONNECTING com.dmdirc.Server.connect(Server.java:291) [Server Reconnect Timer]
CONNECTING?TRANSIENTLY_DISCONNECTED com.dmdirc.Server.onConnectError(Server.java:1298) [IRC Parser thread]
TRANSIENTLY_DISCONNECTED?RECONNECT_WAIT com.dmdirc.Server.doDelayedReconnect(Server.java:429) [IRC Parser thread]
com.dmdirc.ServerEventHandler.checkParser(ServerEventHandler.java:366)
com.dmdirc.ServerEventHandler.onPingSent(ServerEventHandler.java:207)
sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.dmdirc.parser.irc.callbacks.CallbackObject.call(CallbackObject.java:152)
com.dmdirc.parser.irc.IRCParser.callPingSent(IRCParser.java:529)
com.dmdirc.parser.irc.IRCParser.pingTimerTask(IRCParser.java:1892)
com.dmdirc.parser.irc.PingTimer.run(PingTimer.java:53)
java.util.TimerThread.mainLoop(Unknown Source)
java.util.TimerThread.run(Unknown Source)

Which caused: java.lang.reflect.InvocationTargetException
sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.dmdirc.parser.irc.callbacks.CallbackObject.call(CallbackObject.java:152)
com.dmdirc.parser.irc.IRCParser.callPingSent(IRCParser.java:529)
com.dmdirc.parser.irc.IRCParser.pingTimerTask(IRCParser.java:1892)
com.dmdirc.parser.irc.PingTimer.run(PingTimer.java:53)
java.util.TimerThread.mainLoop(Unknown Source)
java.util.TimerThread.run(Unknown Source)
-------------------- trace from Sun, 13 Jun 2010 23:49:04 +0100 --------------------
java.lang.IllegalArgumentException: Event called from a parser that shouldn't be in use.
State history:
CONNECTING?TRANSIENTLY_DISCONNECTED com.dmdirc.Server.onConnectError(Server.java:1298) [IRC Parser thread]
TRANSIENTLY_DISCONNECTED?RECONNECT_WAIT com.dmdirc.Server.doDelayedReconnect(Server.java:429) [IRC Parser thread]
RECONNECT_WAIT?TRANSIENTLY_DISCONNECTED com.dmdirc.Server$2.run(Server.java:422) [Server Reconnect Timer]
TRANSIENTLY_DISCONNECTED?CONNECTING com.dmdirc.Server.connect(Server.java:291) [Server Reconnect Timer]
CONNECTING?TRANSIENTLY_DISCONNECTED com.dmdirc.Server.onConnectError(Server.java:1298) [IRC Parser thread]
TRANSIENTLY_DISCONNECTED?RECONNECT_WAIT com.dmdirc.Server.doDelayedReconnect(Server.java:429) [IRC Parser thread]
RECONNECT_WAIT?TRANSIENTLY_DISCONNECTED com.dmdirc.Server$2.run(Server.java:422) [Server Reconnect Timer]
TRANSIENTLY_DISCONNECTED?CONNECTING com.dmdirc.Server.connect(Server.java:291) [Server Reconnect Timer]
CONNECTING?TRANSIENTLY_DISCONNECTED com.dmdirc.Server.onConnectError(Server.java:1298) [IRC Parser thread]
TRANSIENTLY_DISCONNECTED?RECONNECT_WAIT com.dmdirc.Server.doDelayedReconnect(Server.java:429) [IRC Parser thread]
com.dmdirc.ServerEventHandler.checkParser(ServerEventHandler.java:366)
com.dmdirc.ServerEventHandler.onPingSent(ServerEventHandler.java:207)
sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.dmdirc.parser.irc.callbacks.CallbackObject.call(CallbackObject.java:152)
com.dmdirc.parser.irc.IRCParser.callPingSent(IRCParser.java:529)
com.dmdirc.parser.irc.IRCParser.pingTimerTask(IRCParser.java:1892)
com.dmdirc.parser.irc.PingTimer.run(PingTimer.java:53)
java.util.TimerThread.mainLoop(Unknown Source)
java.util.TimerThread.run(Unknown Source)

Which caused: java.lang.reflect.InvocationTargetException
sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.dmdirc.parser.irc.callbacks.CallbackObject.call(CallbackObject.java:152)
com.dmdirc.parser.irc.IRCParser.callPingSent(IRCParser.java:529)
com.dmdirc.parser.irc.IRCParser.pingTimerTask(IRCParser.java:1892)
com.dmdirc.parser.irc.PingTimer.run(PingTimer.java:53)
java.util.TimerThread.mainLoop(Unknown Source)
java.util.TimerThread.run(Unknown Source)
-------------------- trace from Sun, 13 Jun 2010 23:57:56 +0100 --------------------
java.lang.IllegalArgumentException: Event called from a parser that shouldn't be in use.
State history:
CONNECTING?TRANSIENTLY_DISCONNECTED com.dmdirc.Server.onConnectError(Server.java:1298) [IRC Parser thread]
TRANSIENTLY_DISCONNECTED?RECONNECT_WAIT com.dmdirc.Server.doDelayedReconnect(Server.java:429) [IRC Parser thread]
RECONNECT_WAIT?TRANSIENTLY_DISCONNECTED com.dmdirc.Server$2.run(Server.java:422) [Server Reconnect Timer]
TRANSIENTLY_DISCONNECTED?CONNECTING com.dmdirc.Server.connect(Server.java:291) [Server Reconnect Timer]
CONNECTING?TRANSIENTLY_DISCONNECTED com.dmdirc.Server.onConnectError(Server.java:1298) [IRC Parser thread]
TRANSIENTLY_DISCONNECTED?RECONNECT_WAIT com.dmdirc.Server.doDelayedReconnect(Server.java:429) [IRC Parser thread]
RECONNECT_WAIT?TRANSIENTLY_DISCONNECTED com.dmdirc.Server$2.run(Server.java:422) [Server Reconnect Timer]
TRANSIENTLY_DISCONNECTED?CONNECTING com.dmdirc.Server.connect(Server.java:291) [Server Reconnect Timer]
CONNECTING?TRANSIENTLY_DISCONNECTED com.dmdirc.Server.onConnectError(Server.java:1298) [IRC Parser thread]
TRANSIENTLY_DISCONNECTED?RECONNECT_WAIT com.dmdirc.Server.doDelayedReconnect(Server.java:429) [IRC Parser thread]
com.dmdirc.ServerEventHandler.checkParser(ServerEventHandler.java:366)
com.dmdirc.ServerEventHandler.onPingSent(ServerEventHandler.java:207)
sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.dmdirc.parser.irc.callbacks.CallbackObject.call(CallbackObject.java:152)
com.dmdirc.parser.irc.IRCParser.callPingSent(IRCParser.java:529)
com.dmdirc.parser.irc.IRCParser.pingTimerTask(IRCParser.java:1892)
com.dmdirc.parser.irc.PingTimer.run(PingTimer.java:53)
java.util.TimerThread.mainLoop(Unknown Source)
java.util.TimerThread.run(Unknown Source)

Which caused: java.lang.reflect.InvocationTargetException
sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.dmdirc.parser.irc.callbacks.CallbackObject.call(CallbackObject.java:152)
com.dmdirc.parser.irc.IRCParser.callPingSent(IRCParser.java:529)
com.dmdirc.parser.irc.IRCParser.pingTimerTask(IRCParser.java:1892)
com.dmdirc.parser.irc.PingTimer.run(PingTimer.java:53)
java.util.TimerThread.mainLoop(Unknown Source)
java.util.TimerThread.run(Unknown Source)
-------------------- trace from Thu, 02 Sep 2010 01:57:50 +0100 --------------------
java.lang.IllegalArgumentException: Event called from a parser that shouldn't be in use.
State history:
DISCONNECTED?CONNECTING com.dmdirc.Server.connect(Server.java:291) [SwingWorker-pool-1-thread-1]
CONNECTING?TRANSIENTLY_DISCONNECTED com.dmdirc.Server.onConnectError(Server.java:1298) [IRC Parser thread]
TRANSIENTLY_DISCONNECTED?RECONNECT_WAIT com.dmdirc.Server.doDelayedReconnect(Server.java:429) [IRC Parser thread]
RECONNECT_WAIT?TRANSIENTLY_DISCONNECTED com.dmdirc.Server$2.run(Server.java:422) [Server Reconnect Timer]
TRANSIENTLY_DISCONNECTED?CONNECTING com.dmdirc.Server.connect(Server.java:291) [Server Reconnect Timer]
CONNECTING?TRANSIENTLY_DISCONNECTED com.dmdirc.Server.onConnectError(Server.java:1298) [IRC Parser thread]
TRANSIENTLY_DISCONNECTED?RECONNECT_WAIT com.dmdirc.Server.doDelayedReconnect(Server.java:429) [IRC Parser thread]
com.dmdirc.ServerEventHandler.checkParser(ServerEventHandler.java:366)
com.dmdirc.ServerEventHandler.onPingSent(ServerEventHandler.java:207)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.dmdirc.parser.irc.callbacks.CallbackObject.call(CallbackObject.java:152)
com.dmdirc.parser.irc.IRCParser.callPingSent(IRCParser.java:529)
com.dmdirc.parser.irc.IRCParser.pingTimerTask(IRCParser.java:1892)
com.dmdirc.parser.irc.PingTimer.run(PingTimer.java:53)
java.util.TimerThread.mainLoop(Unknown Source)
java.util.TimerThread.run(Unknown Source)

Which caused: java.lang.reflect.InvocationTargetException
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.dmdirc.parser.irc.callbacks.CallbackObject.call(CallbackObject.java:152)
com.dmdirc.parser.irc.IRCParser.callPingSent(IRCParser.java:529)
com.dmdirc.parser.irc.IRCParser.pingTimerTask(IRCParser.java:1892)
com.dmdirc.parser.irc.PingTimer.run(PingTimer.java:53)
java.util.TimerThread.mainLoop(Unknown Source)
java.util.TimerThread.run(Unknown Source)
Steps To Reproduce <Greboid> i can reproduce that at will with the latest nightly :D
<Greboid> reconnect attempt on a connection refused
<Greboid> /newserver to an ircd thats not running causes that
Needs unit test no
Upstream Bug URL

Relationships

Notes

Changes committed in revision 5387 by chris87:
Include status history in invalid parser errors Issue 2628

Git-version: 0.6.3m1rc2-24-g7036dc2
CGit: http://git.dmdirc.com/cgit.cgi/client/commit/?id=0.6.3m1rc2-24-g7036dc2 [^]

Bamboo results: DMDIRC-TRUNK-1253 (http://bamboo.dmdirc.com//browse/DMDIRC-TRUNK-1253): [^] success - took 5 minutes - finished on Jun 15, 2009 7:26:17 PM
Bamboo results: DMDIRC-REPORTS-643 (http://bamboo.dmdirc.com//browse/DMDIRC-REPORTS-643): [^] success - took 18 minutes - finished on Jun 15, 2009 8:08:20 PM
Unable to retrieve commit information.

This commit was included in build DMDIRC-TRUNK-1253. The build succeeded after 5 minutes.

This commit was included in build DMDIRC-REPORTS-643. The build succeeded after 18 minutes.

(0006862)
MD87 (administrator)
2009-06-15 19:26

Repro steps? Can't see anything obvious
(0006876)
Greboid (administrator)
2009-06-16 19:52

State history:
DISCONNECTED?CONNECTING com.dmdirc.Server.connect(Server.java:291) [main]
CONNECTING?TRANSIENTLY_DISCONNECTED com.dmdirc.Server.onConnectError(Server.java:1298) [IRC Parser thread]
TRANSIENTLY_DISCONNECTED?RECONNECT_WAIT com.dmdirc.Server.doDelayedReconnect(Server.java:429) [IRC Parser thread]
RECONNECT_WAIT?TRANSIENTLY_DISCONNECTED com.dmdirc.Server$2.run(Server.java:422) [Server Reconnect Timer]
TRANSIENTLY_DISCONNECTED?CONNECTING com.dmdirc.Server.connect(Server.java:291) [Server Reconnect Timer]
CONNECTING?TRANSIENTLY_DISCONNECTED com.dmdirc.Server.onConnectError(Server.java:1298) [IRC Parser thread]
TRANSIENTLY_DISCONNECTED?RECONNECT_WAIT com.dmdirc.Server.doDelayedReconnect(Server.java:429) [IRC Parser thread]
(0006877)
MD87 (administrator)
2009-06-16 20:04

Pings shouldn't be sent while the server is disconnected. Reassigning as an IRC Parser bug.
authorShane Mc Cormack <shane@dmdirc.com>2009-06-16 21:41:41 (GMT)
commit212381cacb5cb9f9ec243286964a5f25e102a3f4 (patch) (side-by-side diff)
Don't try to send any lines if the socket state is not open.
Fixes issue 2628
-rw-r--r--src/com/dmdirc/parser/irc/IRCParser.java20
1 files changed, 9 insertions, 11 deletions
Click to Expand/Collapse
diff src/com/dmdirc/parser/irc/IRCParser.java
@@ -918,7 +918,7 @@ public class IRCParser implements Runnable {
* @param fromParser is this line from the parser? (used for callDataOut)
*/
protected void doSendString(final String line, final boolean fromParser) {
- if (out == null) { return; }
+ if (out == null || getSocketState() != SocketState.OPEN) { return; }
callDataOut(line, fromParser);
out.printf("%s\r\n", line);
final String[] newLine = tokeniseLine(line);
@@ -1872,17 +1872,15 @@ public class IRCParser implements Runnable {
* @param timer The timer that called this.
*/
protected void pingTimerTask(final Timer timer) {
- if (getPingNeeded()) {
+ if (getPingNeeded()) {
if (!callPingFailed()) {
-
- pingTimerSem.acquireUninterruptibly();
-
- if (pingTimer != null && pingTimer.equals(timer)) {
- pingTimer.cancel();
- }
-
- pingTimerSem.release();
-
+ pingTimerSem.acquireUninterruptibly();
+
+ if (pingTimer != null && pingTimer.equals(timer)) {
+ pingTimer.cancel();
+ }
+ pingTimerSem.release();
+
disconnect("Server not responding.");
}
} else {
(0007004)
Greboid (administrator)
2009-06-30 19:20

This still happens.

java.lang.IllegalArgumentException: Event called from a parser that shouldn't be in use.
State history:
CONNECTING?TRANSIENTLY_DISCONNECTED com.dmdirc.Server.onConnectError(Server.java:1285) [IRC Parser thread]
TRANSIENTLY_DISCONNECTED?RECONNECT_WAIT com.dmdirc.Server.doDelayedReconnect(Server.java:433) [IRC Parser thread]
RECONNECT_WAIT?TRANSIENTLY_DISCONNECTED com.dmdirc.Server$2.run(Server.java:426) [Server Reconnect Timer]
TRANSIENTLY_DISCONNECTED?CONNECTING com.dmdirc.Server.connect(Server.java:295) [Server Reconnect Timer]
CONNECTING?TRANSIENTLY_DISCONNECTED com.dmdirc.Server.onConnectError(Server.java:1285) [IRC Parser thread]
TRANSIENTLY_DISCONNECTED?RECONNECT_WAIT com.dmdirc.Server.doDelayedReconnect(Server.java:433) [IRC Parser thread]
RECONNECT_WAIT?TRANSIENTLY_DISCONNECTED com.dmdirc.Server$2.run(Server.java:426) [Server Reconnect Timer]
TRANSIENTLY_DISCONNECTED?CONNECTING com.dmdirc.Server.connect(Server.java:295) [Server Reconnect Timer]
CONNECTING?TRANSIENTLY_DISCONNECTED com.dmdirc.Server.onConnectError(Server.java:1285) [IRC Parser thread]
TRANSIENTLY_DISCONNECTED?RECONNECT_WAIT com.dmdirc.Server.doDelayedReconnect(Server.java:433) [IRC Parser thread]
com.dmdirc.ServerEventHandler.checkParser(ServerEventHandler.java:366)
com.dmdirc.ServerEventHandler.onPingSent(ServerEventHandler.java:207)
sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
com.dmdirc.parser.irc.callbacks.CallbackObject.call(CallbackObject.java:152)
com.dmdirc.parser.irc.IRCParser.callPingSent(IRCParser.java:529)
com.dmdirc.parser.irc.IRCParser.pingTimerTask(IRCParser.java:1892)
com.dmdirc.parser.irc.PingTimer.run(PingTimer.java:53)
java.util.TimerThread.mainLoop(Timer.java:512)
java.util.TimerThread.run(Timer.java:462)
authorShane Mc Cormack <shane@dmdirc.com>2009-07-01 11:11:46 (GMT)
commitd43ebafbdaeae9bc77b1257c39769e7cf93c0fe2 (patch) (side-by-side diff)
-rw-r--r--src/com/dmdirc/parser/irc/IRCParser.java18
1 files changed, 12 insertions, 6 deletions
Click to Expand/Collapse
diff src/com/dmdirc/parser/irc/IRCParser.java
@@ -901,24 +901,27 @@ public class IRCParser implements Runnable {
* Send a line to the server.
*
* @param line Line to send (\r\n termination is added automatically)
+ * @return True if line was sent, else false.
*/
- public void sendLine(final String line) { doSendString(line, false); }
+ public boolean sendLine(final String line) { return doSendString(line, false); }
/**
* Send a line to the server and add proper line ending.
*
* @param line Line to send (\r\n termination is added automatically)
+ * @return True if line was sent, else false.
*/
- protected void sendString(final String line) { doSendString(line, true); }
+ protected boolean sendString(final String line) { return doSendString(line, true); }
/**
* Send a line to the server and add proper line ending.
*
* @param line Line to send (\r\n termination is added automatically)
* @param fromParser is this line from the parser? (used for callDataOut)
+ * @return True if line was sent, else false.
*/
- protected void doSendString(final String line, final boolean fromParser) {
- if (out == null || getSocketState() != SocketState.OPEN) { return; }
+ protected boolean doSendString(final String line, final boolean fromParser) {
+ if (out == null || getSocketState() != SocketState.OPEN) { return false; }
callDataOut(line, fromParser);
out.printf("%s\r\n", line);
final String[] newLine = tokeniseLine(line);
@@ -947,6 +950,8 @@ public class IRCParser implements Runnable {
}
}
}
+
+ return true;
}
/**
@@ -1889,9 +1894,10 @@ public class IRCParser implements Runnable {
pingTime = System.currentTimeMillis();
setPingNeeded(true);
pingCountDown = pingCountDownLength;
- callPingSent();
lastPingValue = String.valueOf(System.currentTimeMillis());
- sendLine("PING " + lastPingValue);
+ if (sendLine("PING " + lastPingValue)) {
+ callPingSent();
+ }
}
}
}

Issue History

Date Modified Username Field Change
2009-06-05 20:58 Error Reporter New Issue
2009-06-05 20:58 Error Reporter Status new => assigned
2009-06-05 20:58 Error Reporter Assigned To => MD87
2009-06-06 13:23 Greboid View Status private => public
2009-06-15 19:19 MD87 Checkin
2009-06-15 19:19 MD87 Note Added: 0006861
2009-06-15 19:26 MD87 Note Added: 0006862
2009-06-16 19:52 Greboid Note Added: 0006876
2009-06-16 20:04 MD87 Needs unit test => no
2009-06-16 20:04 MD87 Note Added: 0006877
2009-06-16 20:04 MD87 Assigned To MD87 => Dataforce
2009-06-16 20:04 MD87 Category Core => IRC Parser
2009-06-16 20:04 MD87 Description Updated
2009-06-16 20:04 MD87 Steps to Reproduce Updated
2009-06-16 22:43 Dataforce Checkin
2009-06-16 22:43 Dataforce Note Added: 0006879
2009-06-16 22:43 Dataforce Status assigned => resolved
2009-06-16 22:43 Dataforce Resolution open => fixed
2009-06-30 19:20 Greboid Note Added: 0007004
2009-06-30 19:20 Greboid Status resolved => assigned
2009-06-30 19:20 Greboid Resolution fixed => reopened
2009-06-30 23:51 Greboid Target Version 0.6.3m1 => 0.6.3m2
2009-07-01 13:05 Dataforce Checkin
2009-07-01 13:05 Dataforce Note Added: 0007010
2009-07-01 13:05 Dataforce Status assigned => resolved
2009-07-01 13:05 Dataforce Resolution reopened => fixed
2009-11-08 12:52 Greboid Status resolved => closed
2010-06-09 23:33 Error Reporter Description Updated
2010-06-13 23:44 Error Reporter Description Updated
2010-06-13 23:46 Error Reporter Description Updated
2010-06-13 23:49 Error Reporter Description Updated
2010-06-13 23:57 Error Reporter Description Updated
2010-09-02 01:57 Error Reporter Description Updated