Lines 124-146
Link Here
|
124 |
} |
124 |
} |
125 |
LogLog.debug("maxBackupIndex="+maxBackupIndex); |
125 |
LogLog.debug("maxBackupIndex="+maxBackupIndex); |
126 |
|
126 |
|
|
|
127 |
boolean renameSucceeded = true; |
127 |
// If maxBackups <= 0, then there is no file renaming to be done. |
128 |
// If maxBackups <= 0, then there is no file renaming to be done. |
128 |
if(maxBackupIndex > 0) { |
129 |
if(maxBackupIndex > 0) { |
129 |
// Delete the oldest file, to keep Windows happy. |
130 |
// Delete the oldest file, to keep Windows happy. |
130 |
file = new File(fileName + '.' + maxBackupIndex); |
131 |
file = new File(fileName + '.' + maxBackupIndex); |
131 |
if (file.exists()) |
132 |
if (file.exists()) |
132 |
file.delete(); |
133 |
renameSucceeded = file.delete(); |
133 |
|
134 |
|
134 |
// Map {(maxBackupIndex - 1), ..., 2, 1} to {maxBackupIndex, ..., 3, 2} |
135 |
// Map {(maxBackupIndex - 1), ..., 2, 1} to {maxBackupIndex, ..., 3, 2} |
135 |
for (int i = maxBackupIndex - 1; i >= 1; i--) { |
136 |
for (int i = maxBackupIndex - 1; i >= 1 && renameSucceeded; i--) { |
136 |
file = new File(fileName + "." + i); |
137 |
file = new File(fileName + "." + i); |
137 |
if (file.exists()) { |
138 |
if (file.exists()) { |
138 |
target = new File(fileName + '.' + (i + 1)); |
139 |
target = new File(fileName + '.' + (i + 1)); |
139 |
LogLog.debug("Renaming file " + file + " to " + target); |
140 |
LogLog.debug("Renaming file " + file + " to " + target); |
140 |
file.renameTo(target); |
141 |
renameSucceeded = file.renameTo(target); |
141 |
} |
142 |
} |
142 |
} |
143 |
} |
143 |
|
144 |
|
|
|
145 |
if(renameSucceeded) { |
144 |
// Rename fileName to fileName.1 |
146 |
// Rename fileName to fileName.1 |
145 |
target = new File(fileName + "." + 1); |
147 |
target = new File(fileName + "." + 1); |
146 |
|
148 |
|
Lines 148-156
Link Here
|
148 |
|
150 |
|
149 |
file = new File(fileName); |
151 |
file = new File(fileName); |
150 |
LogLog.debug("Renaming file " + file + " to " + target); |
152 |
LogLog.debug("Renaming file " + file + " to " + target); |
151 |
file.renameTo(target); |
153 |
renameSucceeded = file.renameTo(target); |
|
|
154 |
// |
155 |
// if file rename failed, reopen file with append = true |
156 |
// |
157 |
if (!renameSucceeded) { |
158 |
try { |
159 |
this.setFile(fileName, true, bufferedIO, bufferSize); |
160 |
} |
161 |
catch(IOException e) { |
162 |
LogLog.error("setFile("+fileName+", true) call failed.", e); |
163 |
} |
164 |
} |
152 |
} |
165 |
} |
|
|
166 |
} |
153 |
|
167 |
|
|
|
168 |
// |
169 |
// if all renames were successful, then |
170 |
// |
171 |
if (renameSucceeded) { |
154 |
try { |
172 |
try { |
155 |
// This will also close the file. This is OK since multiple |
173 |
// This will also close the file. This is OK since multiple |
156 |
// close operations are safe. |
174 |
// close operations are safe. |
Lines 159-164
Link Here
|
159 |
catch(IOException e) { |
177 |
catch(IOException e) { |
160 |
LogLog.error("setFile("+fileName+", false) call failed.", e); |
178 |
LogLog.error("setFile("+fileName+", false) call failed.", e); |
161 |
} |
179 |
} |
|
|
180 |
} |
162 |
} |
181 |
} |
163 |
|
182 |
|
164 |
public |
183 |
public |