Author: jflesch
Date: 2007-07-08 16:56:02 +0000 (Sun, 08 Jul 2007)
New Revision: 13993

Modified:
   trunk/apps/Thaw/src/thaw/core/Logger.java
   trunk/apps/Thaw/src/thaw/fcp/FCPClientGet.java
   trunk/apps/Thaw/src/thaw/fcp/FCPClientPut.java
   trunk/apps/Thaw/src/thaw/fcp/FCPQueueManager.java
Log:
Add support for the messages PersistentRequestRemoved & 
PersistentRequestModified

Modified: trunk/apps/Thaw/src/thaw/core/Logger.java
===================================================================
--- trunk/apps/Thaw/src/thaw/core/Logger.java   2007-07-08 16:16:18 UTC (rev 
13992)
+++ trunk/apps/Thaw/src/thaw/core/Logger.java   2007-07-08 16:56:02 UTC (rev 
13993)
@@ -22,7 +22,7 @@
         * 2 or more is recommanded.
         * 4 or more is unhealthy
         */
-       public final static int LOG_LEVEL = 3;
+       public final static int LOG_LEVEL = 5;

        private static Vector logListeners = null;


Modified: trunk/apps/Thaw/src/thaw/fcp/FCPClientGet.java
===================================================================
--- trunk/apps/Thaw/src/thaw/fcp/FCPClientGet.java      2007-07-08 16:16:18 UTC 
(rev 13992)
+++ trunk/apps/Thaw/src/thaw/fcp/FCPClientGet.java      2007-07-08 16:56:02 UTC 
(rev 13993)
@@ -408,15 +408,50 @@
                        return;
                }

-               if(message.getMessageName().equals("GetFailed")) {
+
+               /* we assume that the change is not about the clientToken */
+               if 
("PersistentRequestModified".equals(message.getMessageName())) {
+                       if (message.getValue("PriorityClass") == null) {
+                               Logger.warning(this, "No priority specified ?! 
Message ignored.");
+                       } else {
+                               priority = 
Integer.parseInt(message.getValue("PriorityClass"));
+                       }
+                       return;
+               }
+
+               if 
("PersistentRequestRemoved".equals(message.getMessageName())) {
+                       status = "Removed";
+
+                       if (!isFinished()) {
+                               progress = 100;
+                               running = false;
+                               successful = false;
+                               fatal = true;
+                       }
+
+                       Logger.info(this, "PersistentRequestRemoved >> Removing 
from the queue");
+                       queueManager.getQueryManager().deleteObserver(this);
+                       queueManager.remove(this);
+
+                       setChanged();
+                       notifyObservers();
+                       return;
+               }
+
+
+               if ("GetFailed".equals(message.getMessageName())) {
                        Logger.debug(this, "GetFailed !");

                        if (message.getValue("RedirectURI") != null) {
                                Logger.debug(this, "Redirected !");
                                key = message.getValue("RedirectURI");
                                status = "Redirected ...";
-                               restartIfFailed = true;
-                               stop(queueManager);
+                               if 
(queueManager.isOur(message.getValue("Identifier"))) {
+                                       restartIfFailed = true;
+                                       stop(queueManager);
+                               } else {
+                                       Logger.debug(this, "Not our transfer ; 
we don't touch");
+                               }
                        }

                        if (restartIfFailed) {
@@ -449,15 +484,13 @@
                                status = status + " (non-fatal)";
                        }

-                       queueManager.getQueryManager().deleteObserver(this);
-
                        setChanged();
                        this.notifyObservers();

                        return;
                }

-               if(message.getMessageName().equals("SimpleProgress")) {
+               if ("SimpleProgress".equals(message.getMessageName())) {
                        Logger.debug(this, "SimpleProgress !");

                        progress = 0;
@@ -487,7 +520,7 @@
                        return;
                }

-               if(message.getMessageName().equals("AllData")) {
+               if ("AllData".equals(message.getMessageName())) {
                        Logger.debug(this, "AllData ! : " + identifier);

                        fileSize = message.getAmountOfDataWaiting();
@@ -541,7 +574,7 @@
                        return;
                }

-               if(message.getMessageName().equals("PersistentGet")) {
+               if ("PersistentGet".equals(message.getMessageName())) {
                        Logger.debug(this, "PersistentGet !");
                        setChanged();
                        notifyObservers();

Modified: trunk/apps/Thaw/src/thaw/fcp/FCPClientPut.java
===================================================================
--- trunk/apps/Thaw/src/thaw/fcp/FCPClientPut.java      2007-07-08 16:16:18 UTC 
(rev 13992)
+++ trunk/apps/Thaw/src/thaw/fcp/FCPClientPut.java      2007-07-08 16:56:02 UTC 
(rev 13993)
@@ -606,8 +606,36 @@
                                return;
                        }

-                       if("PutFailed".equals( msg.getMessageName() )) {
+                       if 
("PersistentRequestModified".equals(msg.getMessageName())) {
+                               if (msg.getValue("PriorityClass") == null) {
+                                       Logger.warning(this, "No priority 
specified ?! Message ignored.");
+                               } else {
+                                       priority = 
Integer.parseInt(msg.getValue("PriorityClass"));
+                               }
+                               return;
+                       }

+                       if 
("PersistentRequestRemoved".equals(msg.getMessageName())) {
+                               if (!isFinished()) {
+                                       successful = false;
+                                       running = false;
+                                       finished = true;
+                                       fatal = true;
+                                       status = "Removed";
+                               }
+
+                               Logger.info(this, "PersistentRequestRemoved >> 
Removing from the queue");
+                               
queueManager.getQueryManager().deleteObserver(this);
+                               queueManager.remove(this);
+
+                               setChanged();
+                               notifyObservers();
+                               return;
+                       }
+
+
+                       if ("PutFailed".equals( msg.getMessageName() )) {
+
                                successful = false;
                                running = false;
                                finished = true;

Modified: trunk/apps/Thaw/src/thaw/fcp/FCPQueueManager.java
===================================================================
--- trunk/apps/Thaw/src/thaw/fcp/FCPQueueManager.java   2007-07-08 16:16:18 UTC 
(rev 13992)
+++ trunk/apps/Thaw/src/thaw/fcp/FCPQueueManager.java   2007-07-08 16:56:02 UTC 
(rev 13993)
@@ -257,7 +257,9 @@
                Logger.info(this, "Restart done.");
        }

-
+       /**
+        * Don't stop()
+        */
        public void remove(final FCPTransferQuery query) {
                synchronized(runningQueries) {
                        runningQueries.remove(query);
@@ -502,6 +504,11 @@
                return (thawId+"_"+ Integer.toString(lastId));
        }

+       public boolean isOur(String queryId) {
+               return queryId.startsWith(thawId);
+       }
+
+
        public void update(final java.util.Observable o, final Object arg) {
                if((o == queryManager.getConnection())
                   && !queryManager.getConnection().isConnected()) {


Reply via email to