How about using java.lang.Objects? Gary ---------- Forwarded message ---------- From: <[email protected]> Date: Feb 28, 2016 5:49 PM Subject: [2/2] logging-log4j2 git commit: Extract a requireNonNull method. To: <[email protected]> Cc:
Extract a requireNonNull method. In the past, these method calls could have simply used Objects.requireNonNull, but a later revision switched them to use IllegalArgumentException. Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/9d63b0d1 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/9d63b0d1 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/9d63b0d1 Branch: refs/heads/master Commit: 9d63b0d11fe3d24b0b3d670ab7f3b369c0f6e1dd Parents: 96dff0c Author: Matt Sicker <[email protected]> Authored: Sun Feb 28 19:49:43 2016 -0600 Committer: Matt Sicker <[email protected]> Committed: Sun Feb 28 19:49:43 2016 -0600 ---------------------------------------------------------------------- .../org/apache/logging/log4j/MarkerManager.java | 40 +++++++++----------- 1 file changed, 18 insertions(+), 22 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/9d63b0d1/log4j-api/src/main/java/org/apache/logging/log4j/MarkerManager.java ---------------------------------------------------------------------- diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/MarkerManager.java b/log4j-api/src/main/java/org/apache/logging/log4j/MarkerManager.java index d2b3d19..d57c483 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/MarkerManager.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/MarkerManager.java @@ -42,7 +42,7 @@ public final class MarkerManager { /** * Tests existence of the given marker. - * + * * @param key the marker name * @return true if the marker exists. * @since 2.4 @@ -53,7 +53,7 @@ public final class MarkerManager { /** * Retrieves a Marker or create a Marker that has no parent. - * + * * @param name The name of the Marker. * @return The Marker with the specified name. * @throws IllegalArgumentException if the argument is {@code null} @@ -65,7 +65,7 @@ public final class MarkerManager { /** * Retrieves or creates a Marker with the specified parent. The parent must have been previously created. - * + * * @param name The name of the Marker. * @param parent The name of the parent Marker. * @return The Marker with the specified name. @@ -85,7 +85,7 @@ public final class MarkerManager { /** * Retrieves or creates a Marker with the specified parent. - * + * * @param name The name of the Marker. * @param parent The parent Marker. * @return The Marker with the specified name. @@ -128,16 +128,14 @@ public final class MarkerManager { /** * Constructs a new Marker. - * + * * @param name the name of the Marker. * @throws IllegalArgumentException if the argument is {@code null} */ public Log4jMarker(final String name) { - if (name == null) { - // we can't store null references in a ConcurrentHashMap as it is, not to mention that a null Marker - // name seems rather pointless. To get an "anonymous" Marker, just use an empty string. - throw new IllegalArgumentException("Marker name cannot be null."); - } + // we can't store null references in a ConcurrentHashMap as it is, not to mention that a null Marker + // name seems rather pointless. To get an "anonymous" Marker, just use an empty string. + requireNonNull(name, "Marker name cannot be null."); this.name = name; this.parents = null; } @@ -146,9 +144,7 @@ public final class MarkerManager { @Override public synchronized Marker addParents(final Marker... parentMarkers) { - if (parentMarkers == null) { - throw new IllegalArgumentException("A parent marker must be specified"); - } + requireNonNull(parentMarkers, "A parent marker must be specified"); // It is not strictly necessary to copy the variable here but it should perform better than // Accessing a volatile variable multiple times. final Marker[] localParents = this.parents; @@ -184,9 +180,7 @@ public final class MarkerManager { @Override public synchronized boolean remove(final Marker parent) { - if (parent == null) { - throw new IllegalArgumentException("A parent marker must be specified"); - } + requireNonNull(parent, "A parent marker must be specified"); final Marker[] localParents = this.parents; if (localParents == null) { return false; @@ -249,9 +243,7 @@ public final class MarkerManager { @Override @PerformanceSensitive({"allocation", "unrolled"}) public boolean isInstanceOf(final Marker marker) { - if (marker == null) { - throw new IllegalArgumentException("A marker parameter is required"); - } + requireNonNull(marker, "A marker parameter is required"); if (this == marker) { return true; } @@ -279,9 +271,7 @@ public final class MarkerManager { @Override @PerformanceSensitive({"allocation", "unrolled"}) public boolean isInstanceOf(final String markerName) { - if (markerName == null) { - throw new IllegalArgumentException("A marker name is required"); - } + requireNonNull(markerName, "A marker name is required"); if (markerName.equals(this.getName())) { return true; } @@ -402,4 +392,10 @@ public final class MarkerManager { } } + // this method wouldn't be necessary if Marker methods threw an NPE instead of an IAE for null values ;) + private static void requireNonNull(final Object obj, final String message) { + if (obj == null) { + throw new IllegalArgumentException(message); + } + } }
