From 5d0ce36db860737d6ad04a419b8646f585ec9ae6 Mon Sep 17 00:00:00 2001 From: David McKnight Date: Wed, 1 Aug 2012 15:41:07 +0000 Subject: [PATCH] [385630] [dstore] backup files created during upload should be removed when upload successful --- .../dstore/core/model/ByteStreamHandler.java | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/rse/plugins/org.eclipse.dstore.core/src/org/eclipse/dstore/core/model/ByteStreamHandler.java b/rse/plugins/org.eclipse.dstore.core/src/org/eclipse/dstore/core/model/ByteStreamHandler.java index ca155dcef5b..86c5633e35f 100644 --- a/rse/plugins/org.eclipse.dstore.core/src/org/eclipse/dstore/core/model/ByteStreamHandler.java +++ b/rse/plugins/org.eclipse.dstore.core/src/org/eclipse/dstore/core/model/ByteStreamHandler.java @@ -67,7 +67,9 @@ public class ByteStreamHandler implements IByteStreamHandler if (_doBackups){ String keepBackups = System.getProperty("keepbackupfiles"); //$NON-NLS-1$ - _keepBackups = (keepBackups == null || keepBackups.equals("true")); //$NON-NLS-1$ + + // default is not NOT keep backups + _keepBackups = (keepBackups != null && keepBackups.equals("true")); //$NON-NLS-1$ } } @@ -90,27 +92,35 @@ public class ByteStreamHandler implements IByteStreamHandler public void run(){ super.run(); boolean doneDelete = false; + while (!doneDelete){ try { Thread.sleep(10000); // wait 10 seconds } catch (InterruptedException e){ } - - long curLength = _currentFile.length(); - if (curLength == _initialLength){ // looks like total upload is complete - _backupFile.delete(); + + // make sure there was no disconnect + if (!_dataStore.isConnected()){ + // keep the backup doneDelete = true; - } + } else { - _initialLength = curLength; + long curLength = _currentFile.length(); + if (curLength == _initialLength){ // looks like total upload is complete + _backupFile.delete(); + doneDelete = true; + } + else { + _initialLength = curLength; + } } } } } private void deleteBackupFile(File currentFile, File backupFile){ - if (backupFile != null && _keepBackups){ // only matters if there is a backup file + if (backupFile != null && !_keepBackups){ // only matters if there is a backup file DeleteBackupThread thread = new DeleteBackupThread(_dataStore, currentFile, backupFile); thread.start(); }