Author: toad
Date: 2008-12-07 00:34:08 +0000 (Sun, 07 Dec 2008)
New Revision: 24114

Modified:
   trunk/freenet/src/freenet/node/updater/UpdateOverMandatoryManager.java
Log:
Merge 24109 to 24112.


Modified: trunk/freenet/src/freenet/node/updater/UpdateOverMandatoryManager.java
===================================================================
--- trunk/freenet/src/freenet/node/updater/UpdateOverMandatoryManager.java      
2008-12-07 00:08:49 UTC (rev 24113)
+++ trunk/freenet/src/freenet/node/updater/UpdateOverMandatoryManager.java      
2008-12-07 00:34:08 UTC (rev 24114)
@@ -87,8 +87,11 @@
        public static final int GRACE_TIME = 3 * 60 * 60 * 1000; // 3h
        private boolean logMINOR;
        private UserAlert alert;
-       private static final Pattern extBuildNumberPattern = 
Pattern.compile("^ext(?:-jar)?-(\\d+)\\.fblob(\\.tmp)*$");
-       private static final Pattern mainBuildNumberPattern = 
Pattern.compile("^main(?:-jar)?-(\\d+)\\.fblob(\\.tmp)*$");
+       private static final Pattern extBuildNumberPattern = 
Pattern.compile("^ext(?:-jar)?-(\\d+)\\.fblob$");
+       private static final Pattern mainBuildNumberPattern = 
Pattern.compile("^main(?:-jar)?-(\\d+)\\.fblob$");
+       private static final Pattern extTempBuildNumberPattern = 
Pattern.compile("^ext(?:-jar)?-(\\d+-)?(\\d+)\\.fblob\\.tmp*$");
+       private static final Pattern mainTempBuildNumberPattern = 
Pattern.compile("^main(?:-jar)?-(\\d+-)?(\\d+)\\.fblob\\.tmp*$");
+       private static final Pattern revocationTempBuildNumberPattern = 
Pattern.compile("^revocation(?:-jar)?-(\\d+-)?(\\d+)\\.fblob\\.tmp*$");
 
        public UpdateOverMandatoryManager(NodeUpdateManager manager) {
                this.updateManager = manager;
@@ -1420,6 +1423,7 @@
                FileBucket b = null;
                try {
                        f = File.createTempFile("main-", ".fblob.tmp", 
updateManager.node.clientCore.getPersistentTempDir());
+                       f.deleteOnExit();
                        b = new FileBucket(f, false, false, true, true, true);
                } catch(IOException e) {
                        Logger.error(this, "Cannot share main jar from " + 
source.userToString() + " with our peers because cannot write the cleaned 
version to disk: " + e, e);
@@ -1542,6 +1546,7 @@
                FileBucket b = null;
                try {
                        f = File.createTempFile("ext-", ".fblob.tmp", 
updateManager.node.clientCore.getPersistentTempDir());
+                       f.deleteOnExit();
                        b = new FileBucket(f, false, false, true, true, true);
                } catch(IOException e) {
                        Logger.error(this, "Cannot share ext jar from " + 
source.userToString() + " with our peers because cannot write the cleaned 
version to disk: " + e, e);
@@ -1648,17 +1653,33 @@
                                int buildNumber;
                                Matcher extBuildNumberMatcher = 
extBuildNumberPattern.matcher(fileName);
                                Matcher mainBuildNumberMatcher = 
mainBuildNumberPattern.matcher(fileName);
+                               Matcher extTempBuildNumberMatcher = 
extTempBuildNumberPattern.matcher(fileName);
+                               Matcher mainTempBuildNumberMatcher = 
mainTempBuildNumberPattern.matcher(fileName);
+                               Matcher revocationTempBuildNumberMatcher = 
revocationTempBuildNumberPattern.matcher(fileName);
 
                                if(mainBuildNumberMatcher.matches()) {
+                                       try {
                                        buildNumberStr = 
mainBuildNumberMatcher.group(1);
                                        buildNumber = 
Integer.parseInt(buildNumberStr);
                                        if(buildNumber < 
lastGoodMainBuildNumber)
                                                return true;
+                                       } catch (NumberFormatException e) {
+                                               Logger.error(this, "Wierd file 
in persistent temp: "+fileName);
+                                               return false;
+                                       }
                                } else if(extBuildNumberMatcher.matches()) {
+                                       try {
                                        buildNumberStr = 
extBuildNumberMatcher.group(1);
                                        buildNumber = 
Integer.parseInt(buildNumberStr);
                                        if(buildNumber < 
recommendedExtBuildNumber)
                                                return true;
+                                       } catch (NumberFormatException e) {
+                                               Logger.error(this, "Wierd file 
in persistent temp: "+fileName);
+                                               return false;
+                                       }
+                               } else if(mainTempBuildNumberMatcher.matches() 
|| extTempBuildNumberMatcher.matches() || 
revocationTempBuildNumberMatcher.matches()) {
+                                       // Temporary file, can be deleted
+                                       return true;
                                }
 
                                return false;

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

Reply via email to