ok, kurz zur erklärung. ich habe einen jtree, in dem ich als wurzel ein directory hab, darunter die darin enthaltenen datenbanken, darunter die views und darunter wiederum die dazugehörigen dokumente. ich habe jetzt eigene treenode-klassen für jede dieser domino-objekte geschrieben. ein treenode hat normalerweise eine methode getUserObject(), die das objekt zurückliefert, welches der knoten anzeigen soll. ich speichere in dem oben angegebenen fall mein database-objekt im userobjekt und rufe in der methode getDatabase() lediglich getUserObject() auf und caste entsprechend auf Database.
das ganze ist aber nur ein beispiel und tritt bei mir auch nicht das erste mal auf, in den anderen fällen hab ich das dann aber einfach anders geregelt (aka alles in der selben klasse gemacht), so dass ich keine probleme bekommen hab. anfangs wollte ich ein eigenes treemodel schreiben und wie gesagt, das gleiche problem trat dort auch auf.
prinzipiell könnte ich in dem fall zwar sicher prüfen, ob die datenbank gültig ist, aber kann ich denn auch, wenn sie es nicht ist, noch einige daten abfragen? denn wenn ich nicht weiß, welche datenbank das ist, kann ich auch kein neues objekt davon erstellen... nunja, ich werd mal ein wenig rumprobieren.
edit: schon am isOpen() scheitert das programm mit selbiger fehlermeldung... sieht also so aus, als wenn ich gar nicht da ran komme und somit kann ich es auch nicht neu erstellen. es muss ne möglichkeit geben, an das objekt ranzukommen, denn defacto existiert es ja noch (nur halt evtl innem anderen notesthread oder so). wenn nicht, tjo, dann ist das reichlich daneben...
edit2: ich muss wohl den startthread irgendwie am leben erhalten, wenn childthreads unterwegs sind. bei eventhandling ist das offenbar der fall. bis eben hab ich nicht darüber nachgedacht, dass meine main-methode nach erstellung und anzeige meines frames weiterläuft und nicht blockiert
so dass dann auch gleich wieder der notesthread terminiert wird, was ja nicht ganz im sinne des programms ist. ich wer also mal weiter rumprobieren
edit3: hab sinitthread jetzt im frame constructor gemacht und stermthread in windowClosed. allerdings wird das ja über eventhandling aufgerufen und somit fürchte ich, dass das quark ist, da das wieder ein eigener thread sein sollte :[
dennoch tritt der fehler nicht mehr auf. musste allerdings in den methoden, in denen ich mit dem datenbankobjekt arbeite, wieder ein init- und termthread machen, da es sonst andere fehler gibt. irgendwie find ich die api unnötig kompliziert... zu schade, dass domingo nicht ganz die funktionalität hat, sonst wäre das ganze evtl einiges einfacher...
auf jeden fall scheint es jetzt zu klappen, ich kann am tree rumspielen ohne fehler und mit erwartetem ergebnis, ist ne tolle sache
ich werd mich sicher nochmal melden, wenn ich weitere probleme mit der api habe oder so
und nichts desto trotz darfst du hier auch noch was schreiben, wenn du was anmerken willst, auch wenn es zu funzen scheint. danke dir ^^