Author: zothar
Date: 2006-07-14 18:31:21 +0000 (Fri, 14 Jul 2006)
New Revision: 9603
Modified:
trunk/freenet/src/freenet/node/FNPPacketMangler.java
trunk/freenet/src/freenet/node/PeerNode.java
Log:
Exception logging fixes and additions in FNPPacketMangeler
Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java 2006-07-14
18:25:51 UTC (rev 9602)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java 2006-07-14
18:31:21 UTC (rev 9603)
@@ -804,6 +804,10 @@
* Build a packet and send it, from a whole bunch of messages.
*/
public void processOutgoingOrRequeue(MessageItem[] messages, PeerNode pn,
boolean neverWaitForPacketNumber, boolean dontRequeue) {
+ String requeueLogString = "";
+ if(!dontRequeue) {
+ requeueLogString = ", requeueing";
+ }
Logger.minor(this, "processOutgoingOrRequeue "+messages.length+"
messages for "+pn+" ("+neverWaitForPacketNumber+")");
byte[][] messageData = new byte[messages.length][];
int[] alreadyReported = new int[messages.length];
@@ -811,8 +815,10 @@
int length = 1;
int callbacksCount = 0;
int x = 0;
+ String mi_name = null;
for(int i=0;i<messageData.length;i++) {
MessageItem mi = messages[i];
+ mi_name = (mi.msg == null ? "(not a Message)" :
mi.msg.getSpec().getName());
if(mi.formatted) {
try {
byte[] buf = mi.getData(this, pn);
@@ -827,35 +833,35 @@
if(mi.ctrCallback != null)
mi.ctrCallback.sentBytes(buf.length +
HEADERS_LENGTH_ONE_MESSAGE);
} catch (NotConnectedException e) {
- Logger.minor(this, "Caught "+e+" while sending messages,
requeueing");
+ Logger.normal(this, "Caught "+e+" while sending messages
("+mi_name+") to "+pn.getPeer()+requeueLogString);
// Requeue
if(!dontRequeue) {
- pn.requeueMessageItems(messages, 0, x, false,
"NotConnectedException");
- pn.requeueMessageItems(messages, i, messages.length-i,
false, "NotConnectedException");
+ pn.requeueMessageItems(messages, 0, x, false,
"NotConnectedException(1a)");
+ pn.requeueMessageItems(messages, i, messages.length-i,
false, "NotConnectedException(1b)");
}
return;
} catch (WouldBlockException e) {
- Logger.minor(this, "Caught "+e+" while sending messages,
requeueing", e);
+ Logger.minor(this, "Caught "+e+" while sending messages
("+mi_name+") to "+pn.getPeer()+requeueLogString, e);
// Requeue
if(!dontRequeue) {
- pn.requeueMessageItems(messages, 0, x, false,
"NotConnectedException");
- pn.requeueMessageItems(messages, i, messages.length-i,
false, "NotConnectedException");
+ pn.requeueMessageItems(messages, 0, x, false,
"WouldBlockException(1a)");
+ pn.requeueMessageItems(messages, i, messages.length-i,
false, "WouldBlockException(1b)");
}
return;
} catch (KeyChangedException e) {
- Logger.minor(this, "Caught "+e+" while sending messages,
requeueing");
+ Logger.minor(this, "Caught "+e+" while sending messages
("+mi_name+") to "+pn.getPeer()+requeueLogString, e);
// Requeue
if(!dontRequeue) {
- pn.requeueMessageItems(messages, 0, x, false,
"NotConnectedException");
- pn.requeueMessageItems(messages, i, messages.length-i,
false, "NotConnectedException");
+ pn.requeueMessageItems(messages, 0, x, false,
"KeyChangedException(1a)");
+ pn.requeueMessageItems(messages, i, messages.length-i,
false, "KeyChangedException(1b)");
}
return;
} catch (Throwable e) {
- Logger.error(this, "Caught "+e+" while sending messages,
requeueing", e);
+ Logger.error(this, "Caught "+e+" while sending messages
("+mi_name+") to "+pn.getPeer()+requeueLogString, e);
// Requeue
if(!dontRequeue) {
- pn.requeueMessageItems(messages, 0, x, false,
"NotConnectedException");
- pn.requeueMessageItems(messages, i, messages.length-i,
false, "NotConnectedException");
+ pn.requeueMessageItems(messages, 0, x, false,
"Throwable(1)");
+ pn.requeueMessageItems(messages, i, messages.length-i,
false, "Throwable(1)");
}
return;
}
@@ -890,10 +896,12 @@
if((length < node.usm.getMaxPacketSize()) &&
(messageData.length < 256)) {
+ mi_name = null;
try {
innerProcessOutgoing(messageData, 0, messageData.length,
length, pn, neverWaitForPacketNumber, callbacks, alreadyReportedBytes);
for(int i=0;i<messageData.length;i++) {
MessageItem mi = newMsgs[i];
+ mi_name = (mi.msg == null ? "(not a
Message)" : mi.msg.getSpec().getName());
if(mi.ctrCallback != null) {
mi.ctrCallback.sentBytes(messageData[i].length
+
1 + (HEADERS_LENGTH_MINIMUM /
messageData.length));
@@ -901,19 +909,19 @@
}
}
} catch (NotConnectedException e) {
- Logger.normal(this, "Caught "+e+" while sending messages,
requeueing");
+ Logger.normal(this, "Caught "+e+" while sending messages
("+mi_name+") to "+pn.getPeer()+requeueLogString);
// Requeue
if(!dontRequeue)
pn.requeueMessageItems(messages, 0, messages.length,
false, "NotConnectedException(2)");
return;
} catch (WouldBlockException e) {
- Logger.minor(this, "Caught "+e+" while sending messages,
requeueing", e);
+ Logger.minor(this, "Caught "+e+" while sending messages
("+mi_name+") to "+pn.getPeer()+requeueLogString, e);
// Requeue
if(!dontRequeue)
pn.requeueMessageItems(messages, 0, messages.length,
false, "WouldBlockException(2)");
return;
} catch (Throwable e) {
- Logger.error(this, "Caught "+e+" while sending messages,
requeueing", e);
+ Logger.error(this, "Caught "+e+" while sending messages
("+mi_name+") to "+pn.getPeer()+requeueLogString, e);
// Requeue
if(!dontRequeue)
pn.requeueMessageItems(messages, 0, messages.length,
false, "Throwable(2)");
@@ -921,6 +929,9 @@
}
} else {
+ if(!dontRequeue) {
+ requeueLogString = ", requeueing remaining
messages";
+ }
length = 56;
int count = 0;
int lastIndex = 0;
@@ -939,10 +950,12 @@
// lastIndex up to the message right before this one
// e.g. lastIndex = 0, i = 1, we just send message 0
if(lastIndex != i) {
+ mi_name = null;
try {
innerProcessOutgoing(messageData, lastIndex,
i-lastIndex, length, pn, neverWaitForPacketNumber, callbacks,
alreadyReportedBytes);
for(int j=lastIndex;j<i;j++) {
MessageItem mi = newMsgs[j];
+ mi_name =
(mi.msg == null ? "(not a Message)" : mi.msg.getSpec().getName());
if(mi.ctrCallback != null) {
mi.ctrCallback.sentBytes(messageData[j].length +
1 +
(HEADERS_LENGTH_MINIMUM / (i-lastIndex)));
@@ -950,19 +963,19 @@
}
}
} catch (NotConnectedException e) {
- Logger.normal(this, "Caught "+e+" while sending
messages, requeueing remaining messages");
+ Logger.normal(this, "Caught "+e+" while sending
messages ("+mi_name+") to "+pn.getPeer()+requeueLogString);
// Requeue
if(!dontRequeue)
pn.requeueMessageItems(messages, lastIndex,
messages.length - lastIndex, false, "NotConnectedException(3)");
return;
} catch (WouldBlockException e) {
- Logger.minor(this, "Caught "+e+" while sending
messages, requeueing remaining messages", e);
+ Logger.minor(this, "Caught "+e+" while sending
messages ("+mi_name+") to "+pn.getPeer()+requeueLogString, e);
// Requeue
if(!dontRequeue)
pn.requeueMessageItems(messages, lastIndex,
messages.length - lastIndex, false, "WouldBlockException(3)");
return;
} catch (Throwable e) {
- Logger.error(this, "Caught "+e+" while sending
messages, requeueing remaining messages", e);
+ Logger.error(this, "Caught "+e+" while sending
messages ("+mi_name+") to "+pn.getPeer()+requeueLogString, e);
// Requeue
if(!dontRequeue)
pn.requeueMessageItems(messages, lastIndex,
messages.length - lastIndex, false, "Throwable(3)");
@@ -1054,13 +1067,13 @@
Logger.minor(this, "At beginning of processOutgoingPreformatted
loop for "+peer.getPeer());
KeyTracker tracker = peer.getCurrentKeyTracker();
if(tracker == null) {
- Logger.normal(this, "Dropping packet: Not connected yet");
+ Logger.normal(this, "Dropping packet: Not connected to
"+peer.getPeer()+" yet(1)");
throw new NotConnectedException();
}
processOutgoingPreformatted(buf, offset, length, tracker, k,
callbacks, alreadyReportedBytes);
return;
} catch (KeyChangedException e) {
- Logger.normal(this, "Key changed");
+ Logger.normal(this, "Key changed(1)");
// Go around again
}
}
@@ -1076,7 +1089,7 @@
try {
KeyTracker tracker = peer.getCurrentKeyTracker();
if(tracker == null) {
- Logger.normal(this, "Dropping packet: Not connected yet");
+ Logger.normal(this, "Dropping packet: Not connected to
"+peer.getPeer()+" yet(2)");
throw new NotConnectedException();
}
int seqNo = neverWaitForPacketNumber ?
tracker.allocateOutgoingPacketNumberNeverBlock() :
@@ -1084,6 +1097,7 @@
processOutgoingPreformatted(buf, offset, length, tracker,
seqNo, callbacks, alreadyReportedBytes);
return;
} catch (KeyChangedException e) {
+ Logger.normal(this, "Key changed(2)");
// Go around again
}
}
Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java 2006-07-14 18:25:51 UTC
(rev 9602)
+++ trunk/freenet/src/freenet/node/PeerNode.java 2006-07-14 18:31:21 UTC
(rev 9603)
@@ -2077,7 +2077,7 @@
* This will return true if our lastGoodBuild has changed due to a
timed mandatory.
*/
public synchronized boolean shouldDisconnectNow() {
- // We should disconnect here if "protocol version missmatch",
maybe throwing an exception
+ // TODO: We should disconnect here if "protocol version
mismatch", maybe throwing an exception
verifiedIncompatibleOlderVersion = invalidVersion();
verifiedIncompatibleNewerVersion = reverseInvalidVersion();
if(verifiedIncompatibleNewerVersion ||
verifiedIncompatibleOlderVersion) return true;