diff --git a/base/src/org/compiere/dbPort/Convert.java b/base/src/org/compiere/dbPort/Convert.java index 3b2809f028..7a52d78601 100644 --- a/base/src/org/compiere/dbPort/Convert.java +++ b/base/src/org/compiere/dbPort/Convert.java @@ -1,5 +1,5 @@ /****************************************************************************** - * Product: Adempiere ERP & CRM Smart Business Solution * + * Product: Adempiere ERP & CRM Smart Business Solution * * Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. * * This program is free software; you can redistribute it and/or modify it * * under the terms version 2 of the GNU General Public License as published * @@ -16,10 +16,12 @@ *****************************************************************************/ package org.compiere.dbPort; -import java.io.DataOutputStream; +import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; +import java.io.OutputStreamWriter; +import java.io.Writer; import java.sql.Connection; import java.sql.SQLException; import java.sql.SQLWarning; @@ -47,6 +49,8 @@ import org.compiere.util.Ini; * @author Teo Sarca, www.arhipac.ro *
  • BF [ 2782095 ] Do not log *Access records * https://sourceforge.net/tracker/?func=detail&aid=2782095&group_id=176962&atid=879332 + *
  • TODO: BF [ 2782611 ] Migration scripts are not UTF8 + * https://sourceforge.net/tracker/?func=detail&aid=2782611&group_id=176962&atid=879332 */ public abstract class Convert { @@ -68,9 +72,9 @@ public abstract class Convert private static CLogger log = CLogger.getCLogger (Convert.class); private static FileOutputStream tempFileOr = null; - private static DataOutputStream osOr; + private static Writer writerOr; private static FileOutputStream tempFilePg = null; - private static DataOutputStream osPg; + private static Writer writerPg; /** * Set Verbose @@ -429,9 +433,9 @@ public abstract class Convert if (tempFileOr == null) { File fileNameOr = File.createTempFile("migration_script_", "_oracle.sql"); tempFileOr = new FileOutputStream(fileNameOr, true); - osOr = new DataOutputStream(tempFileOr); + writerOr = new BufferedWriter(new OutputStreamWriter(tempFileOr, "UTF8")); } - writeLogMigrationScript(osOr, oraStatement); + writeLogMigrationScript(writerOr, oraStatement); } catch (IOException e) { e.printStackTrace(); } @@ -445,9 +449,9 @@ public abstract class Convert if (tempFilePg == null) { File fileNamePg = File.createTempFile("migration_script_", "_postgresql.sql"); tempFilePg = new FileOutputStream(fileNamePg, true); - osPg = new DataOutputStream(tempFilePg); + writerPg = new BufferedWriter(new OutputStreamWriter(tempFilePg, "UTF8")); } - writeLogMigrationScript(osPg, pgStatement); + writeLogMigrationScript(writerPg, pgStatement); } catch (IOException e) { e.printStackTrace(); } @@ -524,24 +528,25 @@ public abstract class Convert return false; } - private static void writeLogMigrationScript(DataOutputStream os, String statement) throws IOException { + private static void writeLogMigrationScript(Writer w, String statement) throws IOException + { String prm_COMMENT = MSysConfig.getValue("DICTIONARY_ID_COMMENTS"); // log time and date SimpleDateFormat format = DisplayType.getDateFormat(DisplayType.DateTime); String dateTimeText = format.format(new Timestamp(System.currentTimeMillis())); - os.writeBytes("-- "); - os.writeBytes(dateTimeText); - os.writeBytes("\n"); + w.append("-- "); + w.append(dateTimeText); + w.append("\n"); // log sysconfig comment - os.writeBytes("-- "); - os.writeBytes(prm_COMMENT); - os.writeBytes("\n"); + w.append("-- "); + w.append(prm_COMMENT); + w.append("\n"); // log statement - os.writeBytes(statement); + w.append(statement); // close statement - os.writeBytes("\n;\n\n"); - // flush stream - teo_sarca BF [ 1894474 ] - os.flush(); + w.append("\n;\n\n"); + // flush stream - teo_sarca BF [ 1894474 ] + w.flush(); } } // Convert \ No newline at end of file