Author: toad
Date: 2009-04-03 17:15:36 +0000 (Fri, 03 Apr 2009)
New Revision: 26463

Modified:
   trunk/freenet/src/freenet/client/async/SimpleManifestPutter.java
Log:
Activation, remove the metadatas when metadata putters by metadata not empty


Modified: trunk/freenet/src/freenet/client/async/SimpleManifestPutter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SimpleManifestPutter.java    
2009-04-03 17:06:24 UTC (rev 26462)
+++ trunk/freenet/src/freenet/client/async/SimpleManifestPutter.java    
2009-04-03 17:15:36 UTC (rev 26463)
@@ -1656,12 +1656,17 @@
                        Logger.error(this, "Put handlers list still present in 
removeFrom() on "+this);
                        removePutHandlers(container, context);
                }
-               if(finalURI != null) finalURI.removeFrom(container);
+               if(finalURI != null) {
+                       container.activate(finalURI, 5);
+                       finalURI.removeFrom(container);
+               }
+               container.activate(targetURI, 5);
                targetURI.removeFrom(container);
                container.activate(ctx, 1);
                ctx.removeFrom(container);
                container.activate(metadataPuttersByMetadata, 2);
                container.activate(metadataPuttersUnfetchable, 2);
+               ArrayList<Metadata> metas = null;
                if(!metadataPuttersByMetadata.isEmpty()) {
                        Logger.error(this, "Metadata putters by metadata not 
empty in removeFrom() on "+this);
                        for(Map.Entry<Metadata, ClientPutState> entry : 
metadataPuttersByMetadata.entrySet()) {
@@ -1673,6 +1678,8 @@
                                Logger.error(this, "Metadata putters not empty: 
"+sfi+" for "+this);
                                sfi.cancel(container, context);
                                sfi.removeFrom(container, context);
+                               if(metas == null) metas = new 
ArrayList<Metadata>();
+                               metas.add(meta);
                        }
                }
                if(!metadataPuttersUnfetchable.isEmpty()) {
@@ -1688,6 +1695,12 @@
                                sfi.removeFrom(container, context);
                        }
                }
+               if(metas != null) {
+                       for(Metadata meta : metas) {
+                               container.activate(meta, 1);
+                               meta.removeFrom(container);
+                       }
+               }
                metadataPuttersByMetadata.clear();
                metadataPuttersUnfetchable.clear();
                container.delete(metadataPuttersByMetadata);

_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to