diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/AbstractADWindowContent.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/AbstractADWindowContent.java index a68ced4d61..8bd8f5f1b3 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/AbstractADWindowContent.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/AbstractADWindowContent.java @@ -1286,9 +1286,11 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements StringBuilder sb = new StringBuilder(); String msg = e.getMessage(); StringBuilder adMessage = new StringBuilder(); + String origmsg = null; if (msg != null && msg.length() > 0) { - adMessage.append(Msg.getMsg(Env.getCtx(), e.getAD_Message())); + origmsg = Msg.getMsg(Env.getCtx(), e.getAD_Message()); + adMessage.append(origmsg); } String info = e.getInfo(); if (info != null && info.length() > 0) @@ -1320,7 +1322,14 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements } adMessage.append(tail); } - sb.append(MessageFormat.format(adMessage.toString(), arguments)); + String adMessageQuot = Util.replace(adMessage.toString(), "'", "''"); + if ( arguments.length == 1 + && origmsg != null + && origmsg.equals(arguments[0])) { // check dup message + sb.append(origmsg); + } else { + sb.append(MessageFormat.format(adMessageQuot, arguments)); + } } else {