[debuggen] nich geschlossene Resource "finden"

dermoritz

Bekanntes Mitglied
ich hab da so eine Klasse die diverse Dinge Mit Dateien und Ordner macht. Z.B. Dateien zippen und Ordner umbenennen. Nun hab ich das Problem das die allerletzte umbenenn-Operation nicht funktioniert (es wird false zurückgegeben, im Explorer kann ich den Ordner solange das Programm läuft auch nicht umbenennen).

Die Frage ist nun, gibt es eine Möglichkeit herauszufinden welche Methode oder Klasse die Resource geöffnet hält bzw. vergessen hat sie zu schließen? Eventuell über Eclipse Debugger oder visualvm oder andere Tools?
 

nrg

Top Contributor
Unlocker oder LockHunter habe ich mir auch schon überlegt aber das zeigt dir doch nur den Prozess an, der die Datei zu dem Zeitpunkt lockt (in dem Fall java, javaw oder so).

Ich kenn jetzt kein Tool, was das macht. Sollte doch aber allein durch den SourceCode und Debugging möglich sein, sowas zu finden...

edit: kurz mal in Eclipse angeschaut. Gibt an einem Reader Objekten ein Attribut isOpen. Damit könntest du vllt sehen, welche Reader noch geöffnet sind (Wenn du z.B. ganz am Ende ein System.out.println("hallo welt") machst und dort einen Breakpoint setzt, fallen dir zumindest schonmal alle auf, die nicht geschlossen werden und erst durch das Beenden der VM die Ressource wieder freigeben)

edit2: Bzw. in deinem Fall tuts ein Breakpoint bei dem nicht funktionierenden rename eher.
 
Zuletzt bearbeitet:

dermoritz

Bekanntes Mitglied
vielen dank für den "reader objekt"-tip. werd ich mir mal anschauen.

Ich dachte nur das es etwas direkteres gibt analog zu Resourcen cpu und mem, bei denen ich ja sehen kann in welchen Objekten sie verbraten werden, könnte man ja auch andere Resourcen anzeigen.

Mit blankem debuggen -zeile für zeile durchgehen und checken wann der Lock aktiv ist- bin ich schon ein ganzes Stück weiter. Um das in Zukunft zu verhindern: gibt es eine Möglichkeit sowas in nem Unittest pauschal zu prüfen - also zu fragen sind noch irgendwelche Resourcen geöffnet.

Manchmal hilft auch findbugs und moniert, dass eine Resource eventuell nicht geschlossen wird, aber eben nicht immer.
 

dermoritz

Bekanntes Mitglied
ne der nützt nix - denn den Prozess, der die Ressource hält kenn ich - meine Java-Programm. Ich würde aber gerne Wissen welche Klasse oder besser Methode die Resource nicht schließt.
(inzwischen hab ich es mit mühseligem debugging rausgekriegt.-- Es war ein nicht geschlossener "Scanner".--
Nichts desto trotz wär etwas schön was einem zumindest klassenbezogen die verwendetetn Ressourcen anzeigen kann.)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Fehler beim Debuggen von Listen Allgemeine Java-Themen 4
Thallius Unfassbarer Fehler. Brauche Ideen zum Debuggen Allgemeine Java-Themen 9
A Applet Applet debuggen und Logs finden Allgemeine Java-Themen 3
N Thread interrupt Status debuggen Allgemeine Java-Themen 6
GianaSisters Erste Schritte Debuggen im CMD möglich ? Allgemeine Java-Themen 19
S Ant debuggen? Allgemeine Java-Themen 2
Stillmatic Debuggen/ Laufzeit von Methoden Allgemeine Java-Themen 2
GilbertGrape Durch JDK debuggen Allgemeine Java-Themen 2
M Debuggen von Code in jar-Files? Allgemeine Java-Themen 5
J Unmöglichen fehler debuggen? Allgemeine Java-Themen 12
S Debuggen externer libs Allgemeine Java-Themen 2
K gesamtes Programm debuggen aber wie Allgemeine Java-Themen 3
K java programm debuggen Allgemeine Java-Themen 3
I Wieso funktioniert das nich? Allgemeine Java-Themen 5
H Interpreter-Fehler jar startet mit 1.6 java nich Allgemeine Java-Themen 7
C Kapselung Warum graift man auf Variablen nur über Methoden und nich direkt zu? Allgemeine Java-Themen 10
J GregorianCalendar wil nich so recht as ick wol will Allgemeine Java-Themen 6
C Hilfe! Mein Java mag nich mehr ganz... Allgemeine Java-Themen 11
hdi volatile & Thread#sleep/yield - Versteh ich nich Allgemeine Java-Themen 14
A ArrayList: indexOf funzt nich Allgemeine Java-Themen 5
T Sound in JFrame: Ich krichs nich hin =( Allgemeine Java-Themen 7
J Kommerzieller Einsatz von Java - Ich blick da nich durch. Allgemeine Java-Themen 14

Ähnliche Java Themen

Neue Themen


Oben