summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/UploadPanel.java
diff options
context:
space:
mode:
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/UploadPanel.java')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/UploadPanel.java22
1 files changed, 18 insertions, 4 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/UploadPanel.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/UploadPanel.java
index 6b8c5a94..7e56b0e8 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/UploadPanel.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/UploadPanel.java
@@ -34,7 +34,7 @@ public class UploadPanel extends TransferPanel implements QuitNotification {
private static final Logger LOGGER = LogManager.getLogger(UploadPanel.class);
- private final UploadInitiator state;
+ private UploadInitiator state;
private final UploadPanel panel = this;
@@ -59,26 +59,33 @@ public class UploadPanel extends TransferPanel implements QuitNotification {
private class ButtonAction implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
+ if (state == null)
+ return;
+ state.getUploadTask().removeListener(panel);
if (!state.getUploadTask().isCanceled()) {
if (!Gui.showMessageBox(panel, I18n.ACTIVITY.getString("UploadPanel.Message.yesNo.cancelTransfer"),
MessageType.QUESTION_YESNO, null, null))
return;
+ final UploadInitiator fstate = state;
QuickTimer.scheduleOnce(new Task() {
@Override
public void fire() {
- state.cancelError("UploadPanel: Requested by user through button press");
+ fstate.cancelError("UploadPanel: Requested by user through button press");
}
});
}
- state.getUploadTask().removeListener(panel);
close();
+ state = null;
}
}
private class SscToggle implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
+ if (state == null)
+ return;
final UploadOptions options = new UploadOptions(chkServerSideCopy.isSelected());
+ final UploadInitiator fstate = state;
QuickTimer.scheduleOnce(new Task() {
@Override
public void fire() {
@@ -86,7 +93,7 @@ public class UploadPanel extends TransferPanel implements QuitNotification {
UploadOptions newOpt = null;
try {
newOpt = ThriftManager.getSatClient().setUploadOptions(Session.getSatelliteToken(),
- state.getToken(), options);
+ fstate.getToken(), options);
} catch (TAuthorizationException | TInvalidTokenException e) {
dis = true;
} catch (TException e) {
@@ -117,6 +124,13 @@ public class UploadPanel extends TransferPanel implements QuitNotification {
@Override
public void onApplicationQuit() {
// Application quit, tell server we cancel
+ if (state == null)
+ return;
state.cancelError("Application quit (via UploadPanel)");
}
+
+ @Override
+ protected void releaseResources() {
+ state = null;
+ }
}