Author: toad
Date: 2006-01-26 20:21:46 +0000 (Thu, 26 Jan 2006)
New Revision: 7938
Modified:
trunk/freenet/src/freenet/client/async/SingleFileInserter.java
trunk/freenet/src/freenet/node/PeerNode.java
trunk/freenet/src/freenet/node/Version.java
Log:
390:
Fixes including deadlock.
Modified: trunk/freenet/src/freenet/client/async/SingleFileInserter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SingleFileInserter.java
2006-01-26 19:39:07 UTC (rev 7937)
+++ trunk/freenet/src/freenet/client/async/SingleFileInserter.java
2006-01-26 20:21:46 UTC (rev 7938)
@@ -261,10 +261,10 @@
if(finished) return;
if(state == metadataPutter) {
Logger.error(this, "Got metadata for metadata");
- // FIXME kill?
+ onFailure(new
InserterException(InserterException.INTERNAL_ERROR, "Did not expect to get
metadata for metadata inserter", null), state);
} else if(state != sfi) {
Logger.error(this, "Got unknown metadata");
- // FIXME kill?
+ onFailure(new
InserterException(InserterException.INTERNAL_ERROR, "Did not expect to get
metadata for metadata inserter", null), state);
}
if(reportMetadataOnly) {
cb.onMetadata(meta, this);
Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java 2006-01-26 19:39:07 UTC
(rev 7937)
+++ trunk/freenet/src/freenet/node/PeerNode.java 2006-01-26 20:21:46 UTC
(rev 7938)
@@ -280,10 +280,11 @@
/**
* Is this node currently connected?
- * Synchronized so that we don't return until after e.g.
- * completedHandshake has returned in PacketSender.
+ *
+ * Note possible deadlocks! PeerManager calls this, we call
+ * PeerManager in e.g. verified.
*/
- public synchronized boolean isConnected() {
+ public boolean isConnected() {
return isConnected;
}
@@ -693,7 +694,8 @@
* KeyTracker for this node. Will promote the unverifiedTracker
* if necessary.
*/
- public synchronized void verified(KeyTracker tracker) {
+ public void verified(KeyTracker tracker) {
+ synchronized(this) {
if(tracker == unverifiedTracker) {
Logger.minor(this, "Promoting unverified tracker "+tracker);
if(previousTracker != null) {
@@ -706,9 +708,10 @@
unverifiedTracker = null;
isConnected = true;
ctx = null;
- node.peers.addConnectedPeer(this);
maybeSendInitialMessages();
- }
+ } else return;
+ }
+ node.peers.addConnectedPeer(this);
}
private synchronized boolean invalidVersion() {
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-01-26 19:39:07 UTC (rev
7937)
+++ trunk/freenet/src/freenet/node/Version.java 2006-01-26 20:21:46 UTC (rev
7938)
@@ -20,10 +20,10 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- public static final int buildNumber = 389;
+ public static final int buildNumber = 390;
/** Oldest build of Fred we will talk to */
- public static final int lastGoodBuild = 386;
+ public static final int lastGoodBuild = 390;
/** The highest reported build of fred */
public static int highestSeenBuild = buildNumber;