summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx
diff options
context:
space:
mode:
authorSimon Rettberg2015-09-03 19:11:32 +0200
committerSimon Rettberg2015-09-03 19:11:32 +0200
commit548c095f6ab3297f8b0fbb141f7599d6acb6c80a (patch)
treee27534a06ad55630318bea98b56e21df10e7cc4a /dozentenmodul/src/main/java/org/openslx
parent[client] Don't go crazy on lectures without an image (diff)
downloadtutor-module-548c095f6ab3297f8b0fbb141f7599d6acb6c80a.tar.gz
tutor-module-548c095f6ab3297f8b0fbb141f7599d6acb6c80a.tar.xz
tutor-module-548c095f6ab3297f8b0fbb141f7599d6acb6c80a.zip
[client] Fix NPE when deleting images while there are lectures with no image
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java29
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/util/VmWrapper.java35
2 files changed, 47 insertions, 17 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java
index 9022534c..29a977d4 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java
@@ -742,7 +742,7 @@ public class ThriftActions {
List<LectureSummary> lectureList = ThriftManager.getSatClient().getLectureList(
Session.getSatelliteToken(), 100);
for (LectureSummary lecture : lectureList) {
- if (lecture.getImageBaseId().equals(imageBaseId)) {
+ if (imageBaseId.equals(lecture.getImageBaseId())) {
if (lecturesToBeDeleted == null)
lecturesToBeDeleted = new ArrayList<LectureSummary>();
lecturesToBeDeleted.add(lecture);
@@ -761,28 +761,24 @@ public class ThriftActions {
"Fehler beim Holen der Versionen/Veranstaltung zu folgendes Image: " + imageBaseId);
return;
}
- String questionText = "";
- if (versionToBeDeleted != null) {
+ String questionText;
+ if (versionToBeDeleted != null && !versionToBeDeleted.isEmpty()) {
questionText = "Dieses Image hat folgende gültige Versionen:\n";
for (ImageVersionDetails version : versionToBeDeleted) {
questionText += version.getVersionId() + "\n";
}
+ questionText += "\n";
} else {
- questionText = "Dieses Image hat keine gültige Version.\n";
+ questionText = "";
}
- if (lecturesToBeDeleted != null) {
- if (!questionText.isEmpty())
- questionText += "\n";
- questionText += "Dieses Image ist zu folgende Veranstaltungen verknüpft:\n";
+ if (lecturesToBeDeleted != null && !lecturesToBeDeleted.isEmpty()) {
+ questionText += "Dieses Image ist mit folgenden Veranstaltungen verknüpft:\n";
for (LectureSummary lecture : lecturesToBeDeleted) {
questionText += lecture.getLectureName() + "\n";
}
- } else {
- if (!questionText.isEmpty())
- questionText += "\n";
- questionText += "Dieses Image ist zu keine Veranstaltungen verknüpft.\n";
+ questionText += "\n";
}
- questionText += "\nWollen Sie dieses Image wirklich löschen?\n";
+ questionText += "Wollen Sie dieses Image wirklich löschen?";
if (!userConfirmed(frame, questionText))
return;
try {
@@ -827,7 +823,7 @@ public class ThriftActions {
boolean matches = false;
if (lectureList != null && !lectureList.isEmpty()) {
for (LectureSummary lecture : lectureList) {
- if (lecture.getImageVersionId().equals(imageVersionId)) {
+ if (imageVersionId.equals(lecture.getImageVersionId())) {
if (!matches)
questionText = "Diese Version ist zu folgende Veranstaltungen verknüpft:\n";
matches = true;
@@ -838,8 +834,7 @@ public class ThriftActions {
questionText += "\nWollen Sie diese Version samt Veranstaltungen löschen?\n";
}
if (!matches)
- questionText = "Diese Version ist zu keine Veranstaltungen verknüpft.\n"
- + "Wollen Sie sie wirklich löschen?";
+ questionText = "Wollen Sie diese Image-Version wirklich löschen?";
if (!userConfirmed(frame, questionText))
return;
@@ -1096,7 +1091,7 @@ public class ThriftActions {
* @return true if the user confirmed (clicked yes), false otherwise
*/
private static boolean userConfirmed(final Frame frame, final String message) {
- return Gui.showMessageBox(frame, message, MessageType.QUESTION_YESNO, LOGGER, null);
+ return Gui.showMessageBox(frame, message, MessageType.QUESTION_YESNO, null, null);
}
/**
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/util/VmWrapper.java b/dozentenmodul/src/main/java/org/openslx/dozmod/util/VmWrapper.java
index 3663a0ad..fc1623fc 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/util/VmWrapper.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/util/VmWrapper.java
@@ -3,6 +3,15 @@ package org.openslx.dozmod.util;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
+import java.lang.management.ManagementFactory;
+
+import javax.management.AttributeNotFoundException;
+import javax.management.InstanceNotFoundException;
+import javax.management.MBeanException;
+import javax.management.MBeanServer;
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectName;
+import javax.management.ReflectionException;
import org.apache.commons.io.FileUtils;
import org.apache.log4j.Logger;
@@ -43,6 +52,15 @@ public class VmWrapper {
}
}
}
+ vmwareConfig.addDisplayName(imageName);
+ int mem = getMainMemoryMb() / 2;
+ if (mem < 1024) {
+ mem = 1024;
+ } else if (mem > 4096) {
+ mem = 4096;
+ }
+ vmwareConfig.addRam(mem);
+ // Output vmx
File vmxFile = new File(diskFile.getAbsolutePath() + ".vmx");
vmxFile.delete();
FileUtils.writeByteArrayToFile(vmxFile, vmwareConfig.getFilteredDefinitionArray());
@@ -77,4 +95,21 @@ public class VmWrapper {
private static final long serialVersionUID = -7842986428831219758L;
}
+ private static int getMainMemoryMb() {
+ MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
+ Object attribute;
+ try {
+ attribute = mBeanServer.getAttribute(new ObjectName("java.lang", "type", "OperatingSystem"),
+ "TotalPhysicalMemorySize");
+ } catch (AttributeNotFoundException | InstanceNotFoundException | MalformedObjectNameException
+ | MBeanException | ReflectionException e) {
+ return -1;
+ }
+ try {
+ return (int) (Long.parseLong(attribute.toString()) / (1024 * 1024));
+ } catch (Exception e) {
+ return -1;
+ }
+ }
+
}