You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2019/10/13 02:45:42 UTC
[hbase] branch branch-2 updated: HBASE-23159
HStore#getStorefilesSize may throw NPE
This is an automated email from the ASF dual-hosted git repository.
stack pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2 by this push:
new 6f6d331 HBASE-23159 HStore#getStorefilesSize may throw NPE
6f6d331 is described below
commit 6f6d331f9f8c06475b37600e4f3c1f6519ce7329
Author: Lijin Bin <binlijin>
AuthorDate: Sat Oct 12 19:44:42 2019 -0700
HBASE-23159 HStore#getStorefilesSize may throw NPE
---
.../apache/hadoop/hbase/regionserver/HStore.java | 35 +++++++++++++++-------
1 file changed, 24 insertions(+), 11 deletions(-)
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java
index fd8f19d..dd7a9a7 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java
@@ -2135,24 +2135,37 @@ public class HStore implements Store, HeapSize, StoreConfigInformation, Propagat
}
private long getTotalUmcompressedBytes(List<HStoreFile> files) {
- return files.stream().filter(f -> f != null && f.getReader() != null)
- .mapToLong(f -> f.getReader().getTotalUncompressedBytes()).sum();
+ return files.stream().filter(f -> f != null).mapToLong(f -> {
+ StoreFileReader reader = f.getReader();
+ if (reader == null) {
+ return 0;
+ } else {
+ return reader.getTotalUncompressedBytes();
+ }
+ }).sum();
}
private long getStorefilesSize(Collection<HStoreFile> files, Predicate<HStoreFile> predicate) {
return files.stream().filter(f -> f != null && f.getReader() != null).filter(predicate)
- .mapToLong(f -> f.getReader().length()).sum();
+ .mapToLong(f -> {
+ StoreFileReader reader = f.getReader();
+ if (reader == null) {
+ return 0;
+ } else {
+ return reader.length();
+ }
+ }).sum();
}
private long getStoreFileFieldSize(ToLongFunction<StoreFileReader> f) {
- return this.storeEngine.getStoreFileManager().getStorefiles().stream().filter(sf -> {
- if (sf.getReader() == null) {
- LOG.warn("StoreFile {} has a null Reader", sf);
- return false;
- } else {
- return true;
- }
- }).map(HStoreFile::getReader).mapToLong(f).sum();
+ return this.storeEngine.getStoreFileManager().getStorefiles().stream()
+ .map(HStoreFile::getReader).filter(reader -> {
+ if (reader == null) {
+ return false;
+ } else {
+ return true;
+ }
+ }).mapToLong(f).sum();
}
@Override