Skip to content

Commit cbba11f

Browse files
committed
Suppress log noise during LockedFileTest
1 parent e0e8e11 commit cbba11f

File tree

2 files changed

+78
-19
lines changed

2 files changed

+78
-19
lines changed

src/main/java/com/fasterxml/uuid/ext/LockedFile.java

Lines changed: 60 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,10 @@
3939
*/
4040
class LockedFile
4141
{
42+
private static final Logger LOGGER = LoggerFactory.getLogger(LockedFile.class);
4243

43-
private static final Logger logger = LoggerFactory.getLogger(LockedFile.class);
44+
// Wrapper just to allow test(s) to disable/re-route
45+
static LoggerWrapper logger = new LoggerWrapper(LOGGER);
4446

4547
/**
4648
* Expected file length comes from hex-timestamp (16 digits),
@@ -115,6 +117,11 @@ class LockedFile
115117
mLock = lock;
116118
}
117119

120+
// @since 5.2 for testing (for `LockedFileTest`)
121+
static void logging(boolean enabled) {
122+
logger = new LoggerWrapper(enabled ? LOGGER : null);
123+
}
124+
118125
public void deactivate()
119126
{
120127
RandomAccessFile raf = mRAFile;
@@ -131,7 +138,7 @@ public long readStamp()
131138
try {
132139
size = (int) mChannel.size();
133140
} catch (IOException ioe) {
134-
logger.error("Failed to read file size", ioe);
141+
logger.error(ioe, "Failed to read file size");
135142
return READ_ERROR;
136143
}
137144

@@ -151,7 +158,7 @@ public long readStamp()
151158
try {
152159
mRAFile.readFully(data);
153160
} catch (IOException ie) {
154-
logger.error("(file '{}') Failed to read {} bytes", mFile, size, ie);
161+
logger.error(ie, "(file '"+mFile+"') Failed to read "+size+" bytes");
155162
return READ_ERROR;
156163
}
157164

@@ -168,25 +175,25 @@ public long readStamp()
168175
dataStr = dataStr.trim();
169176

170177
long result = -1;
171-
String err = null;
178+
String errMsg = null;
172179

173180
if (!dataStr.startsWith("[0")
174181
|| dataStr.length() < 3
175182
|| Character.toLowerCase(dataStr.charAt(2)) != 'x') {
176-
err = "does not start with '[0x' prefix";
183+
errMsg = "does not start with '[0x' prefix";
177184
} else {
178185
int ix = dataStr.indexOf(']', 3);
179186
if (ix <= 0) {
180-
err = "does not end with ']' marker";
187+
errMsg = "does not end with ']' marker";
181188
} else {
182189
String hex = dataStr.substring(3, ix);
183190
if (hex.length() > 16) {
184-
err = "length of the (hex) timestamp too long; expected 16, had "+hex.length()+" ('"+hex+"')";
191+
errMsg = "length of the (hex) timestamp too long; expected 16, had "+hex.length()+" ('"+hex+"')";
185192
} else {
186193
try {
187194
result = Long.parseLong(hex, 16);
188195
} catch (NumberFormatException nex) {
189-
err = "does not contain a valid hex timestamp; got '"
196+
errMsg = "does not contain a valid hex timestamp; got '"
190197
+hex+"' (parse error: "+nex+")";
191198
}
192199
}
@@ -195,7 +202,7 @@ public long readStamp()
195202

196203
// Unsuccesful?
197204
if (result < 0L) {
198-
logger.error("(file '{}') Malformed timestamp file contents: {}", mFile, err);
205+
logger.error("(file '{}') Malformed timestamp file contents: {}", mFile, errMsg);
199206
return READ_ERROR;
200207
}
201208

@@ -210,12 +217,11 @@ public void writeStamp(long stamp)
210217
{
211218
// Let's do sanity check first:
212219
if (stamp <= mLastTimestamp) {
213-
/* same stamp is not dangerous, but pointless... so warning,
214-
* not an error:
215-
*/
220+
// same stamp is not dangerous, but pointless... so warning,
221+
// not an error:
216222
if (stamp == mLastTimestamp) {
217223
logger.warn("(file '{}') Trying to re-write existing timestamp ({})", mFile, stamp);
218-
return;
224+
return;
219225
}
220226
throw new IOException(""+mFile+" trying to overwrite existing value ("+mLastTimestamp+") with an earlier timestamp ("+stamp+")");
221227
}
@@ -260,20 +266,58 @@ public void writeStamp(long stamp)
260266
*/
261267

262268
protected static void doDeactivate(File f, RandomAccessFile raf,
263-
FileLock lock)
269+
FileLock lock)
264270
{
265271
if (lock != null) {
266272
try {
267273
lock.release();
268274
} catch (Throwable t) {
269-
logger.error("Failed to release lock (for file '{}')", f, t);
275+
logger.error(t, "Failed to release lock (for file '"+f+"')");
270276
}
271277
}
272278
if (raf != null) {
273279
try {
274280
raf.close();
275281
} catch (Throwable t) {
276-
logger.error("Failed to close file '{}'", f, t);
282+
logger.error(t, "Failed to close file '{"+f+"}'");
283+
}
284+
}
285+
}
286+
287+
/*
288+
//////////////////////////////////////////////////////////////
289+
// Helper class(es)
290+
//////////////////////////////////////////////////////////////
291+
*/
292+
293+
private static class LoggerWrapper {
294+
private final Logger logger;
295+
296+
public LoggerWrapper(Logger l) {
297+
logger = l;
298+
}
299+
300+
public void error(Throwable t, String msg) {
301+
if (logger != null) {
302+
logger.error(msg, t);
303+
}
304+
}
305+
306+
public void error(String msg, Object arg1, Object arg2) {
307+
if (logger != null) {
308+
logger.error(msg, arg1, arg2);
309+
}
310+
}
311+
312+
public void warn(String msg) {
313+
if (logger != null) {
314+
logger.warn(msg);
315+
}
316+
}
317+
318+
public void warn(String msg, Object arg1, Object arg2) {
319+
if (logger != null) {
320+
logger.warn(msg, arg1, arg2);
277321
}
278322
}
279323
}

src/test/java/com/fasterxml/uuid/ext/LockedFileTest.java

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
package com.fasterxml.uuid.ext;
22

3-
import org.junit.jupiter.api.Test;
4-
import org.junit.jupiter.api.io.TempDir;
5-
63
import java.io.File;
74
import java.io.FileNotFoundException;
85
import java.io.FileWriter;
@@ -12,6 +9,11 @@
129
import java.util.UUID;
1310
import java.util.concurrent.ThreadLocalRandom;
1411

12+
import org.junit.jupiter.api.AfterAll;
13+
import org.junit.jupiter.api.BeforeAll;
14+
import org.junit.jupiter.api.Test;
15+
import org.junit.jupiter.api.io.TempDir;
16+
1517
import static com.fasterxml.uuid.ext.LockedFile.READ_ERROR;
1618
import static org.junit.jupiter.api.Assertions.*;
1719

@@ -20,6 +22,19 @@ public class LockedFileTest
2022
@TempDir
2123
Path temporaryFolder;
2224

25+
@BeforeAll
26+
static void setUp() {
27+
// Suppress logging during test
28+
LockedFile.logging(false);
29+
}
30+
31+
@AfterAll
32+
static void tearDown() {
33+
// Re-enable logging after tests
34+
LockedFile.logging(true);
35+
36+
}
37+
2338
@Test
2439
public void constructor_givenNull_shouldThrowNullPointerException() throws IOException {
2540
try {

0 commit comments

Comments
 (0)