# HG changeset patch
# User Atul Gaware <atul.gaware@openbravo.com>
# Date 1589375605 -19800
#      Wed May 13 18:43:25 2020 +0530
# Node ID b697886db99e4f340f3efeb1ef1d3e315359c373
# Parent  aa86aecffff5c604f1278e836553faad57c2b7ea
Proposed Fix for BUG-44053

diff -r aa86aecffff5 -r b697886db99e src/org/openbravo/xmlpo/po2xml/PO2XMLMain.java
--- a/src/org/openbravo/xmlpo/po2xml/PO2XMLMain.java	Wed May 13 13:49:46 2020 +0530
+++ b/src/org/openbravo/xmlpo/po2xml/PO2XMLMain.java	Wed May 13 18:43:25 2020 +0530
@@ -19,7 +19,12 @@
 
 package org.openbravo.xmlpo.po2xml;
 
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
 import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
 
 import org.apache.log4j.Logger;
 import org.openbravo.xmlpo.exceptions.InvalidFolderException;
@@ -48,6 +53,8 @@
           if (!isValid.equals("")) {
             throw new InvalidFolderException(isValid);
           }
+          // Check whether PO file ends with New Line, if not add new line at EOF
+          checkAddNewLine(file);
           controller.addFile(file);
         }
         log4j.info("Adding file to transform to XML: " + file.getAbsoluteFile());
@@ -102,4 +109,42 @@
       }
     }
   }
+
+  /*
+   * Check Whether new line exists at end of PO File, if not add it
+   */
+
+  private static void checkAddNewLine(File file) {
+    BufferedReader reader = null;
+    BufferedWriter writer = null;
+    String lastLine = "";
+    try {
+      reader = new BufferedReader(new FileReader(file));
+      String currentLine;
+      while ((currentLine = reader.readLine()) != null) {
+        lastLine = currentLine;
+      }
+      if (lastLine.length() > 0) {
+        writer = new BufferedWriter(new FileWriter(file, true));
+        writer.newLine();
+      }
+    } catch (Exception e) {
+      log4j.error("Error in checkAndAddNewLine.." + e.getMessage());
+    } finally {
+      try {
+        if (reader != null) {
+          reader.close();
+        }
+      } catch (IOException e) {
+        log4j.error("Error in closing buffer reader.." + e.getMessage());
+      }
+      try {
+        if (writer != null) {
+          writer.close();
+        }
+      } catch (IOException e) {
+        log4j.error("Error in closing buffer writer.." + e.getMessage());
+      }
+    }
+  }
 }
