void () { boolean shouldClose; synchronized (this) { --myUseCounter; shouldClose = myUseCounter == 0; } if (shouldClose) { try { myProjectStamps.close(); } finally { try { dataManager.close(); } catch (IOException e) { e.printStackTrace(System.err); } } } }