Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino

Frage zu recycle()

<< < (2/3) > >>

Sebastianh:

--- Zitat von: jBubbleBoy am 12.11.09 - 17:56:45 ---Das "recycle" entfernt auch nicht wirklich das Objekt, das macht dann eigentlich der GarbageCollector von Java.

--- Ende Zitat ---
Ja, schon klar, dass das Javaobjekt vom Garbagecollector "behandelt" wird. Aber, so wie ich das verstanden hab, sind doch alle Klassen aus lotus.domino.* lediglich Wrapper für die eigentlichen C-Klassen. Ergo wird vom Garbage-Collector lediglich der Teil des Objektes gelöscht, der für Java angelegt worden ist, nicht aber der Teil der für den C-Teil des Objektes reserviert wurde, oder? (ich gehe jetzt mal davon aus, dass wenn ich ein Objekt mit xxx = new DominoObject(); erzeuge, immer auch Speicher reserviert wird, der eben NICHT vom Garbagecollector wieder freigegeben werden kann)

Im Endeffekt geht es mir darum, dass ich mehrere tausend Dokumente durchiteriere, da macht recycle oder nicht recycle schon was aus denke ich.

atbits:
Was Sebastian schreibt ist zu 100% korrekt.
Nur der Java-Teil wird vom GC behandelt, der C-Teil nicht.

Grüße David

Sebastianh:
was zurück zu meiner eigentlichen Frage führt, ich habe irgend ein x-beliebiges DominoObject (in diesem Fall halt lotus.domino.document), arbeite damit, setze es dann später auf "null". Jetzt kann ich auf dem Objekt kein "recycle()" mehr aufrufen, der Speicher (der C-Teil des Objektes) sollte nach meinem Verständnis aber noch im Speicher dem Objekt zugewiesen sein. Wie gebe ich diesen Speicher wieder frei, ohne die Möglichkeit zu haben, "recycle()" aufzurufen, oder muss ich mich darum nicht kümmern?

atbits:
Doch Du mußt Dich darum kümmern, sonst läuft Dir der Speicher voll.

Warum machst Du nicht


--- Code: ---doc.recycle();
doc == null;

--- Ende Code ---

Grüße David

Sebastianh:
siehe mein erster Post, ich befinde mich in einer while-Schleife, die als Abbruchbedinung eben prüft, ob mein Object gleich "null" ist, was bei der DocumentCollection ja irgendwann automatisch passiert. Wenn ich jetzt innerhalb des Schleifenrumpfes bereits recycle() aufrufe, dann recycle ich doch den C-Teil des Objektes das ich in den Vector stecke, was dazu führt, dass ich später darauf nicht mehr zugreifen kann.

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln