You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by nh...@apache.org on 2015/11/26 00:01:33 UTC

incubator-hawq git commit: HAWQ-188. Close Avro schema resource in case of exception

Repository: incubator-hawq
Updated Branches:
  refs/heads/master 06b7f2f05 -> 29dd3ed41


HAWQ-188. Close Avro schema resource in case of exception


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

Branch: refs/heads/master
Commit: 29dd3ed41004089bbbb0d4cc43ffc41f5a67cbd5
Parents: 06b7f2f
Author: Noa Horn <nh...@pivotal.io>
Authored: Tue Nov 24 10:44:17 2015 -0800
Committer: Noa Horn <nh...@pivotal.io>
Committed: Wed Nov 25 14:56:06 2015 -0800

----------------------------------------------------------------------
 .../apache/hawq/pxf/plugins/hdfs/AvroResolver.java   | 15 ++++++++++++---
 .../pxf/plugins/hdfs/utilities/HdfsUtilities.java    |  2 +-
 2 files changed, 13 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/29dd3ed4/pxf/pxf-hdfs/src/main/java/org/apache/hawq/pxf/plugins/hdfs/AvroResolver.java
----------------------------------------------------------------------
diff --git a/pxf/pxf-hdfs/src/main/java/org/apache/hawq/pxf/plugins/hdfs/AvroResolver.java b/pxf/pxf-hdfs/src/main/java/org/apache/hawq/pxf/plugins/hdfs/AvroResolver.java
index 317040f..5586f1c 100644
--- a/pxf/pxf-hdfs/src/main/java/org/apache/hawq/pxf/plugins/hdfs/AvroResolver.java
+++ b/pxf/pxf-hdfs/src/main/java/org/apache/hawq/pxf/plugins/hdfs/AvroResolver.java
@@ -62,9 +62,18 @@ public class AvroResolver extends Plugin implements ReadResolver {
     public AvroResolver(InputData input) throws IOException {
         super(input);
 
-        Schema schema = isAvroFile() ? getAvroSchema(new Configuration(),
-                input.getDataSource())
-                : (new Schema.Parser()).parse(openExternalSchema());
+        Schema schema;
+
+        if (isAvroFile()) {
+            schema = getAvroSchema(new Configuration(), input.getDataSource());
+        } else {
+            InputStream externalSchema = openExternalSchema();
+            try {
+                schema = (new Schema.Parser()).parse(externalSchema);
+            } finally {
+                externalSchema.close();
+            }
+        }
 
         reader = new GenericDatumReader<>(schema);
         fields = schema.getFields();

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/29dd3ed4/pxf/pxf-hdfs/src/main/java/org/apache/hawq/pxf/plugins/hdfs/utilities/HdfsUtilities.java
----------------------------------------------------------------------
diff --git a/pxf/pxf-hdfs/src/main/java/org/apache/hawq/pxf/plugins/hdfs/utilities/HdfsUtilities.java b/pxf/pxf-hdfs/src/main/java/org/apache/hawq/pxf/plugins/hdfs/utilities/HdfsUtilities.java
index aa854fc..155ae26 100644
--- a/pxf/pxf-hdfs/src/main/java/org/apache/hawq/pxf/plugins/hdfs/utilities/HdfsUtilities.java
+++ b/pxf/pxf-hdfs/src/main/java/org/apache/hawq/pxf/plugins/hdfs/utilities/HdfsUtilities.java
@@ -191,7 +191,7 @@ public class HdfsUtilities {
      * @param conf Hadoop configuration
      * @param dataSource Avro file (i.e fileName.avro) path
      * @return the Avro schema
-     * @throws IOException if I/O error occured while accessing Avro schema file
+     * @throws IOException if I/O error occurred while accessing Avro schema file
      */
     public static Schema getAvroSchema(Configuration conf, String dataSource)
             throws IOException {