You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bookkeeper.apache.org by iv...@apache.org on 2019/03/26 14:34:31 UTC
[bookkeeper] branch master updated: fix potential NPE when
releasing entry that is null
This is an automated email from the ASF dual-hosted git repository.
ivank pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git
The following commit(s) were added to refs/heads/master by this push:
new 5902ee2 fix potential NPE when releasing entry that is null
5902ee2 is described below
commit 5902ee27be2fb7eeade53f5e8e4afd3fe573ad5c
Author: Boyang Jerry Peng <je...@gmail.com>
AuthorDate: Tue Mar 26 09:33:54 2019 -0500
fix potential NPE when releasing entry that is null
Descriptions of the changes in this PR:
### Motivation
A interrupt exception can occur during the poll operation of the blocking and cause a NPE to be thrown
### Changes
Check if entry is null before trying to release it
Reviewers: Ivan Kelly <iv...@apache.org>, Sijie Guo <si...@apache.org>, Matteo Merli <mm...@apache.org>
This closes #1998 from jerrypeng/fix_NPE
---
.../apache/distributedlog/impl/logsegment/BKLogSegmentEntryReader.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/stream/distributedlog/core/src/main/java/org/apache/distributedlog/impl/logsegment/BKLogSegmentEntryReader.java b/stream/distributedlog/core/src/main/java/org/apache/distributedlog/impl/logsegment/BKLogSegmentEntryReader.java
index 813e974..f414bf4 100644
--- a/stream/distributedlog/core/src/main/java/org/apache/distributedlog/impl/logsegment/BKLogSegmentEntryReader.java
+++ b/stream/distributedlog/core/src/main/java/org/apache/distributedlog/impl/logsegment/BKLogSegmentEntryReader.java
@@ -21,6 +21,7 @@ import static com.google.common.base.Charsets.UTF_8;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.Lists;
+import io.netty.util.ReferenceCountUtil;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Enumeration;
@@ -800,7 +801,7 @@ public class BKLogSegmentEntryReader implements SafeRunnable, LogSegmentEntryRea
return;
}
} finally {
- removedEntry.release();
+ ReferenceCountUtil.safeRelease(removedEntry);
}
} else if (skipBrokenEntries && BKException.Code.DigestMatchException == entry.getRc()) {
// skip this entry and move forward