java.lang.NullPointerException: null
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:770) ~[spigot-1.12.2.jar:git-Spigot-c3093ef-7e94e65]
at com.google.common.base.Joiner.toString(Joiner.java:454) ~[spigot-1.12.2.jar:git-Spigot-c3093ef-7e94e65]
at com.google.common.base.Joiner.appendTo(Joiner.java:106) ~[spigot-1.12.2.jar:git-Spigot-c3093ef-7e94e65]
at com.google.common.base.Joiner.appendTo(Joiner.java:154) ~[spigot-1.12.2.jar:git-Spigot-c3093ef-7e94e65]
at com.google.common.base.Joiner.join(Joiner.java:197) ~[spigot-1.12.2.jar:git-Spigot-c3093ef-7e94e65]
at com.google.common.base.Joiner.join(Joiner.java:187) ~[spigot-1.12.2.jar:git-Spigot-c3093ef-7e94e65]
at com.google.common.base.Joiner.join(Joiner.java:205) ~[spigot-1.12.2.jar:git-Spigot-c3093ef-7e94e65]
The code:
public static String join(String[] args, int ignored, String separator) {
if (ignored > -1)
args = (String[]) ArrayUtils.remove(args, ignored);
String combined = Joiner.on(separator).join(args); // ERROR HERE
return combined.substring(0, combined.length());
}
I'm trying to accomplish joining an array of strings with a separator, and the option to ignore an argument if desired. However I'm coming across this error that was not there about a week ago. This code was working perfectly.... now its not. I've tried inserting a null check for the "args" variable yet no avail. Has something changed with the package I'm pulling from?
I don't think the args variable is null, rather it contains a null value. Guava's Joiner is null-hostile by default, but it can be configured to tolerate null in one of two ways:
Joiner.on(separator).
skipNulls()
Joiner.on(separator).
useForNull(placeHolder)
if you don't use either of them, a null value inside your array will throw a NullPointerException, which is explicitly mentioned in the Joiner
docs:
If neither
skipNulls()
noruseForNull(String)
is specified, the joining methods will throwNullPointerException
if any given element isnull
.