Skip to content

Commit 9f34af3

Browse files
authored
Support nullable Throwables in the Logger (#726)
For if you just want to log an error message without a stacktrace
1 parent 23f5b66 commit 9f34af3

File tree

10 files changed

+30
-15
lines changed

10 files changed

+30
-15
lines changed

core/src/main/java/de/bluecolored/bluemap/core/logger/JavaLogger.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
*/
2525
package de.bluecolored.bluemap.core.logger;
2626

27+
import org.jetbrains.annotations.Nullable;
28+
2729
import java.util.logging.Handler;
2830
import java.util.logging.Level;
2931
import java.util.logging.Logger;
@@ -37,7 +39,7 @@ public JavaLogger(Logger out) {
3739
}
3840

3941
@Override
40-
public void logError(String message, Throwable throwable) {
42+
public void logError(String message, @Nullable Throwable throwable) {
4143
out.log(Level.SEVERE, message, throwable);
4244
}
4345

core/src/main/java/de/bluecolored/bluemap/core/logger/Logger.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
*/
2525
package de.bluecolored.bluemap.core.logger;
2626

27+
import org.jetbrains.annotations.NotNull;
2728
import org.jetbrains.annotations.Nullable;
2829

2930
import java.io.IOException;
@@ -45,11 +46,11 @@ public abstract class Logger implements AutoCloseable {
4546
}));
4647
}
4748

48-
public void logError(Throwable throwable) {
49+
public void logError(@NotNull Throwable throwable) {
4950
logError(throwable.getMessage(), throwable);
5051
}
5152

52-
public abstract void logError(String message, Throwable throwable);
53+
public abstract void logError(String message, @Nullable Throwable throwable);
5354

5455
public abstract void logWarning(String message);
5556

@@ -60,7 +61,7 @@ public void logError(Throwable throwable) {
6061
/**
6162
* Only log the error if no message has been logged before with the same key.
6263
*/
63-
public abstract void noFloodError(String key, String message, Throwable throwable);
64+
public abstract void noFloodError(String key, String message, @Nullable Throwable throwable);
6465

6566
/**
6667
* Only log the warning if no message has been logged before with the same key.
@@ -80,14 +81,14 @@ public void logError(Throwable throwable) {
8081
/**
8182
* Only log the error if no message has been logged before with the same content.
8283
*/
83-
public void noFloodError(Throwable throwable){
84+
public void noFloodError(@NotNull Throwable throwable){
8485
noFloodError(throwable.getMessage(), throwable);
8586
}
8687

8788
/**
8889
* Only log the error if no message has been logged before with the same content.
8990
*/
90-
public void noFloodError(String message, Throwable throwable){
91+
public void noFloodError(String message, @Nullable Throwable throwable){
9192
noFloodError(message, message, throwable);
9293
}
9394

core/src/main/java/de/bluecolored/bluemap/core/logger/MultiLogger.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
*/
2525
package de.bluecolored.bluemap.core.logger;
2626

27+
import org.jetbrains.annotations.Nullable;
28+
2729
import java.util.HashMap;
2830
import java.util.Map;
2931
import java.util.concurrent.atomic.AtomicInteger;
@@ -83,7 +85,7 @@ public void clear() {
8385
}
8486

8587
@Override
86-
public void logError(String message, Throwable throwable) {
88+
public void logError(String message, @Nullable Throwable throwable) {
8789
lock.readLock().lock();
8890
try {
8991
for (Logger l : logger.values())

core/src/main/java/de/bluecolored/bluemap/core/logger/PrintStreamLogger.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
*/
2525
package de.bluecolored.bluemap.core.logger;
2626

27+
import org.jetbrains.annotations.Nullable;
28+
2729
import java.io.PrintStream;
2830
import java.time.Instant;
2931
import java.time.ZoneId;
@@ -56,9 +58,9 @@ public void setDebug(boolean debug) {
5658
}
5759

5860
@Override
59-
public void logError(String message, Throwable throwable) {
61+
public void logError(String message, @Nullable Throwable throwable) {
6062
log(err, "ERROR", message);
61-
throwable.printStackTrace(err);
63+
if (throwable != null) throwable.printStackTrace(err);
6264
}
6365

6466
@Override

core/src/main/java/de/bluecolored/bluemap/core/logger/VoidLogger.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,12 @@
2424
*/
2525
package de.bluecolored.bluemap.core.logger;
2626

27+
import org.jetbrains.annotations.Nullable;
28+
2729
public class VoidLogger extends Logger {
2830

2931
@Override
30-
public void logError(String message, Throwable throwable) {}
32+
public void logError(String message, @Nullable Throwable throwable) {}
3133

3234
@Override
3335
public void logWarning(String message) {}
@@ -39,7 +41,7 @@ public void logInfo(String message) {}
3941
public void logDebug(String message) {}
4042

4143
@Override
42-
public void noFloodError(String key, String message, Throwable throwable) {}
44+
public void noFloodError(String key, String message, @Nullable Throwable throwable) {}
4345

4446
@Override
4547
public void noFloodWarning(String key, String message) {}

implementations/fabric/src/main/java/de/bluecolored/bluemap/fabric/Log4jLogger.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.apache.logging.log4j.Logger;
2828

2929
import de.bluecolored.bluemap.core.logger.AbstractLogger;
30+
import org.jetbrains.annotations.Nullable;
3031

3132
public class Log4jLogger extends AbstractLogger {
3233

@@ -37,7 +38,7 @@ public Log4jLogger(Logger out) {
3738
}
3839

3940
@Override
40-
public void logError(String message, Throwable throwable) {
41+
public void logError(String message, @Nullable Throwable throwable) {
4142
out.error(message, throwable);
4243
}
4344

implementations/forge/src/main/java/de/bluecolored/bluemap/forge/Log4jLogger.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.apache.logging.log4j.Logger;
2828

2929
import de.bluecolored.bluemap.core.logger.AbstractLogger;
30+
import org.jetbrains.annotations.Nullable;
3031

3132
public class Log4jLogger extends AbstractLogger {
3233

@@ -37,7 +38,7 @@ public Log4jLogger(Logger out) {
3738
}
3839

3940
@Override
40-
public void logError(String message, Throwable throwable) {
41+
public void logError(String message, @Nullable Throwable throwable) {
4142
out.error(message, throwable);
4243
}
4344

implementations/neoforge/src/main/java/de/bluecolored/bluemap/forge/Log4jLogger.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626

2727
import de.bluecolored.bluemap.core.logger.AbstractLogger;
2828
import org.apache.logging.log4j.Logger;
29+
import org.jetbrains.annotations.Nullable;
2930

3031
public class Log4jLogger extends AbstractLogger {
3132

@@ -36,7 +37,7 @@ public Log4jLogger(Logger out) {
3637
}
3738

3839
@Override
39-
public void logError(String message, Throwable throwable) {
40+
public void logError(String message, @Nullable Throwable throwable) {
4041
out.error(message, throwable);
4142
}
4243

implementations/sponge/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ dependencies {
1919
}
2020

2121
api ( libs.bstats.sponge )
22+
23+
compileOnly ( libs.jetbrains.annotations )
2224
}
2325

2426
sponge {

implementations/sponge/src/main/java/de/bluecolored/bluemap/sponge/Log4J2Logger.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626

2727
import de.bluecolored.bluemap.core.logger.AbstractLogger;
2828
import org.apache.logging.log4j.Logger;
29+
import org.jetbrains.annotations.Nullable;
2930

3031
public class Log4J2Logger extends AbstractLogger {
3132

@@ -36,7 +37,7 @@ public Log4J2Logger(Logger out) {
3637
}
3738

3839
@Override
39-
public void logError(String message, Throwable throwable) {
40+
public void logError(String message, @Nullable Throwable throwable) {
4041
out.error(message, throwable);
4142
}
4243

0 commit comments

Comments
 (0)