F
Florian Scheidler
Gast
Hallo zusammen,
für meine Java-Anwendung habe ich einen automatischen zeitgesteuerten Emailversand programmiert. Jeder Emailversand bzw. Task läuft allerdings nur 1 mal pro Tag. Man kann je Task festlegen wann die Email(s), an welche Empfänger, mit welchem Betreff, Text und Absender und welchen Dateianhängen verschickt wird. Technisch ist das Ganze folgendermaßen umgesetzt:
- Gleich nach dem Einloggen in meine Anwendung wird je Task ein Objekt der Klasse Clock und ein Objekt der Klasse Clock2 gebildet. Diese Klassen sind abgeleitet von Thread und stellen beide eine Zeitschleife dar, welche ständig (alle 5 Sek.) prüft ob einer der Tasks fällig wird.
- Die Klasse Clock dient nur zur Warnung der Benutzer 10 min. vor dem Start eines Tasks. "Achtung: Bitte alle Listen überprüfen. In zehn Minuten wird verschickt!"
- Klasse Clock2 schliesslich verschickt die Emails der Tasks.
Ein Benutzer kann sich aus dem Tool ausloggen und gleich wieder unter einem anderen oder demselben Namen anmelden, ohne die Anwendung komplett zu beenden. Zum Problem wird das, weil die beim 1. Einloggen erstellten Objekte von Clock und Clock2 weiterhin bestehen bleiben und beim 2. Einloggen wieder neue Objekte von Clock und Clock2 gebildet werden. Nun ist alles doppelt gemoppelt und kann sogar bei mehrmaligem aus- und einloggen bis ins unendliche gesteigert werden.
Ich müsste also kurz vor dem Ausloggen, die bisher vorhandenen Objekte von Clock und Clock2 zerstören.
Mit
clock.destroy();
clock = null;
clock2.destroy();
clock2 = null;
geht es leider nicht, da schmeisst Java einen unknown Source-Error.
Bitte helft mir, wie kann ich vorhandene Thread-Objekte zerstören???
Gruß Florian Scheidler
für meine Java-Anwendung habe ich einen automatischen zeitgesteuerten Emailversand programmiert. Jeder Emailversand bzw. Task läuft allerdings nur 1 mal pro Tag. Man kann je Task festlegen wann die Email(s), an welche Empfänger, mit welchem Betreff, Text und Absender und welchen Dateianhängen verschickt wird. Technisch ist das Ganze folgendermaßen umgesetzt:
- Gleich nach dem Einloggen in meine Anwendung wird je Task ein Objekt der Klasse Clock und ein Objekt der Klasse Clock2 gebildet. Diese Klassen sind abgeleitet von Thread und stellen beide eine Zeitschleife dar, welche ständig (alle 5 Sek.) prüft ob einer der Tasks fällig wird.
- Die Klasse Clock dient nur zur Warnung der Benutzer 10 min. vor dem Start eines Tasks. "Achtung: Bitte alle Listen überprüfen. In zehn Minuten wird verschickt!"
- Klasse Clock2 schliesslich verschickt die Emails der Tasks.
Ein Benutzer kann sich aus dem Tool ausloggen und gleich wieder unter einem anderen oder demselben Namen anmelden, ohne die Anwendung komplett zu beenden. Zum Problem wird das, weil die beim 1. Einloggen erstellten Objekte von Clock und Clock2 weiterhin bestehen bleiben und beim 2. Einloggen wieder neue Objekte von Clock und Clock2 gebildet werden. Nun ist alles doppelt gemoppelt und kann sogar bei mehrmaligem aus- und einloggen bis ins unendliche gesteigert werden.
Ich müsste also kurz vor dem Ausloggen, die bisher vorhandenen Objekte von Clock und Clock2 zerstören.
Mit
clock.destroy();
clock = null;
clock2.destroy();
clock2 = null;
geht es leider nicht, da schmeisst Java einen unknown Source-Error.
Bitte helft mir, wie kann ich vorhandene Thread-Objekte zerstören???
Gruß Florian Scheidler