void close ( ) { acquireExclusiveLock ( ) ; try { if ( buffer != null ) { if ( dirty ) buffer . force ( ) ; if ( sunClass != null ) { // USE SUN JVM SPECIAL METHOD TO FREE RESOURCES try { final Method m = sunClass . getMethod ( "cleaner" ) ; final Object cleaner = m . invoke ( buffer ) ; cleaner . getClass ( ) . getMethod ( "clean" ) . invoke ( cleaner ) ; } catch ( Exception e ) { OLogManager . instance ( ) . error ( this , "Error on calling Sun's MMap buffer clean" , e ) ; } } buffer = null ; } counter = 0 ; file = null ; } finally { releaseExclusiveLock ( ) ; } }
Force closing of file if it s opened yet .