@@ -124,17 +124,16 @@ public CrtResource() {
124124 * @param resource The resource to add a reference to
125125 */
126126 public void addReferenceTo (CrtResource resource ) {
127- resource .addRef ();
128-
129- synchronized (this ) {
130- referencedResources .add (resource );
131- }
132-
133127 if (debugNativeObjects ) {
134128 Log .log (ResourceLogLevel , Log .LogSubject .JavaCrtResource ,
135129 String .format ("%s(%d) is adding a reference to %s(%d)." ,
136130 this .getClass ().getCanonicalName (), id , resource .getClass ().getCanonicalName (), resource .id ));
137131 }
132+
133+ resource .addRef ();
134+ synchronized (this ) {
135+ referencedResources .add (resource );
136+ }
138137 }
139138
140139 /**
@@ -304,6 +303,10 @@ public void close() {
304303 decRef ("close() called" );
305304 }
306305
306+ public void close (String desc ) {
307+ decRef (desc );
308+ }
309+
307310 /**
308311 * Decrements the reference count to this resource. If zero is reached, begins (and possibly completes) the resource's
309312 * cleanup process.
@@ -375,12 +378,14 @@ public void decRef() {
375378 */
376379 protected void releaseReferences () {
377380 if (debugNativeObjects ) {
378- Log .log (ResourceLogLevel , Log .LogSubject .JavaCrtResource , String .format ("%s(%d) closing all referenced objects" , this .getClass ().getCanonicalName (), id ));
381+ Log .log (ResourceLogLevel , Log .LogSubject .JavaCrtResource ,
382+ String .format ("%s(%d) closing %d referenced objects" ,
383+ this .getClass ().getCanonicalName (), id , referencedResources .size ()));
379384 }
380385
381386 synchronized (this ) {
382387 for (CrtResource resource : referencedResources ) {
383- resource .decRef (this );
388+ resource .decRef (String . format ( "%s releaseReferences()" , this . getClass (). getCanonicalName ()) );
384389 }
385390
386391 referencedResources .clear ();
0 commit comments