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;


Reply via email to