Author: toad
Date: 2006-08-16 18:45:53 +0000 (Wed, 16 Aug 2006)
New Revision: 10123
Modified:
trunk/freenet/src/freenet/client/async/SingleFileInserter.java
trunk/freenet/src/freenet/node/Version.java
Log:
944: Fix insert-resuming-causes-corruption (inserting the metadata as data) bug
(second part of fix :) )
Modified: trunk/freenet/src/freenet/client/async/SingleFileInserter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SingleFileInserter.java
2006-08-16 16:58:39 UTC (rev 10122)
+++ trunk/freenet/src/freenet/client/async/SingleFileInserter.java
2006-08-16 18:45:53 UTC (rev 10123)
@@ -83,7 +83,7 @@
// If we succeed, we bypass both compression
and FEC encoding!
try {
SplitHandler sh = new SplitHandler();
- sh.start(fs);
+ sh.start(fs, false);
cb.onTransition(this, sh);
return;
} catch (ResumeException e) {
@@ -288,26 +288,29 @@
* @throws InserterException Thrown if some other error
prevents the insert
* from starting.
*/
- void start(SimpleFieldSet fs) throws ResumeException,
InserterException {
+ void start(SimpleFieldSet fs, boolean forceMetadata) throws
ResumeException, InserterException {
+ boolean meta = metadata || forceMetadata;
+
// Don't include the booleans; wait for the callback.
SimpleFieldSet sfiFS = fs.subset("SplitFileInserter");
if(sfiFS == null)
throw new ResumeException("No
SplitFileInserter");
ClientPutState newSFI, newMetaPutter = null;
- newSFI = new SplitFileInserter(parent, this,
block.clientMetadata, ctx, getCHKOnly, metadata, token,
insertAsArchiveManifest, sfiFS);
+ newSFI = new SplitFileInserter(parent, this,
block.clientMetadata, ctx, getCHKOnly, meta, token, insertAsArchiveManifest,
sfiFS);
fs.removeSubset("SplitFileInserter");
SimpleFieldSet metaFS = fs.subset("MetadataPutter");
if(metaFS != null) {
try {
String type = metaFS.get("Type");
if(type.equals("SplitFileInserter")) {
+ // FIXME
insertAsArchiveManifest ?!?!?!
newMetaPutter =
new
SplitFileInserter(parent, this, block.clientMetadata, ctx, getCHKOnly, true,
token, insertAsArchiveManifest, metaFS);
} else if(type.equals("SplitHandler")) {
newMetaPutter = new
SplitHandler();
-
((SplitHandler)newMetaPutter).start(metaFS);
+
((SplitHandler)newMetaPutter).start(metaFS, true);
}
} catch (ResumeException e) {
// Ignore, it will be reconstructed
later
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-08-16 16:58:39 UTC (rev
10122)
+++ trunk/freenet/src/freenet/node/Version.java 2006-08-16 18:45:53 UTC (rev
10123)
@@ -18,7 +18,7 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- private static final int buildNumber = 943;
+ private static final int buildNumber = 944;
/** Oldest build of Fred we will talk to */
private static final int oldLastGoodBuild = 920;