Updated Branches:
  refs/heads/apache-blur-0.2 2498bcb91 -> 417f39251

Fixed a NPE in the fetching of a row with both columns to fetch and families to 
fetch being used with different families.


Project: http://git-wip-us.apache.org/repos/asf/incubator-blur/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-blur/commit/417f3925
Tree: http://git-wip-us.apache.org/repos/asf/incubator-blur/tree/417f3925
Diff: http://git-wip-us.apache.org/repos/asf/incubator-blur/diff/417f3925

Branch: refs/heads/apache-blur-0.2
Commit: 417f39251048ec0a14117824f76c676108009505
Parents: 2498bcb
Author: Aaron McCurry <[email protected]>
Authored: Tue Jan 14 06:02:38 2014 -0500
Committer: Aaron McCurry <[email protected]>
Committed: Tue Jan 14 06:02:38 2014 -0500

----------------------------------------------------------------------
 .../java/org/apache/blur/utils/BlurUtil.java    |  4 ++
 .../apache/blur/manager/IndexManagerTest.java   | 43 ++++++++++++++++++++
 2 files changed, 47 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/417f3925/blur-core/src/main/java/org/apache/blur/utils/BlurUtil.java
----------------------------------------------------------------------
diff --git a/blur-core/src/main/java/org/apache/blur/utils/BlurUtil.java 
b/blur-core/src/main/java/org/apache/blur/utils/BlurUtil.java
index 87d5b4f..da1b0dd 100644
--- a/blur-core/src/main/java/org/apache/blur/utils/BlurUtil.java
+++ b/blur-core/src/main/java/org/apache/blur/utils/BlurUtil.java
@@ -856,6 +856,10 @@ public class BlurUtil {
     if (columnFamiliesToFetch == null || columnFamiliesToFetch.isEmpty()) {
       return docs;
     }
+    Map<String, Set<String>> columnsToFetch = selector.getColumnsToFetch();
+    if (columnsToFetch != null) {
+      columnFamiliesToFetch.addAll(columnsToFetch.keySet());
+    }
     final Map<String, Integer> familyOrdering = 
getFamilyOrdering(columnFamiliesToFetch);
     Collections.sort(docs, new Comparator<Document>() {
       @Override

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/417f3925/blur-core/src/test/java/org/apache/blur/manager/IndexManagerTest.java
----------------------------------------------------------------------
diff --git 
a/blur-core/src/test/java/org/apache/blur/manager/IndexManagerTest.java 
b/blur-core/src/test/java/org/apache/blur/manager/IndexManagerTest.java
index 3ae25f7..e805930 100644
--- a/blur-core/src/test/java/org/apache/blur/manager/IndexManagerTest.java
+++ b/blur-core/src/test/java/org/apache/blur/manager/IndexManagerTest.java
@@ -40,6 +40,7 @@ import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Random;
 import java.util.UUID;
@@ -596,6 +597,48 @@ public class IndexManagerTest {
   }
 
   @Test
+  public void testFetchRowByRowIdWithFamilySet() throws Exception {
+    Selector selector = new Selector().setRowId("row-6");
+    selector.addToColumnFamiliesToFetch(FAMILY2);
+    FetchResult fetchResult = new FetchResult();
+    indexManager.fetchRow(TABLE, selector, fetchResult);
+    assertNotNull(fetchResult.rowResult.row);
+    Row row = newRow("row-6", newRecord(FAMILY2, "record-6C", 
newColumn("testcol18", "value501")));
+    row.recordCount = 1;
+    assertEquals(row, fetchResult.rowResult.row);
+  }
+
+  @Test
+  public void testFetchRowByRowIdWithColumnSet() throws Exception {
+    Selector selector = new Selector().setRowId("row-6");
+    selector.putToColumnsToFetch(FAMILY, new 
HashSet<String>(Arrays.asList("testcol12")));
+
+    FetchResult fetchResult = new FetchResult();
+    indexManager.fetchRow(TABLE, selector, fetchResult);
+    assertNotNull(fetchResult.rowResult.row);
+    Row row = newRow("row-6", newRecord(FAMILY, "record-6A", 
newColumn("testcol12", "value110")),
+        newRecord(FAMILY, "record-6B", newColumn("testcol12", "value101")));
+    row.recordCount = 2;
+    assertEquals(row, fetchResult.rowResult.row);
+  }
+
+  @Test
+  public void testFetchRowByRowIdWithFamilyAndColumnSet() throws Exception {
+    Selector selector = new Selector().setRowId("row-6");
+    selector.addToColumnFamiliesToFetch(FAMILY2);
+    selector.putToColumnsToFetch(FAMILY, new 
HashSet<String>(Arrays.asList("testcol12")));
+
+    FetchResult fetchResult = new FetchResult();
+    indexManager.fetchRow(TABLE, selector, fetchResult);
+    assertNotNull(fetchResult.rowResult.row);
+    Row row = newRow("row-6", newRecord(FAMILY2, "record-6C", 
newColumn("testcol18", "value501")),
+        newRecord(FAMILY, "record-6A", newColumn("testcol12", "value110")),
+        newRecord(FAMILY, "record-6B", newColumn("testcol12", "value101")));
+    row.recordCount = 3;
+    assertEquals(row, fetchResult.rowResult.row);
+  }
+
+  @Test
   public void testFetchRowByRowIdWithFilter() throws Exception {
     IndexManagerTestReadInterceptor.interceptor = new ReadInterceptor(null) {
       @Override

Reply via email to