@ Trivial private File getArchiveFile ( ) { String methodName = "getArchiveFile" ; if ( archiveFileLock != null ) { synchronized ( archiveFileLock ) { if ( ( archiveFile == null ) && ! archiveFileFailed ) { try { archiveFile = extractEntry ( entryInEnclosingContainer , getCacheDir ( ) ) ; // 'extractEntry' throws IOException if ( archiveFile != null ) { archiveFilePath = archiveFile . getAbsolutePath ( ) ; if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) { Tr . debug ( tc , methodName + " Archive file [ " + archiveFilePath + " ]" ) ; } } else { archiveFileFailed = true ; Tr . error ( tc , "extract.cache.null" , entryInEnclosingContainer . getPath ( ) ) ; } } catch ( IOException e ) { archiveFileFailed = true ; Tr . error ( tc , "extract.cache.fail" , e . getMessage ( ) ) ; } } } } return archiveFile ; }
Answer the archive file . Extract it if necessary . Answer null if extraction fails .