protected Project project;
private FileScanner fileScanner;
protected final Object lockObject = new Object();
- private int maxRetries = 99999;
public void addInsertListener(InsertListener insertListener) {
insertListeners.add(insertListener);
this.freenetInterface = freenetInterface;
}
- /**
- * @param maxRetries
- * The maxRetries to set.
- */
- public void setMaxRetries(int maxRetries) {
- this.maxRetries = maxRetries;
- }
-
public void start() {
fileScanner = new FileScanner(project);
fileScanner.addFileScannerListener(this);
createContainers(files, containers, containerFiles);
/* collect files */
- int edition = ((EditionProject) project).getEdition();
+ int edition = project.getEdition();
String dirURI = "freenet:USK@" + project.getInsertURI() + "/" + project.getPath() + "/" + edition + "/";
ClientPutComplexDir putDir = new ClientPutComplexDir("dir-" + counter++, dirURI);
putDir.setDefaultName(project.getIndexFile());
putDir.setVerbosity(Verbosity.ALL);
- putDir.setMaxRetries(maxRetries);
+ putDir.setMaxRetries(-1);
for (String filename: files) {
FileEntry fileEntry = createFileEntry(filename, edition, containerFiles);
if (fileEntry != null) {
}
/* parse progress and success messages */
+ String finalURI = null;
boolean success = false;
boolean finished = false;
boolean disconnected = false;
if (!finished) {
String messageName = message.getName();
if ("URIGenerated".equals(messageName)) {
- fireProjectURIGenerated(message.get("URI"));
+ finalURI = message.get("URI");
+ fireProjectURIGenerated(finalURI);
}
if ("SimpleProgress".equals(messageName)) {
int total = Integer.parseInt(message.get("Total"));
/* post-insert work */
fireProjectInsertFinished(success, disconnected ? new IOException("Connection terminated") : null);
if (success) {
- if (project instanceof EditionProject) {
- ((EditionProject) project).setEdition(edition + 1);
- }
+ String editionPart = finalURI.substring(finalURI.lastIndexOf('/') + 1);
+ int newEdition = Integer.parseInt(editionPart);
+ project.setEdition(newEdition);
}
}