Author: toad
Date: 2005-11-12 00:58:36 +0000 (Sat, 12 Nov 2005)
New Revision: 7534

Modified:
   trunk/freenet/src/freenet/node/Version.java
   trunk/freenet/src/freenet/support/PaddedEphemerallyEncryptedBucket.java
Log:
171:
Found the real fd leak. :)

Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2005-11-12 00:41:46 UTC (rev 
7533)
+++ trunk/freenet/src/freenet/node/Version.java 2005-11-12 00:58:36 UTC (rev 
7534)
@@ -20,10 +20,10 @@
        public static final String protocolVersion = "1.0";

        /** The build number of the current revision */
-       public static final int buildNumber = 170;
+       public static final int buildNumber = 171;

        /** Oldest build of Fred we will talk to */
-       public static final int lastGoodBuild = 170;
+       public static final int lastGoodBuild = 171;

        /** The highest reported build of fred */
        public static int highestSeenBuild = buildNumber;

Modified: 
trunk/freenet/src/freenet/support/PaddedEphemerallyEncryptedBucket.java
===================================================================
--- trunk/freenet/src/freenet/support/PaddedEphemerallyEncryptedBucket.java     
2005-11-12 00:41:46 UTC (rev 7533)
+++ trunk/freenet/src/freenet/support/PaddedEphemerallyEncryptedBucket.java     
2005-11-12 00:58:36 UTC (rev 7534)
@@ -101,21 +101,25 @@
                }

                public void close() throws IOException {
-                       if(streamNumber != lastOutputStream) {
-                               Logger.normal(this, "Not padding out to length 
because have been superceded: "+getName());
-                               return;
-                       }
-                       synchronized(PaddedEphemerallyEncryptedBucket.this) {
-                               long finalLength = paddedLength();
-                               long padding = finalLength - dataLength;
-                               byte[] buf = new byte[4096];
-                               long writtenPadding = 0;
-                               while(writtenPadding < padding) {
-                                       int left = Math.min((int) (padding - 
writtenPadding), buf.length);
-                                       paddingSource.nextBytes(buf);
-                                       out.write(buf, 0, left);
-                                       writtenPadding += left;
+                       try {
+                               if(streamNumber != lastOutputStream) {
+                                       Logger.normal(this, "Not padding out to 
length because have been superceded: "+getName());
+                                       return;
                                }
+                               
synchronized(PaddedEphemerallyEncryptedBucket.this) {
+                                       long finalLength = paddedLength();
+                                       long padding = finalLength - dataLength;
+                                       byte[] buf = new byte[4096];
+                                       long writtenPadding = 0;
+                                       while(writtenPadding < padding) {
+                                               int left = Math.min((int) 
(padding - writtenPadding), buf.length);
+                                               paddingSource.nextBytes(buf);
+                                               out.write(buf, 0, left);
+                                               writtenPadding += left;
+                                       }
+                               }
+                       } finally {
+                               out.close();
                        }
                }
        }
@@ -177,6 +181,10 @@
                        }
                        return skipped;
                }
+               
+               public void close() throws IOException {
+                       in.close();
+               }
        }

        /**


Reply via email to