Author: nextgens
Date: 2007-02-28 19:05:44 +0000 (Wed, 28 Feb 2007)
New Revision: 11930

Modified:
   trunk/freenet/src/freenet/client/InsertBlock.java
Log:
Better that way : prevent possible double-free.

Modified: trunk/freenet/src/freenet/client/InsertBlock.java
===================================================================
--- trunk/freenet/src/freenet/client/InsertBlock.java   2007-02-28 18:54:38 UTC 
(rev 11929)
+++ trunk/freenet/src/freenet/client/InsertBlock.java   2007-02-28 19:05:44 UTC 
(rev 11930)
@@ -12,12 +12,14 @@
 public class InsertBlock {

        private final Bucket data;
+       private boolean isFreed;
        public final FreenetURI desiredURI;
        public final ClientMetadata clientMetadata;

        public InsertBlock(Bucket data, ClientMetadata metadata, FreenetURI 
desiredURI) {
                if(data == null) throw new NullPointerException();
                this.data = data;
+               this.isFreed = false;
                if(metadata == null)
                        clientMetadata = new ClientMetadata();
                else
@@ -26,10 +28,11 @@
        }

        public Bucket getData() {
-               return data;
+               return (isFreed ? null : data);
        }

-       public void free(){
+       public synchronized void free(){
+               isFreed = true;
                data.free();
        }
 }


Reply via email to