details: /erp/stable/2.50/rev/06ab671d6969
changeset: 9202:06ab671d6969
user: Stefan Hühner <stefan.huehner <at> openbravo.com>
date: Fri Feb 11 18:50:22 2011 +0100
summary: Fixed 15957. Fix performance issue in locator selector.
Remove a column which has an expensive function call from the select, as it was
just not used.
details: /erp/stable/2.50/rev/583d55bb232d
changeset: 9203:583d55bb232d
user: Stefan Hühner <stefan.huehner <at> openbravo.com>
date: Fri Feb 11 18:50:41 2011 +0100
summary: Related to issue 15957. Reformat file
details: /erp/stable/2.50/rev/603952524361
changeset: 9204:603952524361
user: Stefan Hühner <stefan.huehner <at> openbravo.com>
date: Fri Feb 11 18:55:08 2011 +0100
summary: Related to issue 15957.Do some cleanup.
- Locator.java:
- remove some unused code/comments
- convert use of printStacktrace to log4j
- Project.java
- remove some unused code/comments
- convert use of printStacktrace to log4j
- Project_java.xsql
- remove to resultset columns which are not used
diffstat:
src/org/openbravo/erpCommon/info/Locator.java | 34 ++++----------
src/org/openbravo/erpCommon/info/Locator_data.xsql | 5 +-
src/org/openbravo/erpCommon/info/Project.java | 49 ++++++++-------------
src/org/openbravo/erpCommon/info/Project_data.xsql | 3 +-
4 files changed, 34 insertions(+), 57 deletions(-)
diffs (235 lines):
diff -r d1956bc4eabd -r 603952524361
src/org/openbravo/erpCommon/info/Locator.java
--- a/src/org/openbravo/erpCommon/info/Locator.java Fri Feb 11 10:11:05
2011 +0100
+++ b/src/org/openbravo/erpCommon/info/Locator.java Fri Feb 11 18:55:08
2011 +0100
@@ -11,7 +11,7 @@
* under the License.
* The Original Code is Openbravo ERP.
* The Initial Developer of the Original Code is Openbravo SLU
- * All portions are Copyright (C) 2001-2010 Openbravo SLU
+ * All portions are Copyright (C) 2001-2011 Openbravo SLU
* All Rights Reserved.
* Contributor(s): ______________________________________.
************************************************************************
@@ -203,11 +203,6 @@
private SQLReturnObject[] getHeaders(VariablesSecureApp vars) {
SQLReturnObject[] data = null;
Vector<SQLReturnObject> vAux = new Vector<SQLReturnObject>();
- String[] colNames = { "name", "value", "aisle", "bin", "nivel",
"priorityno", "isdefault",
- "rowkey" };
- // String[] gridNames = {"Key", "Name","Disp. Credit","Credit used",
- // "Contact", "Phone no.", "Zip", "City", "Income", "c_bpartner_id",
- // "c_bpartner_contact_id", "c_bpartner_location_id", "rowkey"};
String[] colWidths = { "270", "150", "68", "68", "68", "90", "70", "0" };
for (int i = 0; i < colNames.length; i++) {
SQLReturnObject dataAux = new SQLReturnObject();
@@ -258,11 +253,8 @@
int oldOffset = offset;
offset = (page * TableSQLData.maxRowsPerGridPage) + offset;
log4j.debug("relativeOffset: " + oldOffset + " absoluteOffset: " +
offset);
- if (strNewFilter.equals("1") || strNewFilter.equals("")) { // New
- // filter
- // or
- // first
- // load
+ if (strNewFilter.equals("1") || strNewFilter.equals("")) {
+ // New filter or first load
String rownum = "0", oraLimit1 = null, oraLimit2 = null, pgLimit =
null;
if (this.myPool.getRDBMS().equalsIgnoreCase("ORACLE")) {
oraLimit1 = String.valueOf(offset +
TableSQLData.maxRowsPerGridPage);
@@ -274,7 +266,6 @@
strNumRows = LocatorData.countRows(this, rownum,
Utility.getContext(this, vars,
"#User_Client", "Locator"), Utility.getSelectorOrgs(this, vars,
strOrg), strName,
strWarehousename, strAisle, strBin, strLevel, pgLimit,
oraLimit1, oraLimit2);
- // strNumRows = String.valueOf(data.length);
vars.setSessionValue("Locator.numrows", strNumRows);
} else {
strNumRows = vars.getSessionValue("Locator.numrows");
@@ -283,18 +274,17 @@
// Filtering result
if (this.myPool.getRDBMS().equalsIgnoreCase("ORACLE")) {
String oraLimit = (offset + 1) + " AND " + String.valueOf(offset +
pageSize);
- data = LocatorData.select(this, "ROWNUM", vars.getLanguage(),
Utility.getContext(this,
- vars, "#User_Client", "Locator"), Utility.getSelectorOrgs(this,
vars, strOrg),
- strName, strWarehousename, strAisle, strBin, strLevel,
strOrderBy, oraLimit, "");
+ data = LocatorData.select(this, "ROWNUM", Utility.getContext(this,
vars, "#User_Client",
+ "Locator"), Utility.getSelectorOrgs(this, vars, strOrg),
strName, strWarehousename,
+ strAisle, strBin, strLevel, strOrderBy, oraLimit, "");
} else {
String pgLimit = pageSize + " OFFSET " + offset;
- data = LocatorData.select(this, "1", vars.getLanguage(),
Utility.getContext(this, vars,
- "#User_Client", "Locator"), Utility.getSelectorOrgs(this, vars,
strOrg), strName,
- strWarehousename, strAisle, strBin, strLevel, strOrderBy, "",
pgLimit);
+ data = LocatorData.select(this, "1", Utility.getContext(this, vars,
"#User_Client",
+ "Locator"), Utility.getSelectorOrgs(this, vars, strOrg),
strName, strWarehousename,
+ strAisle, strBin, strLevel, strOrderBy, "", pgLimit);
}
} catch (ServletException e) {
- log4j.error("Error in print page data: " + e);
- e.printStackTrace();
+ log4j.error("Error in print page data: ", e);
OBError myError = Utility.translateError(this, vars,
vars.getLanguage(), e.getMessage());
if (!myError.isConnectionAvailable()) {
bdErrorAjax(response, "Error", "Connection Error", "No database
connection");
@@ -308,15 +298,13 @@
description = myError.getMessage();
}
} catch (Exception e) {
- if (log4j.isDebugEnabled())
- log4j.debug("Error obtaining rows data");
+ log4j.error("Error obtaining rows data", e);
type = "Error";
title = "Error";
if (e.getMessage().startsWith("<![CDATA["))
description = "<![CDATA[" + e.getMessage() + "]]>";
else
description = e.getMessage();
- e.printStackTrace();
}
}
diff -r d1956bc4eabd -r 603952524361
src/org/openbravo/erpCommon/info/Locator_data.xsql
--- a/src/org/openbravo/erpCommon/info/Locator_data.xsql Fri Feb 11
10:11:05 2011 +0100
+++ b/src/org/openbravo/erpCommon/info/Locator_data.xsql Fri Feb 11
18:55:08 2011 +0100
@@ -12,7 +12,7 @@
* under the License.
* The Original Code is Openbravo ERP.
* The Initial Developer of the Original Code is Openbravo SLU
- * All portions are Copyright (C) 2001-2009 Openbravo SLU
+ * All portions are Copyright (C) 2001-2011 Openbravo SLU
* All Rights Reserved.
* Contributor(s): ______________________________________.
************************************************************************
@@ -29,7 +29,7 @@
<Sql>
<![CDATA[
SELECT * FROM ( SELECT '0' AS RN1, A.* FROM (
- SELECT m.M_LOCATOR_ID, mw.NAME, m.VALUE,
REPLACE(AD_COLUMN_IDENTIFIER(TO_CHAR('M_LOCATOR'), TO_CHAR(m.M_LOCATOR_ID),
TO_CHAR(?)), '''', chr(92)||'''') AS VALUE_HIDDEN, m.PRIORITYNO,
+ SELECT m.M_LOCATOR_ID, mw.NAME, m.VALUE, m.PRIORITYNO,
m.ISDEFAULT, m.X AS aisle, m.Y AS bin, m.Z AS nivel,
m.M_LOCATOR_ID || '@_##_@' || m.value AS rowKey
FROM M_LOCATOR m, M_WAREHOUSE mw,Ad_Org ao
@@ -47,7 +47,6 @@
</Sql>
<Field name="position" value="count"/>
<Parameter name="rownum" type="replace" optional="true" after="FROM (
SELECT " text="'0'" />
- <Parameter name="adLanguage"/>
<Parameter name="adUserClient" type="replace" optional="true"
after="mw.AD_Client_ID IN (" text="'1'"/>
<Parameter name="adUserOrg" type="replace" optional="true"
after="mw.AD_Org_ID IN (" text="'1'"/>
<Parameter name="key" ignoreValue="%" optional="true" after="AND
m.ISACTIVE = 'Y'"><![CDATA[ AND UPPER(m.VALUE) LIKE UPPER(?) ]]></Parameter>
diff -r d1956bc4eabd -r 603952524361
src/org/openbravo/erpCommon/info/Project.java
--- a/src/org/openbravo/erpCommon/info/Project.java Fri Feb 11 10:11:05
2011 +0100
+++ b/src/org/openbravo/erpCommon/info/Project.java Fri Feb 11 18:55:08
2011 +0100
@@ -11,7 +11,7 @@
* under the License.
* The Original Code is Openbravo ERP.
* The Initial Developer of the Original Code is Openbravo SLU
- * All portions are Copyright (C) 2001-2009 Openbravo SLU
+ * All portions are Copyright (C) 2001-2011 Openbravo SLU
* All Rights Reserved.
* Contributor(s): ______________________________________.
************************************************************************
@@ -213,9 +213,6 @@
private SQLReturnObject[] getHeaders(VariablesSecureApp vars) {
SQLReturnObject[] data = null;
Vector<SQLReturnObject> vAux = new Vector<SQLReturnObject>();
- // String[] gridNames = {"Key", "Name","Disp. Credit","Credit used",
- // "Contact", "Phone no.", "Zip", "City", "Income", "c_bpartner_id",
- // "c_bpartner_contact_id", "c_bpartner_location_id", "rowkey"};
String[] colWidths = { "98", "300", "250", "120", "0" };
for (int i = 0; i < colNames.length; i++) {
SQLReturnObject dataAux = new SQLReturnObject();
@@ -260,29 +257,25 @@
String strOrderBy = SelectorUtility.buildOrderByClause(strOrderCols,
strOrderDirs);
page = TableSQLData.calcAndGetBackendPage(vars, "Project.currentPage");
if (vars.getStringParameter("movePage", "").length() > 0) {
- // on movePage action force executing countRows again
- strNewFilter = "";
+ // on movePage action force executing countRows again
+ strNewFilter = "";
}
int oldOffset = offset;
offset = (page * TableSQLData.maxRowsPerGridPage) + offset;
log4j.debug("relativeOffset: " + oldOffset + " absoluteOffset: " +
offset);
- if (strNewFilter.equals("1") || strNewFilter.equals("")) { // New
- // filter
- // or
- // first
- // load
- String rownum = "0", oraLimit1 = null, oraLimit2 = null, pgLimit =
null;
- if (this.myPool.getRDBMS().equalsIgnoreCase("ORACLE")) {
- oraLimit1 = String.valueOf(offset +
TableSQLData.maxRowsPerGridPage);
- oraLimit2 = (offset + 1) + " AND " + oraLimit1;
- rownum = "ROWNUM";
- } else {
- pgLimit = TableSQLData.maxRowsPerGridPage + " OFFSET " + offset;
- }
- strNumRows = ProjectData.countRows(this, rownum, vars.getLanguage(),
Utility.getContext(this, vars,
- "#User_Client", "Project"), Utility.getSelectorOrgs(this, vars,
strOrg), strKey,
- strName, strBpartners, pgLimit, oraLimit1, oraLimit2);
- //strNumRows = String.valueOf(data.length);
+ if (strNewFilter.equals("1") || strNewFilter.equals("")) {
+ // New filter or first load
+ String rownum = "0", oraLimit1 = null, oraLimit2 = null, pgLimit =
null;
+ if (this.myPool.getRDBMS().equalsIgnoreCase("ORACLE")) {
+ oraLimit1 = String.valueOf(offset +
TableSQLData.maxRowsPerGridPage);
+ oraLimit2 = (offset + 1) + " AND " + oraLimit1;
+ rownum = "ROWNUM";
+ } else {
+ pgLimit = TableSQLData.maxRowsPerGridPage + " OFFSET " + offset;
+ }
+ strNumRows = ProjectData.countRows(this, rownum, vars.getLanguage(),
Utility.getContext(
+ this, vars, "#User_Client", "Project"),
Utility.getSelectorOrgs(this, vars, strOrg),
+ strKey, strName, strBpartners, pgLimit, oraLimit1, oraLimit2);
vars.setSessionValue("ProjectData.numrows", strNumRows);
} else {
strNumRows = vars.getSessionValue("ProjectData.numrows");
@@ -301,8 +294,7 @@
strName, strBpartners, strOrderBy, "", pgLimit);
}
} catch (ServletException e) {
- log4j.error("Error in print page data: " + e);
- e.printStackTrace();
+ log4j.error("Error in print page data: ", e);
OBError myError = Utility.translateError(this, vars,
vars.getLanguage(), e.getMessage());
if (!myError.isConnectionAvailable()) {
bdErrorAjax(response, "Error", "Connection Error", "No database
connection");
@@ -316,15 +308,13 @@
description = myError.getMessage();
}
} catch (Exception e) {
- if (log4j.isDebugEnabled())
- log4j.debug("Error obtaining rows data");
+ log4j.error("Error obtaining rows data", e);
type = "Error";
title = "Error";
if (e.getMessage().startsWith("<![CDATA["))
description = "<![CDATA[" + e.getMessage() + "]]>";
else
description = e.getMessage();
- e.printStackTrace();
}
}
@@ -341,7 +331,8 @@
strRowsData.append(" <title>").append(title).append("</title>\n");
strRowsData.append("
<description>").append(description).append("</description>\n");
strRowsData.append(" </status>\n");
- strRowsData.append(" <rows numRows=\"").append(strNumRows).append("\"
backendPage=\"" + page + "\">\n");
+ strRowsData.append(" <rows numRows=\"").append(strNumRows).append(
+ "\" backendPage=\"" + page + "\">\n");
if (data != null && data.length > 0) {
for (int j = 0; j < data.length; j++) {
strRowsData.append(" <tr>\n");
diff -r d1956bc4eabd -r 603952524361
src/org/openbravo/erpCommon/info/Project_data.xsql
--- a/src/org/openbravo/erpCommon/info/Project_data.xsql Fri Feb 11
10:11:05 2011 +0100
+++ b/src/org/openbravo/erpCommon/info/Project_data.xsql Fri Feb 11
18:55:08 2011 +0100
@@ -28,8 +28,7 @@
<SqlMethodComment></SqlMethodComment>
<Sql> <![CDATA[
SELECT * FROM ( SELECT '0' AS RN1, A.* FROM (
- SELECT P.C_PROJECT_ID, P.VALUE, REPLACE(P.VALUE, '''', CHR(92) ||
'''') AS VALUE_HIDDEN, P.NAME, P.C_BPARTNER_ID,
- REPLACE(P.NAME, '''', CHR(92) || CHR(92) || '''') AS NAME_HIDDEN,
+ SELECT P.C_PROJECT_ID, P.VALUE, P.NAME, P.C_BPARTNER_ID,
B.NAME AS BPARTNER, L.NAME AS PROJECTSTATUS,
p.c_Project_Id || '@_##_@' || p.value || ' - ' || p.name as rowkey
FROM C_PROJECT P, C_BPARTNER B, AD_REF_LIST_V L
------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits