Author: jflesch
Date: 2006-12-29 20:25:00 +0000 (Fri, 29 Dec 2006)
New Revision: 11527

Modified:
   trunk/apps/Thaw/src/thaw/core/Core.java
   trunk/apps/Thaw/src/thaw/plugins/index/File.java
   trunk/apps/Thaw/src/thaw/plugins/index/FileManagementHelper.java
Log:
Don't allow file transfer from an index when it's not possible or when another 
transfer is already running

Modified: trunk/apps/Thaw/src/thaw/core/Core.java
===================================================================
--- trunk/apps/Thaw/src/thaw/core/Core.java     2006-12-29 19:20:07 UTC (rev 
11526)
+++ trunk/apps/Thaw/src/thaw/core/Core.java     2006-12-29 20:25:00 UTC (rev 
11527)
@@ -421,7 +421,10 @@

                        int nmbReconnect = 0;

-                       warningDialog = new 
JDialog(getMainWindow().getMainFrame());
+                       if (getMainWindow() != null) /* disconnection can 
happen when starting */
+                               warningDialog = new 
JDialog(getMainWindow().getMainFrame());
+                       else
+                               warningDialog = new JDialog();
                        warningDialog.setTitle("Thaw - reconnection");
                        warningDialog.setModal(false);
                        warningDialog.setSize(500, 100);

Modified: trunk/apps/Thaw/src/thaw/plugins/index/File.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/File.java    2006-12-29 19:20:07 UTC 
(rev 11526)
+++ trunk/apps/Thaw/src/thaw/plugins/index/File.java    2006-12-29 20:25:00 UTC 
(rev 11527)
@@ -30,7 +30,7 @@
        private long size = -1;
        private String category;

-       private String localPath;
+       private String localPath = null;
        private FCPTransferQuery transfer = null; /* can be null */

        private Index parent;
@@ -234,6 +234,16 @@
        }

        public void download(final String targetPath, final FCPQueueManager 
queueManager) {
+               if (!FreenetURIHelper.isAKey(getPublicKey())) {
+                       Logger.warning(this, "Can't start download: file key is 
unknown");
+                       return;
+               }
+
+               if (getTransfer() != null) {
+                       Logger.warning(this, "Can't download: a transfer is 
already running");
+                       return;
+               }
+
                final FCPClientGet clientGet = new FCPClientGet(getPublicKey(), 
4, 0, true, -1, targetPath);

                queueManager.addQueryToThePendingQueue(clientGet);
@@ -243,6 +253,11 @@


        public void insertOnFreenet(final FCPQueueManager queueManager) {
+               if (getTransfer() != null) {
+                       Logger.warning(this, "Another transfer is already 
running : can't insert");
+                       return;
+               }
+
                final FCPClientPut clientPut = new FCPClientPut(new 
java.io.File(getLocalPath()),
                                                          0, 0, null, null, 4, 
true, 0);
                queueManager.addQueryToThePendingQueue(clientPut);

Modified: trunk/apps/Thaw/src/thaw/plugins/index/FileManagementHelper.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/FileManagementHelper.java    
2006-12-29 19:20:07 UTC (rev 11526)
+++ trunk/apps/Thaw/src/thaw/plugins/index/FileManagementHelper.java    
2006-12-29 20:25:00 UTC (rev 11527)
@@ -115,7 +115,8 @@
                                        final thaw.plugins.index.File file = 
(thaw.plugins.index.File)it.next();

                                        if ((file.getLocalPath() == null)
-                                           || !file.isModifiable()) {
+                                           || !file.isModifiable()
+                                           || file.getTransfer() != null) {
                                                isOk = false;
                                                break;
                                        }


Reply via email to