void release(boolean leak) { if (!releasedUpdater.compareAndSet(this, 0, 1)) { if (!leak) { String id = this.toString(); logger.info("BAD RELEASE: attempted to release a reference ({}) that has already been released", id); if (DEBUG_ENABLED) debug.log(id); //throw new IllegalStateException("Attempted to release a reference that has already been released"); } return; } Throwable fail = globalState.release(this, null); if (leak) { String id = this.toString(); logger.error("LEAK DETECTED: a reference ({}) to {} was not released before the reference was garbage collected", id, globalState); if (DEBUG_ENABLED) debug.log(id); } else if (DEBUG_ENABLED) { debug.deallocate(); } if (fail != null) logger.error("Error when closing {}", globalState, fail); } }
void release(boolean leak) { if (!releasedUpdater.compareAndSet(this, 0, 1)) { if (!leak) { String id = this.toString(); logger.error("BAD RELEASE: attempted to release a reference ({}) that has already been released", id); if (DEBUG_ENABLED) debug.log(id); throw new IllegalStateException("Attempted to release a reference that has already been released"); } return; } globalState.release(this); if (leak) { String id = this.toString(); logger.error("LEAK DETECTED: a reference ({}) to {} was not released before the reference was garbage collected", id, globalState); if (DEBUG_ENABLED) debug.log(id); } else if (DEBUG_ENABLED) { debug.deallocate(); } } }
void release(boolean leak) { if (!releasedUpdater.compareAndSet(this, 0, 1)) { if (!leak) { String id = this.toString(); logger.error("BAD RELEASE: attempted to release a reference ({}) that has already been released", id); if (DEBUG_ENABLED) debug.log(id); throw new IllegalStateException("Attempted to release a reference that has already been released"); } return; } Throwable fail = globalState.release(this, null); if (leak) { String id = this.toString(); logger.error("LEAK DETECTED: a reference ({}) to {} was not released before the reference was garbage collected", id, globalState); if (DEBUG_ENABLED) debug.log(id); } else if (DEBUG_ENABLED) { debug.deallocate(); } if (fail != null) logger.error("Error when closing {}", globalState, fail); } }
void release(boolean leak) { if (!releasedUpdater.compareAndSet(this, 0, 1)) { if (!leak) { String id = this.toString(); logger.error("BAD RELEASE: attempted to release a reference ({}) that has already been released", id); if (DEBUG_ENABLED) debug.log(id); throw new IllegalStateException("Attempted to release a reference that has already been released"); } return; } Throwable fail = globalState.release(this, null); if (leak) { String id = this.toString(); logger.error("LEAK DETECTED: a reference ({}) to {} was not released before the reference was garbage collected", id, globalState); if (DEBUG_ENABLED) debug.log(id); } else if (DEBUG_ENABLED) { debug.deallocate(); } if (fail != null) logger.error("Error when closing {}", globalState, fail); } }
void release(boolean leak) { if (!releasedUpdater.compareAndSet(this, 0, 1)) { if (!leak) { String id = this.toString(); logger.error("BAD RELEASE: attempted to release a reference ({}) that has already been released", id); if (DEBUG_ENABLED) debug.log(id); throw new IllegalStateException("Attempted to release a reference that has already been released"); } return; } Throwable fail = globalState.release(this, null); if (leak) { String id = this.toString(); logger.error("LEAK DETECTED: a reference ({}) to {} was not released before the reference was garbage collected", id, globalState); if (DEBUG_ENABLED) debug.log(id); } else if (DEBUG_ENABLED) { debug.deallocate(); } if (fail != null) logger.error("Error when closing {}", globalState, fail); } }
public String printDebugInfo() { if (DEBUG_ENABLED) { state.debug.log(state.toString()); return "Memory was freed by " + state.debug.deallocateThread; } return "Memory was freed"; }
void assertNotReleased() { if (DEBUG_ENABLED && released == 1) debug.log(toString()); assert released == 0; }
public String printDebugInfo() { if (DEBUG_ENABLED) { state.debug.log(state.toString()); return "Memory was freed by " + state.debug.deallocateThread; } return "Memory was freed"; }
Throwable ensureReleased(Throwable accumulate) { if (releasedUpdater.getAndSet(this, 1) == 0) { accumulate = globalState.release(this, accumulate); if (DEBUG_ENABLED) debug.deallocate(); } return accumulate; }
public String printDebugInfo() { if (DEBUG_ENABLED) { state.debug.log(state.toString()); return "Memory was freed by " + state.debug.deallocateThread; } return "Memory was freed"; }
Throwable ensureReleased(Throwable accumulate) { if (releasedUpdater.getAndSet(this, 1) == 0) { accumulate = globalState.release(this, accumulate); if (DEBUG_ENABLED) debug.deallocate(); } return accumulate; }
void ensureReleased() { if (releasedUpdater.getAndSet(this, 1) == 0) { globalState.release(this); if (DEBUG_ENABLED) debug.deallocate(); } }
public String printDebugInfo() { if (DEBUG_ENABLED) { state.debug.log(state.toString()); return "Memory was freed by " + state.debug.deallocateThread; } return "Memory was freed"; }
Throwable ensureReleased(Throwable accumulate) { if (releasedUpdater.getAndSet(this, 1) == 0) { accumulate = globalState.release(this, accumulate); if (DEBUG_ENABLED) debug.deallocate(); } return accumulate; }
void assertNotReleased() { if (DEBUG_ENABLED && released == 1) debug.log(toString()); assert released == 0; }
public String printDebugInfo() { if (DEBUG_ENABLED) { state.debug.log(state.toString()); return "Memory was freed by " + state.debug.deallocateThread; } return "Memory was freed"; }