diff options
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.java | 22 |
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; + } } |