private final class ResourceLeakDetector.DefaultResourceLeak extends java.lang.ref.PhantomReference<java.lang.Object> implements ResourceLeakTracker<T>, ResourceLeak
Modifier and Type | Field and Description |
---|---|
private java.lang.String |
creationRecord |
private java.util.Deque<java.lang.String> |
lastRecords |
private int |
removedRecords |
private int |
trackedHash |
Constructor and Description |
---|
DefaultResourceLeak(java.lang.Object referent) |
Modifier and Type | Method and Description |
---|---|
boolean |
close()
Close the leak so that
ResourceLeakDetector does not warn about leaked resources. |
boolean |
close(T trackedObject)
Close the leak so that
ResourceLeakTracker does not warn about leaked resources. |
void |
record()
Records the caller's current stack trace so that the
ResourceLeakDetector can tell where the leaked
resource was accessed lastly. |
void |
record(java.lang.Object hint)
Records the caller's current stack trace and the specified additional arbitrary information
so that the
ResourceLeakDetector can tell where the leaked resource was accessed lastly. |
private void |
record0(java.lang.Object hint,
int recordsToSkip) |
java.lang.String |
toString() |
private final java.lang.String creationRecord
private final java.util.Deque<java.lang.String> lastRecords
private final int trackedHash
private int removedRecords
public void record()
ResourceLeakTracker
ResourceLeakDetector
can tell where the leaked
resource was accessed lastly. This method is a shortcut to record(null)
.record
in interface ResourceLeak
record
in interface ResourceLeakTracker<T>
public void record(java.lang.Object hint)
ResourceLeakTracker
ResourceLeakDetector
can tell where the leaked resource was accessed lastly.record
in interface ResourceLeak
record
in interface ResourceLeakTracker<T>
private void record0(java.lang.Object hint, int recordsToSkip)
public boolean close()
ResourceLeak
ResourceLeakDetector
does not warn about leaked resources.close
in interface ResourceLeak
true
if called first time, false
if called alreadypublic boolean close(T trackedObject)
ResourceLeakTracker
ResourceLeakTracker
does not warn about leaked resources.
After this method is called a leak associated with this ResourceLeakTracker should not be reported.close
in interface ResourceLeakTracker<T>
true
if called first time, false
if called alreadypublic java.lang.String toString()
toString
in class java.lang.Object