Author: toad
Date: 2006-07-21 18:03:36 +0000 (Fri, 21 Jul 2006)
New Revision: 9699
Modified:
trunk/freenet/src/freenet/client/async/ClientPutter.java
trunk/freenet/src/freenet/client/async/SingleFileInserter.java
trunk/freenet/src/freenet/clients/http/QueueToadlet.java
trunk/freenet/src/freenet/node/fcp/ClientGet.java
trunk/freenet/src/freenet/node/fcp/ClientPut.java
trunk/freenet/src/freenet/node/fcp/ClientPutDir.java
trunk/freenet/src/freenet/node/fcp/ClientRequest.java
trunk/freenet/src/freenet/node/fcp/PersistentGet.java
trunk/freenet/src/freenet/node/fcp/PersistentPut.java
trunk/freenet/src/freenet/node/fcp/PersistentPutDir.java
Log:
More insert resuming related fixes. Indicate whether a request is still
deserializing on the /queue/ page (needs prettifying).
Modified: trunk/freenet/src/freenet/client/async/ClientPutter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/ClientPutter.java 2006-07-21
17:27:46 UTC (rev 9698)
+++ trunk/freenet/src/freenet/client/async/ClientPutter.java 2006-07-21
18:03:36 UTC (rev 9699)
@@ -68,6 +68,7 @@
}
((SingleFileInserter)currentState).start(oldProgress);
} catch (InserterException e) {
+ Logger.error(this, "Failed to start insert: "+e, e);
synchronized(this) {
finished = true;
currentState = null;
@@ -141,10 +142,7 @@
}
public SimpleFieldSet getProgressFieldset() {
- if(currentState == null) {
- Logger.error(this, "getProgressFieldset() called on
"+this+" but no current progress");
- throw new NullPointerException();
- }
+ if(currentState == null) return null;
return currentState.getProgressFieldset();
}
Modified: trunk/freenet/src/freenet/client/async/SingleFileInserter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SingleFileInserter.java
2006-07-21 17:27:46 UTC (rev 9698)
+++ trunk/freenet/src/freenet/client/async/SingleFileInserter.java
2006-07-21 18:03:36 UTC (rev 9699)
@@ -92,6 +92,7 @@
// Run off thread
OffThreadCompressor otc = new OffThreadCompressor();
Thread t = new Thread(otc, "Compressor for "+this);
+ Logger.minor(this, "Compressing off-thread: "+t);
t.setDaemon(true);
t.start();
} else {
Modified: trunk/freenet/src/freenet/clients/http/QueueToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/QueueToadlet.java 2006-07-21
17:27:46 UTC (rev 9698)
+++ trunk/freenet/src/freenet/clients/http/QueueToadlet.java 2006-07-21
18:03:36 UTC (rev 9699)
@@ -462,6 +462,11 @@
private void writeProgressFractionCell(ClientRequest p, StringBuffer
buf) {
buf.append("<td>");
+ if(!p.isStarted()) {
+ buf.append("STARTING</td>");
+ return;
+ }
+
//double frac = p.getSuccessFraction();
double total;
if(node.getToadletContainer().isAdvancedDarknetEnabled())
@@ -478,6 +483,7 @@
if (Double.isNaN(failed)) failed = 0.0;
if (Double.isNaN(failed2)) failed2 = 0.0;
if (Double.isNaN(min)) min = 0.0;
+ if(min == 0.0) min = 1.0;
boolean b = p.isTotalFinalized();
if(fetched < 0) {
Modified: trunk/freenet/src/freenet/node/fcp/ClientGet.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientGet.java 2006-07-21 17:27:46 UTC
(rev 9698)
+++ trunk/freenet/src/freenet/node/fcp/ClientGet.java 2006-07-21 18:03:36 UTC
(rev 9699)
@@ -229,8 +229,10 @@
try {
getter.start();
} catch (FetchException e) {
+ started = true;
onFailure(e, null);
}
+ started = true;
}
public void onLostConnection() {
@@ -351,7 +353,7 @@
}
if(!onlyData) {
if(includePersistentRequest) {
- FCPMessage msg = new PersistentGet(identifier,
uri, verbosity, priorityClass, returnType, persistenceType, targetFile,
tempFile, clientToken, client.isGlobalQueue);
+ FCPMessage msg = new PersistentGet(identifier,
uri, verbosity, priorityClass, returnType, persistenceType, targetFile,
tempFile, clientToken, client.isGlobalQueue, started);
handler.queue(msg);
}
if(progressPending != null)
Modified: trunk/freenet/src/freenet/node/fcp/ClientPut.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientPut.java 2006-07-21 17:27:46 UTC
(rev 9698)
+++ trunk/freenet/src/freenet/node/fcp/ClientPut.java 2006-07-21 18:03:36 UTC
(rev 9699)
@@ -162,8 +162,10 @@
try {
inserter.start();
} catch (InserterException e) {
+ started = true;
onFailure(e, null);
}
+ started = true;
}
protected void freeData() {
@@ -200,7 +202,7 @@
protected FCPMessage persistentTagMessage() {
return new PersistentPut(identifier, uri, verbosity,
priorityClass, uploadFrom, targetURI,
persistenceType, origFilename,
clientMetadata.getMIMEType(), client.isGlobalQueue,
- data == null ? -1 : data.size(), clientToken);
+ data == null ? -1 : data.size(), clientToken,
started);
}
protected String getTypeName() {
Modified: trunk/freenet/src/freenet/node/fcp/ClientPutDir.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientPutDir.java 2006-07-21
17:27:46 UTC (rev 9698)
+++ trunk/freenet/src/freenet/node/fcp/ClientPutDir.java 2006-07-21
18:03:36 UTC (rev 9699)
@@ -135,8 +135,10 @@
try {
if(putter != null)
putter.start();
+ started = true;
Logger.minor(this, "Started "+putter);
} catch (InserterException e) {
+ started = true;
onFailure(e, null);
}
}
@@ -217,7 +219,7 @@
protected FCPMessage persistentTagMessage() {
return new PersistentPutDir(identifier, uri, verbosity,
priorityClass,
- persistenceType, global, defaultName,
manifestElements);
+ persistenceType, global, defaultName,
manifestElements, clientToken, started);
}
protected String getTypeName() {
Modified: trunk/freenet/src/freenet/node/fcp/ClientRequest.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientRequest.java 2006-07-21
17:27:46 UTC (rev 9698)
+++ trunk/freenet/src/freenet/node/fcp/ClientRequest.java 2006-07-21
18:03:36 UTC (rev 9699)
@@ -275,4 +275,10 @@
/** Start the request, if it has not already been started. */
public abstract void start();
+ protected boolean started;
+
+ public boolean isStarted() {
+ return started;
+ }
+
}
Modified: trunk/freenet/src/freenet/node/fcp/PersistentGet.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/PersistentGet.java 2006-07-21
17:27:46 UTC (rev 9698)
+++ trunk/freenet/src/freenet/node/fcp/PersistentGet.java 2006-07-21
18:03:36 UTC (rev 9699)
@@ -25,10 +25,11 @@
final File tempFile;
final String clientToken;
final boolean global;
+ final boolean started;
public PersistentGet(String identifier, FreenetURI uri, int verbosity,
short priorityClass, short returnType, short
persistenceType,
- File targetFile, File tempFile, String clientToken,
boolean global) {
+ File targetFile, File tempFile, String clientToken,
boolean global, boolean started) {
this.identifier = identifier;
this.uri = uri;
this.verbosity = verbosity;
@@ -39,6 +40,7 @@
this.tempFile = tempFile;
this.clientToken = clientToken;
this.global = global;
+ this.started = started;
}
public SimpleFieldSet getFieldSet() {
@@ -56,6 +58,7 @@
if(clientToken != null)
fs.put("ClientToken", clientToken);
fs.put("Global", Boolean.toString(global));
+ fs.put("Started", Boolean.toString(started));
return fs;
}
Modified: trunk/freenet/src/freenet/node/fcp/PersistentPut.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/PersistentPut.java 2006-07-21
17:27:46 UTC (rev 9698)
+++ trunk/freenet/src/freenet/node/fcp/PersistentPut.java 2006-07-21
18:03:36 UTC (rev 9699)
@@ -22,11 +22,12 @@
final FreenetURI targetURI;
final long size;
final String token;
+ final boolean started;
public PersistentPut(String identifier, FreenetURI uri, int verbosity,
short priorityClass, short uploadFrom, FreenetURI
targetURI,
short persistenceType, File origFilename, String
mimeType,
- boolean global, long size, String clientToken) {
+ boolean global, long size, String clientToken, boolean
started) {
this.identifier = identifier;
this.uri = uri;
this.verbosity = verbosity;
@@ -39,6 +40,7 @@
this.global = global;
this.size = size;
this.token = clientToken;
+ this.started = started;
}
public SimpleFieldSet getFieldSet() {
@@ -60,6 +62,7 @@
fs.put("DataLength", size);
if(token != null)
fs.put("ClientToken", token);
+ fs.put("Started", started);
return fs;
}
Modified: trunk/freenet/src/freenet/node/fcp/PersistentPutDir.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/PersistentPutDir.java 2006-07-21
17:27:46 UTC (rev 9698)
+++ trunk/freenet/src/freenet/node/fcp/PersistentPutDir.java 2006-07-21
18:03:36 UTC (rev 9699)
@@ -23,10 +23,12 @@
final boolean global;
private final HashMap manifestElements;
final String defaultName;
+ final String token;
+ final boolean started;
public PersistentPutDir(String identifier, FreenetURI uri, int
verbosity,
short priorityClass, short persistenceType, boolean
global,
- String defaultName, HashMap manifestElements) {
+ String defaultName, HashMap manifestElements, String
token, boolean started) {
this.identifier = identifier;
this.uri = uri;
this.verbosity = verbosity;
@@ -35,6 +37,8 @@
this.global = global;
this.defaultName = defaultName;
this.manifestElements = manifestElements;
+ this.token = token;
+ this.started = started;
}
public SimpleFieldSet getFieldSet() {
@@ -80,6 +84,9 @@
files.put(num, subset);
}
fs.put("Files", files);
+ if(token != null)
+ fs.put("ClientToken", token);
+ fs.put("Started", Boolean.toString(started));
return fs;
}