details:   https://code.openbravo.com/erp/devel/pi/rev/cb41da47b353
changeset: 23991:cb41da47b353
user:      Shankar Balachandran <shankar.balachandran <at> openbravo.com>
date:      Fri Jul 11 09:40:38 2014 +0530
summary:   Fixes Issue 26986: Some characters are not printed in email Options 
window

Some characters are not printed after switching the template to use in the 
Email options window.
set character encoding to UTF-8 in the response types.

details:   https://code.openbravo.com/erp/devel/pi/rev/d81b1159aded
changeset: 23992:d81b1159aded
user:      Shankar Balachandran <shankar.balachandran <at> openbravo.com>
date:      Fri Jul 11 12:14:31 2014 +0530
summary:   Fixes Issue 27046: Product simple selector is executing a query in 
database without limit

When data is fetched in custom query selector the data was iterated to get the 
number of rows.
This operation is avoided and the total rows is set based on the resultSet 
iterated later.

diffstat:

 
modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/CustomQuerySelectorDatasource.java
 |  35 +++------
 src/org/openbravo/erpCommon/utility/reporting/printing/PrintController.java    
                                          |   4 +-
 2 files changed, 13 insertions(+), 26 deletions(-)

diffs (94 lines):

diff -r 8b0eab71cd09 -r d81b1159aded 
modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/CustomQuerySelectorDatasource.java
--- 
a/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/CustomQuerySelectorDatasource.java
  Thu Jul 10 17:38:04 2014 +0200
+++ 
b/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/CustomQuerySelectorDatasource.java
  Fri Jul 11 12:14:31 2014 +0530
@@ -36,8 +36,6 @@
 import org.codehaus.jettison.json.JSONObject;
 import org.hibernate.Hibernate;
 import org.hibernate.Query;
-import org.hibernate.ScrollMode;
-import org.hibernate.ScrollableResults;
 import org.hibernate.criterion.Restrictions;
 import org.openbravo.base.model.ModelProvider;
 import org.openbravo.base.model.domaintype.BigDecimalDomainType;
@@ -80,6 +78,8 @@
     final SimpleDateFormat xmlDateFormat = JsonUtils.createDateFormat();
     final SimpleDateFormat xmlDateTimeFormat = 
JsonUtils.createDateTimeFormat();
     final List<Map<String, Object>> result = new ArrayList<Map<String, 
Object>>();
+    // Defaulted to endRow + 2 to check for more records while scrolling.
+    int totalRows = endRow + 2, rowCount = 0;
 
     String selectorId = 
parameters.get(SelectorConstants.DS_REQUEST_SELECTOR_ID_PARAMETER);
 
@@ -106,28 +106,6 @@
 
       Query selQuery = OBDal.getInstance().getSession().createQuery(HQL);
       String[] queryAliases = selQuery.getReturnAliases();
-      if ("true".equals(parameters.get(JsonConstants.NOCOUNT_PARAMETER))) {
-        int totalRows = 0, queryListSize = 0, clearEachLoop = 100;
-        // Defaulted to endRow + 2 to check for more records while scrolling.
-        totalRows = endRow + 2;
-        ScrollableResults queryResults = 
selQuery.scroll(ScrollMode.FORWARD_ONLY);
-        try {
-          while (queryResults.next()) {
-            queryListSize++;
-            if (queryListSize % clearEachLoop == 0) {
-              OBDal.getInstance().getSession().clear();
-            }
-          }
-        } finally {
-          queryResults.close();
-        }
-        if (startRow < endRow) {
-          if (queryListSize < endRow) {
-            totalRows = queryListSize;
-          }
-          parameters.put(JsonConstants.RESPONSE_TOTALROWS, 
String.valueOf(totalRows));
-        }
-      }
 
       if (startRow > 0) {
         selQuery.setFirstResult(startRow);
@@ -137,6 +115,7 @@
       }
 
       for (Object objResult : selQuery.list()) {
+        rowCount++;
         final Map<String, Object> data = new LinkedHashMap<String, Object>();
         Object[] resultList = new Object[1];
         if (objResult instanceof Object[]) {
@@ -163,6 +142,14 @@
         }
         result.add(data);
       }
+      if ("true".equals(parameters.get(JsonConstants.NOCOUNT_PARAMETER))) {
+        if (startRow < endRow) {
+          if (rowCount < endRow) {
+            totalRows = rowCount;
+          }
+          parameters.put(JsonConstants.RESPONSE_TOTALROWS, 
String.valueOf(totalRows));
+        }
+      }
     } finally {
       OBContext.restorePreviousMode();
     }
diff -r 8b0eab71cd09 -r d81b1159aded 
src/org/openbravo/erpCommon/utility/reporting/printing/PrintController.java
--- 
a/src/org/openbravo/erpCommon/utility/reporting/printing/PrintController.java   
    Thu Jul 10 17:38:04 2014 +0200
+++ 
b/src/org/openbravo/erpCommon/utility/reporting/printing/PrintController.java   
    Fri Jul 11 12:14:31 2014 +0530
@@ -429,7 +429,7 @@
             }
           }
 
-          response.setContentType("application/json");
+          response.setContentType("application/json; charset=UTF-8");
           final PrintWriter out = response.getWriter();
           out.println(o.toString());
           out.close();
@@ -452,7 +452,7 @@
             }
           }
 
-          response.setContentType("application/json");
+          response.setContentType("application/json; charset=UTF-8");
           final PrintWriter out = response.getWriter();
           out.println(o.toString());
           out.close();

------------------------------------------------------------------------------
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to