summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/util
diff options
context:
space:
mode:
authorStephan Schwär2020-10-19 07:24:33 +0200
committerStephan Schwär2020-10-19 07:24:33 +0200
commit553645f7beebbdc057e94bdaea9096d7e59a9729 (patch)
treec2b7d9938a63bd177d4d0f11116ff7ffc17e244d /dozentenmodul/src/main/java/org/openslx/dozmod/util
parent[client] Improve cancel handling and feedback to user (diff)
downloadtutor-module-553645f7beebbdc057e94bdaea9096d7e59a9729.tar.gz
tutor-module-553645f7beebbdc057e94bdaea9096d7e59a9729.tar.xz
tutor-module-553645f7beebbdc057e94bdaea9096d7e59a9729.zip
[client] Better handling of ovfTool not found exception
+ Code cleanup
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/util')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/util/ConversionTaskWorker.java42
1 files changed, 26 insertions, 16 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/util/ConversionTaskWorker.java b/dozentenmodul/src/main/java/org/openslx/dozmod/util/ConversionTaskWorker.java
index 3e305e5f..e80e541c 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/util/ConversionTaskWorker.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/util/ConversionTaskWorker.java
@@ -11,6 +11,8 @@ import java.util.concurrent.ExecutionException;
import javax.swing.SwingWorker;
import org.apache.log4j.Logger;
+import org.openslx.dozmod.gui.Gui;
+import org.openslx.dozmod.gui.helper.MessageType;
import org.openslx.dozmod.gui.wizard.page.ImageOvfConversionPage;
public class ConversionTaskWorker extends SwingWorker<Boolean, String> {
@@ -21,33 +23,38 @@ public class ConversionTaskWorker extends SwingWorker<Boolean, String> {
private ImageOvfConversionPage page;
private Process process = null;
private String conversionCancelledText = "Konvertierung abgebrochen!";
+ private String ovfToolPath = "ovftool";
- public ConversionTaskWorker(File srcFile, File destFile, ImageOvfConversionPage page) {
+ /**
+ * Converts a given ovf and associated vmdk into an vmx and associated vmdk file
+ * via the vmWare ovftool Ovf images created with virtualBox are not supported.
+ *
+ * @param srcFile: Ovf source file
+ * @param destFile: Desired destination file
+ * @param page: Page that creates and starts the worker
+ * @param ovfToolPath: Path to the ovftool on the system
+ */
+ public ConversionTaskWorker(File srcFile, File destFile, ImageOvfConversionPage page, String ovfToolPath) {
this.srcFile = srcFile;
this.destFile = destFile;
this.page = page;
+ if (ovfToolPath != null) {
+ this.ovfToolPath = ovfToolPath;
+ }
}
@Override
protected Boolean doInBackground() throws Exception {
- try {
- process = new ProcessBuilder("ovftool", srcFile.getAbsolutePath(), destFile.getAbsolutePath()).start();
- } catch (IOException e) {
- return false;
- }
+ process = new ProcessBuilder(ovfToolPath, srcFile.getAbsolutePath(), destFile.getAbsolutePath()).start();
+
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
LOGGER.info("Running OVFTool");
- try {
- while ((line = br.readLine()) != null) {
- LOGGER.debug(line);
- publish(line);
- }
- } catch (IOException e) {
- LOGGER.error(e);
-
+ while ((line = br.readLine()) != null) {
+ LOGGER.debug(line);
+ publish(line);
}
return true;
}
@@ -55,8 +62,7 @@ public class ConversionTaskWorker extends SwingWorker<Boolean, String> {
@Override
protected void process(List<String> chunks) {
// Don't update the gui progress bar and text if cancelled as this thread my run
- // longer
- // and override our cancelled notifications.
+ // longer and override our cancelled notifications.
if (isCancelled())
return;
String progressText = chunks.get(chunks.size() - 1);
@@ -68,6 +74,7 @@ public class ConversionTaskWorker extends SwingWorker<Boolean, String> {
page.updateConversionProgressbar(progressInt);
} catch (NumberFormatException e) {
// We are only interested in integers for the progressbar
+ // should therefore be OK to discard the exceptions here.
}
}
@@ -79,13 +86,16 @@ public class ConversionTaskWorker extends SwingWorker<Boolean, String> {
page.danglingConversion = false;
page.updateConversionProgressbar(100);
} catch (InterruptedException e) {
+ LOGGER.debug("Conversion execution interrupted", e);
process.destroy();
page.updateConversionProgressbarText(conversionCancelledText);
} catch (CancellationException e) {
+ LOGGER.debug("Conversion execution Cancelled", e);
process.destroy();
page.updateConversionProgressbarText(conversionCancelledText);
} catch (ExecutionException e) {
e.printStackTrace();
+ Gui.showMessageBox(page, "Beim konvertieren ist ein Fehler aufgetreten.", MessageType.ERROR, LOGGER, e);
}
super.done();
}