Details
Description
There are some findbugs issues with the guava update that seemed unjustified and should be fixed before the update:
- Null passed for non-null parameter of com.google.common.base.Preconditions.checkState(boolean, String, Object, Object, Object) in org.apache.hadoop.hdfs.qjournal.server.Journal.getPersistedPaxosData(long)
In org/apache/hadoop/hdfs/qjournal/server/Journal.java:1064 we callPreconditions.checkState(ret != null && ret.getSegmentState().getStartTxId() == segmentTxId, "Bad persisted data for segment %s: %s ; journal id: %s", segmentTxId, ret, journalId);
for this call findbug assumes that Argument 4 might be null but must not be null, but Guava 27.0's com.google.common.base.Preconditions#checkState(boolean, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object) is annotated like the following:
public static void checkState( boolean b, @Nullable String errorMessageTemplate, @Nullable Object p1, @Nullable Object p2, @Nullable Object p3) {
so we have @Nullable on each parameter for the method. I don't see this warning as justified, or need to be fixed.
- Null passed for non-null parameter of com.google.common.base.Preconditions.checkArgument(boolean, String, Object) in org.apache.hadoop.hdfs.qjournal.server.JournalNode.getLogDir(String, String)
In org/apache/hadoop/hdfs/qjournal/server/JournalNode.java:325 we callPreconditions.checkArgument(jid != null && !jid.isEmpty(), "bad journal identifier: %s", jid);
for this call findbug assumes that Argument 3 might be null but must not be null, but Guava 27.0's com.google.common.base.Preconditions#checkArgument(boolean, java.lang.String, java.lang.Object) is annotated like the following:
public static void checkArgument( boolean b, @Nullable String errorMessageTemplate, @Nullable Object p1) {
so we have @Nullable on argument 3, and that renders the assumption incorrect.
- Nullcheck of jid at line 346 of value previously dereferenced in org.apache.hadoop.hdfs.qjournal.server.JournalNode.getLogDir(String, String)
This is about the assert jid != null; at JournalNode.java:346. I would leave it as is, it's not a redundant check, just additional information. (I'm not a fan of using assert in production code, but if it's there we can leave it).
Attachments
Attachments
Issue Links
- causes
-
HADOOP-16230 Correct findbug ignores for unjustified issues during update to guava to 27.0-jre in hadoop-project
- Resolved
- is required by
-
HADOOP-16210 Update guava to 27.0-jre in hadoop-project trunk
- Resolved
- links to