HBASE-544 filters generate StackOverflowException
git-svn-id: https://svn.apache.org/repos/asf/hadoop/hbase/trunk@646031 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
49e0eaf8d9
commit
6410feb071
|
@ -14,6 +14,7 @@ Hbase Change Log
|
|||
0.0.0.0:60100 rather than relying on conf
|
||||
HBASE-507 Use Callable pattern to sleep between retries
|
||||
HBASE-564 Don't do a cache flush if there are zero entries in the cache.
|
||||
HBASE-544 filters generate StackOverflowException
|
||||
|
||||
NEW FEATURES
|
||||
HBASE-548 Tool to online single region
|
||||
|
|
|
@ -1739,10 +1739,12 @@ public class HRegion implements HConstants {
|
|||
}
|
||||
|
||||
/** {@inheritDoc} */
|
||||
@SuppressWarnings("null")
|
||||
public boolean next(HStoreKey key, SortedMap<Text, byte[]> results)
|
||||
throws IOException {
|
||||
boolean moreToFollow = false;
|
||||
|
||||
do {
|
||||
// Find the lowest-possible key.
|
||||
|
||||
Text chosenRow = null;
|
||||
|
@ -1767,7 +1769,8 @@ public class HRegion implements HConstants {
|
|||
key.setColumn(HConstants.EMPTY_TEXT);
|
||||
|
||||
for (int i = 0; i < scanners.length; i++) {
|
||||
if (scanners[i] != null && keys[i].getRow().compareTo(chosenRow) == 0) {
|
||||
if (scanners[i] != null &&
|
||||
keys[i].getRow().compareTo(chosenRow) == 0) {
|
||||
// NOTE: We used to do results.putAll(resultSets[i]);
|
||||
// but this had the effect of overwriting newer
|
||||
// values with older ones. So now we only insert
|
||||
|
@ -1802,6 +1805,7 @@ public class HRegion implements HConstants {
|
|||
// If we got no results, then there is no more to follow.
|
||||
moreToFollow = false;
|
||||
}
|
||||
} while(filter != null && filter.filterNotNull(results) && moreToFollow);
|
||||
|
||||
// Make sure scanners closed if no more results
|
||||
if (!moreToFollow) {
|
||||
|
@ -1812,11 +1816,6 @@ public class HRegion implements HConstants {
|
|||
}
|
||||
}
|
||||
|
||||
if (filter != null && filter.filterNotNull(results)) {
|
||||
LOG.warn("Filter return true on assembled Results in hstore");
|
||||
return moreToFollow == true && this.next(key, results);
|
||||
}
|
||||
|
||||
return moreToFollow;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue