Index: ql/src/java/org/apache/hadoop/hive/ql/parse/EximUtil.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/parse/EximUtil.java (revision 1357818) +++ ql/src/java/org/apache/hadoop/hive/ql/parse/EximUtil.java (working copy) @@ -79,11 +79,11 @@ // generate absolute path relative to home directory if (!path.startsWith("/")) { if (testMode) { - path = new Path(System.getProperty("build.dir.hive"), - path).toString(); + path = (new Path(System.getProperty("build.dir.hive"), + path)).toUri().getPath(); } else { - path = new Path(new Path("/user/" + System.getProperty("user.name")), - path).toString(); + path = (new Path(new Path("/user/" + System.getProperty("user.name")), + path)).toUri().getPath(); } } // set correct scheme and authority @@ -144,8 +144,8 @@ String authority = uri.getAuthority(); String path = uri.getPath(); if (!path.startsWith("/")) { - path = new Path(System.getProperty("build.dir.hive"), - path).toString(); + path = (new Path(System.getProperty("build.dir.hive"), + path)).toUri().getPath(); } if (StringUtils.isEmpty(scheme)) { scheme = "pfile"; @@ -201,11 +201,12 @@ } } - public static Map.Entry> - readMetaData(FileSystem fs, Path metadataPath) + public static Map.Entry> + readMetaData(FileSystem fs, Path metadataPath) throws IOException, SemanticException { + FSDataInputStream mdstream = null; try { - FSDataInputStream mdstream = fs.open(metadataPath); + mdstream = fs.open(metadataPath); byte[] buffer = new byte[1024]; ByteArrayOutputStream sb = new ByteArrayOutputStream(); int read = mdstream.read(buffer); @@ -238,6 +239,10 @@ throw new SemanticException(ErrorMsg.GENERIC_ERROR.getMsg("Error in serializing metadata"), e); } catch (TException e) { throw new SemanticException(ErrorMsg.GENERIC_ERROR.getMsg("Error in serializing metadata"), e); + } finally { + if (mdstream != null) { + mdstream.close(); + } } }