OOZIE-2927 Append new line character for Hive2 query using query tag (abhishekbafna,asalamon74 via kmarton)
diff --git a/release-log.txt b/release-log.txt
index 177a1b8..af26518 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -1,5 +1,6 @@
-- Oozie 5.2.0 release (trunk - unreleased)
+OOZIE-2927 Append new line character for Hive2 query using query tag (abhishekbafna,asalamon74 via kmarton)
OOZIE-3488 Migrate from guava classes to the base Java implementations (zsombor via asalamon74)
OOZIE-3481 Upgrade Jetty to 9.3.27 (asalamon74 via kmarton)
OOZIE-3464 Use UTF8 charset instead of default one (nobigo via asalamon74)
diff --git a/sharelib/hive2/src/main/java/org/apache/oozie/action/hadoop/Hive2Main.java b/sharelib/hive2/src/main/java/org/apache/oozie/action/hadoop/Hive2Main.java
index 3732c3d..0d8ee1b 100644
--- a/sharelib/hive2/src/main/java/org/apache/oozie/action/hadoop/Hive2Main.java
+++ b/sharelib/hive2/src/main/java/org/apache/oozie/action/hadoop/Hive2Main.java
@@ -259,7 +259,10 @@
private String createScriptFile(String query) throws IOException {
String filename = "oozie-hive2-query-" + System.currentTimeMillis() + ".hql";
File f = new File(filename);
- FileUtils.writeStringToFile(f, query, StandardCharsets.UTF_8.name());
+ if (query != null && !query.endsWith(System.lineSeparator())) {
+ query += System.lineSeparator();
+ }
+ FileUtils.writeStringToFile(f, query, StandardCharsets.UTF_8);
return filename;
}
diff --git a/sharelib/hive2/src/test/java/org/apache/oozie/action/hadoop/TestHive2ActionExecutor.java b/sharelib/hive2/src/test/java/org/apache/oozie/action/hadoop/TestHive2ActionExecutor.java
index a12cdde..2e3ead1 100644
--- a/sharelib/hive2/src/test/java/org/apache/oozie/action/hadoop/TestHive2ActionExecutor.java
+++ b/sharelib/hive2/src/test/java/org/apache/oozie/action/hadoop/TestHive2ActionExecutor.java
@@ -192,6 +192,7 @@
{
String query = getHive2Script(inputDir.toString(), outputDir.toString());
+ query = removeLastNewLineCharacterFromQueryString(query);
Writer dataWriter = new OutputStreamWriter(fs.create(new Path(inputDir, DATA_FILENAME)),
StandardCharsets.UTF_8);
dataWriter.write(SAMPLE_DATA_TEXT);
@@ -248,6 +249,10 @@
}
}
+ private String removeLastNewLineCharacterFromQueryString(String query) {
+ return query.trim();
+ }
+
public void testHive2ActionFails() throws Exception {
setupHiveServer2();
Path inputDir = new Path(getFsTestCaseDir(), INPUT_DIRNAME);