public void close ( ) throws IOException { if ( ! this . closed ) { this . closed = true ; this . is . close ( ) ; this . dataIn . close ( ) ; this . is = null ; this . dataIn = null ; int typeCount = 0 ; if ( this . resourceTypeTable != null ) { // fix for bug 32320 for ( int i = 0 ; i < this . resourceTypeTable . length ; i ++ ) { if ( this . resourceTypeTable [ i ] != null ) { if ( this . resourceTypeTable [ i ] . close ( ) ) { this . resourceTypeTable [ i ] = null ; } else { typeCount ++ ; } } } ResourceType [ ] newTypeTable = new ResourceType [ typeCount ] ; typeCount = 0 ; for ( ResourceType aResourceTypeTable : this . resourceTypeTable ) { if ( aResourceTypeTable != null ) { newTypeTable [ typeCount ] = aResourceTypeTable ; typeCount ++ ; } } this . resourceTypeTable = newTypeTable ; } if ( this . resourceInstTable != null ) { // fix for bug 32320 int instCount = 0 ; for ( int i = 0 ; i < this . resourceInstTable . length ; i ++ ) { if ( this . resourceInstTable [ i ] != null ) { if ( this . resourceInstTable [ i ] . close ( ) ) { this . resourceInstTable [ i ] = null ; } else { instCount ++ ; } } } ResourceInst [ ] newInstTable = new ResourceInst [ instCount ] ; instCount = 0 ; for ( ResourceInst aResourceInstTable : this . resourceInstTable ) { if ( aResourceInstTable != null ) { newInstTable [ instCount ] = aResourceInstTable ; instCount ++ ; } } this . resourceInstTable = newInstTable ; this . resourceInstSize = instCount ; } // optimize memory usage of timeSeries now that no more samples this . timeSeries . shrink ( ) ; // filters are no longer needed since file will not be read from this . filters = null ; } }
Closes the archive .