if (myTmpFile == null) {
if (myTmpFile == null || myCache == null) {
    public void save() throws SVNException {        if (myTmpFile == null) {            return;        }                Writer os = null;        try {            os = new OutputStreamWriter(SVNFileUtil.openFileForWriting(myTmpFile), "UTF-8");            for (Iterator commands = myCache.iterator(); commands.hasNext();) {                Map command = (Map) commands.next();                String name = (String) command.remove("");                os.write("<");                os.write(name);                for (Iterator attrs = command.keySet().iterator(); attrs.hasNext();) {                    String attr = (String) attrs.next();                    String value = (String) command.get(attr);                    if (value == null) {                        continue;                    }                    value = SVNEncodingUtil.xmlEncodeAttr(value);                    os.write("\n   ");                    os.write(attr);                    os.write("=\"");                    os.write(value);                    os.write("\"");                }                os.write("/>\n");            }        } catch (IOException e) {            SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.IO_ERROR, "Cannot write log file ''{0}'': {1}", new Object[] {myFile, e.getLocalizedMessage()});            SVNErrorManager.error(err, e);        } finally {            SVNFileUtil.closeFile(os);            myCache = null;        }        SVNFileUtil.rename(myTmpFile, myFile);        SVNFileUtil.setReadonly(myFile, true);    }