You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by km...@apache.org on 2013/09/26 05:42:04 UTC

git commit: KNOX-158: EmptyStackException while getting webhcat job queue in secure cluster

Updated Branches:
  refs/heads/master 401718e4b -> b37943a00


KNOX-158: EmptyStackException while getting webhcat job queue in secure cluster


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

Branch: refs/heads/master
Commit: b37943a0039560e3929e6540f8d1f6dcfd0a58e9
Parents: 401718e
Author: Kevin Minder <ke...@hortonworks.com>
Authored: Wed Sep 25 23:41:43 2013 -0400
Committer: Kevin Minder <ke...@hortonworks.com>
Committed: Wed Sep 25 23:41:43 2013 -0400

----------------------------------------------------------------------
 .../rewrite/impl/json/JsonFilterReader.java     | 24 +++++++++++++++-----
 1 file changed, 18 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-knox/blob/b37943a0/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/impl/json/JsonFilterReader.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/impl/json/JsonFilterReader.java b/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/impl/json/JsonFilterReader.java
index 4e00d19..5ed3d81 100644
--- a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/impl/json/JsonFilterReader.java
+++ b/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/impl/json/JsonFilterReader.java
@@ -229,7 +229,7 @@ class JsonFilterReader extends Reader {
     Level child;
     Level parent;
     if( stack.isEmpty() ) {
-      node = mapper.createObjectNode();
+      node = mapper.createArrayNode();
       child = pushLevel( null, node, node, config );
     } else {
       child = stack.peek();
@@ -325,7 +325,11 @@ class JsonFilterReader extends Reader {
       }
     }
     if( bufferingLevel == null ) {
-      ((ObjectNode)parent.node ).removeAll();// child.field );
+      if( parent.node.isArray() ) {
+        ((ArrayNode)parent.node).removeAll();
+      } else {
+        ((ObjectNode)parent.node).removeAll();
+      }
       generator.writeString( value );
     }
   }
@@ -439,9 +443,13 @@ class JsonFilterReader extends Reader {
   }
 
   protected String filterStreamValue( Level node ) {
+    String value;
+    if( node.isArray() ) {
+      value = node.node.get( 0 ).asText();
+    } else {
+      value = node.node.get( node.field ).asText();
+    }
     String rule = null;
-    String field = node.field;
-    String value = node.node.get( node.field ).asText();
     UrlRewriteFilterGroupDescriptor scope = node.scopeConfig;
     //TODO: Scan the top level apply rules for the first match.
     if( scope != null ) {
@@ -461,8 +469,12 @@ class JsonFilterReader extends Reader {
       }
     }
     try {
-      value = filterValueString( field, value, rule );
-      ((ObjectNode)node.node ).put( field, value );
+      value = filterValueString( node.field, value, rule );
+      if( node.isArray() ) {
+        ((ArrayNode)node.node).set( 0, new TextNode( value ) );
+      } else {
+        ((ObjectNode)node.node).put( node.field, value );
+      }
     } catch( Exception e ) {
       LOG.failedToFilterValue( value, rule, e );
     }