Interessantes Problem. Java in Notes ist wirklich ein bischen Geisterbahn.
Aber nein, ich bin mir eben nicht sicher ob der Agent wirklich terminiert.
der Agent terminiert, MainFrame wird aber nicht garbageCollected.
Garbage Collection kann man nicht erzwingen.
Versuch mal so:
import lotus.domino.*;
import de.timetoact.xmleditor.gui.MainFrame;
public class JavaAgent extends AgentBase {
public static boolean stayingAlive = true;
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
Database db = agentContext.getCurrentDatabase();
View view = db.getView("LookXMLs");
DocumentCollection col = agentContext.getUnprocessedDocuments();
Document xml = col.getFirstDocument();
Document dtd = view.getDocumentByKey("test.dtd");
//MainFrame = erweiterte JFrame
MainFrame f = new MainFrame(xml,dtd);
while (stayingAlive) { }
f = null;
dtd.recycle();
xml.recycle();
col.recycle();
session.recycle();
} catch(Exception e) {
e.printStackTrace();
}
}
}
In dem WindowsAdapter dann die Zeile:
JavaAgent.stayingAlive = false;