diff --git a/cli/pom.xml b/cli/pom.xml index 345f124..e871cbc 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -84,7 +84,6 @@ commons-io commons-io ${commons-io.version} - test jline diff --git a/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java b/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java index 3cdedba..dc5672a 100644 --- a/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java +++ b/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java @@ -24,6 +24,7 @@ import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; +import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintStream; import java.io.UnsupportedEncodingException; @@ -42,6 +43,8 @@ import jline.History; import jline.SimpleCompletor; +import org.apache.commons.io.ByteOrderMark; +import org.apache.commons.io.input.BOMInputStream; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -472,7 +475,11 @@ public int processFile(String fileName) throws IOException { BufferedReader bufferReader = null; int rc = 0; try { - bufferReader = new BufferedReader(new InputStreamReader(fs.open(path))); + BOMInputStream bomIn = new BOMInputStream( + fs.open(path), ByteOrderMark.UTF_8, + ByteOrderMark.UTF_16LE, ByteOrderMark.UTF_16BE, + ByteOrderMark.UTF_32LE, ByteOrderMark.UTF_32BE); + bufferReader = new BufferedReader(new InputStreamReader(bomIn)); rc = processReader(bufferReader); } finally { IOUtils.closeStream(bufferReader);