/** Closes the source file and deletes it if it is not read-only. */ void purge() throws HsqlException { if (rFile == null) { return; } try { if (readOnly) { close(); } else { rFile.close(); rFile = null; FileUtil.delete(sName); } } catch (Exception e) { throw Trace.error( Trace.FILE_IO_ERROR, Trace.TextCache_purging_file_error, new Object[] {sName, e}); } }
/** * Writes newly created rows to disk. In the current implentation, such rows have already been * saved, so this method just removes a source file that has no rows. */ void close() throws HsqlException { if (rFile == null) { return; } try { saveAll(); boolean empty = (rFile.length() <= NL.length()); rFile.close(); rFile = null; if (empty && !readOnly) { FileUtil.delete(sName); } } catch (Exception e) { throw Trace.error( Trace.FILE_IO_ERROR, Trace.TextCache_closing_file_error, new Object[] {sName, e}); } }