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()) {