From 949c2b02cfe7498e196acf5b22174bcd3080a9d6 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Wed, 9 Jan 2019 16:04:14 +0100 Subject: [PATCH] IDEMPIERE-3863 Import/Export translation issue with java 11 --- .../src/org/compiere/install/Translation.java | 4 +++- org.adempiere.base/src/org/compiere/model/PO.java | 13 +++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/org.adempiere.base/src/org/compiere/install/Translation.java b/org.adempiere.base/src/org/compiere/install/Translation.java index b0a0a6f410..5d5a810c92 100644 --- a/org.adempiere.base/src/org/compiere/install/Translation.java +++ b/org.adempiere.base/src/org/compiere/install/Translation.java @@ -28,6 +28,7 @@ import java.util.Map; import java.util.Properties; import java.util.logging.Level; +import javax.xml.XMLConstants; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.SAXParser; @@ -204,7 +205,7 @@ public class Translation implements IApplication // System.out.println(factory.getClass().getName()); DocumentBuilder builder = factory.newDocumentBuilder(); // - // + // Document document = builder.newDocument(); document.appendChild(document.createComment(Adempiere.getSummaryAscii())); document.appendChild(document.createComment(DTD)); @@ -277,6 +278,7 @@ public class Translation implements IApplication valueString = ""; value.setAttribute(XML_VALUE_ATTRIBUTE_ORIGINAL, origString); if (valueString.indexOf("<") != -1 || valueString.indexOf(">") != -1 || valueString.indexOf("&") != -1) { + value.setAttributeNS(XMLConstants.XML_NS_URI, "space", "preserve"); value.appendChild(document.createCDATASection(valueString)); } else { value.appendChild(document.createTextNode(valueString)); diff --git a/org.adempiere.base/src/org/compiere/model/PO.java b/org.adempiere.base/src/org/compiere/model/PO.java index 8dd7cac6d3..00b839cc8a 100644 --- a/org.adempiere.base/src/org/compiere/model/PO.java +++ b/org.adempiere.base/src/org/compiere/model/PO.java @@ -38,6 +38,7 @@ import java.util.Properties; import java.util.UUID; import java.util.logging.Level; +import javax.xml.XMLConstants; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.Transformer; @@ -4577,7 +4578,10 @@ public abstract class PO if (value == null || value.equals (Null.NULL)) ; else if (c == Object.class) + { + col.setAttributeNS(XMLConstants.XML_NS_URI, "space", "preserve"); col.appendChild(document.createCDATASection(value.toString())); + } else if (value instanceof Integer || value instanceof BigDecimal) col.appendChild(document.createTextNode(value.toString())); else if (c == Boolean.class) @@ -4592,11 +4596,20 @@ public abstract class PO else if (value instanceof Timestamp) col.appendChild(document.createTextNode(value.toString())); else if (c == String.class) + { + col.setAttributeNS(XMLConstants.XML_NS_URI, "space", "preserve"); col.appendChild(document.createCDATASection((String)value)); + } else if (DisplayType.isLOB(dt)) + { + col.setAttributeNS(XMLConstants.XML_NS_URI, "space", "preserve"); col.appendChild(document.createCDATASection(value.toString())); + } else + { + col.setAttributeNS(XMLConstants.XML_NS_URI, "space", "preserve"); col.appendChild(document.createCDATASection(value.toString())); + } // root.appendChild(col); }