From 9e3160a121795f0b10109505451abc1282c2fa95 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Sun, 26 Mar 2017 12:54:27 +0200 Subject: [PATCH] IDEMPIERE-3309 Info Window C_Bpartner_Location.C_Location_ID sIdentifier='Y' break sorting --- .../org/adempiere/webui/panel/InfoPanel.java | 29 ++++++------------- 1 file changed, 9 insertions(+), 20 deletions(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/InfoPanel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/InfoPanel.java index a20d27ecb3..1faad6d865 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/InfoPanel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/InfoPanel.java @@ -2136,36 +2136,25 @@ public abstract class InfoPanel extends Window implements EventListener, { String tmp = colsql.substring(0, lastSpaceIdx).trim(); char last = tmp.charAt(tmp.length() - 1); - if (tmp.toLowerCase().endsWith("as")) + + String alias = colsql.substring(lastSpaceIdx).trim(); + boolean hasAlias = alias.matches("^[a-zA-Z_][a-zA-Z0-9_]*$"); // valid SQL alias - starts with letter then digits, letters, underscore + + if (tmp.toLowerCase().endsWith("as") && hasAlias) { - colsql = colsql.substring(lastSpaceIdx).trim(); + colsql = alias; } else if (!(last == '*' || last == '-' || last == '+' || last == '/' || last == '>' || last == '<' || last == '=')) { - tmp = colsql.substring(lastSpaceIdx).trim(); - if (tmp.startsWith("\"") && tmp.endsWith("\"")) + if (alias.startsWith("\"") && alias.endsWith("\"")) { - colsql = colsql.substring(lastSpaceIdx).trim(); + colsql = alias; } else { - boolean hasAlias = true; - for(int i = 0; i < tmp.length(); i++) - { - char c = tmp.charAt(i); - if (Character.isLetterOrDigit(c)) - { - continue; - } - else - { - hasAlias = false; - break; - } - } if (hasAlias) { - colsql = colsql.substring(lastSpaceIdx).trim(); + colsql = alias; } } }