details:   https://code.openbravo.com/erp/devel/pi/rev/8839b720e9f9
changeset: 16904:8839b720e9f9
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Fri Jun 22 14:58:32 2012 +0200
summary:   Fixes issue 20841: Prevent null pointer exception in the FIC 
component
Prevent NPE by adding an if statement and treating null differently

details:   https://code.openbravo.com/erp/devel/pi/rev/4d7158b8b0d4
changeset: 16905:4d7158b8b0d4
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Fri Jun 22 15:00:41 2012 +0200
summary:   Fixes issue 20840: Product selector in Product Bill of Material does 
not work
If the warehouse is not defined in the session then the default value 
expression evaluation returns a '', handle this case.
Note this has not worked for a long while, it does not work in main either

details:   https://code.openbravo.com/erp/devel/pi/rev/c5c63ab2d60e
changeset: 16906:c5c63ab2d60e
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Fri Jun 22 15:02:39 2012 +0200
summary:   Related to 20829: BB.DD rrror when executing Bill of Materials 
Production process
Only do left join fetching if explicitly set, in other cases uses normal left 
join handling

details:   https://code.openbravo.com/erp/devel/pi/rev/d41c49f86b66
changeset: 16907:d41c49f86b66
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Fri Jun 22 23:24:09 2012 +0200
summary:   Merged branches

diffstat:

 
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/FormInitializationComponent.java
         |   9 +++++++--
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/utilities/ob-utilities-number.js
             |   2 +-
 
modules/org.openbravo.service.json/src/org/openbravo/service/json/AdvancedQueryBuilder.java
                                   |  10 +++++++++-
 
modules/org.openbravo.service.json/src/org/openbravo/service/json/DataEntityQueryService.java
                                 |   7 +++++++
 
modules/org.openbravo.service.json/src/org/openbravo/service/json/DefaultJsonDataService.java
                                 |   4 +++-
 
modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorDataSourceFilter.java
           |  10 ++++++++--
 
modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorDefaultFilterActionHandler.java
 |   2 +-
 7 files changed, 36 insertions(+), 8 deletions(-)

diffs (147 lines):

diff -r fee596d84bb3 -r d41c49f86b66 
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/FormInitializationComponent.java
--- 
a/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/FormInitializationComponent.java
     Fri Jun 22 11:12:39 2012 +0200
+++ 
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/FormInitializationComponent.java
     Fri Jun 22 23:24:09 2012 +0200
@@ -1033,8 +1033,13 @@
       if (currentValue != null && currentValue.equals("null")) {
         currentValue = null;
       }
-      RequestContext.get().setRequestParameter("inp" + 
Sqlc.TransformaNombreColumna(columnName),
-          currentValue.toString());
+      if (currentValue == null) {
+        RequestContext.get().setRequestParameter("inp" + 
Sqlc.TransformaNombreColumna(columnName),
+            null);
+      } else {
+        RequestContext.get().setRequestParameter("inp" + 
Sqlc.TransformaNombreColumna(columnName),
+            currentValue.toString());
+      }
     }
   }
 
diff -r fee596d84bb3 -r d41c49f86b66 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/utilities/ob-utilities-number.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/utilities/ob-utilities-number.js
 Fri Jun 22 11:12:39 2012 +0200
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/utilities/ob-utilities-number.js
 Fri Jun 22 23:24:09 2012 +0200
@@ -293,7 +293,7 @@
 OB.Utilities.Number.JSToOBMasked = function (number, maskNumeric, 
decSeparator, groupSeparator, groupInterval) {
   var isANumber = Object.prototype.toString.call(number) === '[object Number]';
   if (!isANumber) {
-    return null;
+    return number;
   }
   var formattedNumber = number;
   formattedNumber = formattedNumber.toString();
diff -r fee596d84bb3 -r d41c49f86b66 
modules/org.openbravo.service.json/src/org/openbravo/service/json/AdvancedQueryBuilder.java
--- 
a/modules/org.openbravo.service.json/src/org/openbravo/service/json/AdvancedQueryBuilder.java
       Fri Jun 22 11:12:39 2012 +0200
+++ 
b/modules/org.openbravo.service.json/src/org/openbravo/service/json/AdvancedQueryBuilder.java
       Fri Jun 22 23:24:09 2012 +0200
@@ -1253,7 +1253,7 @@
     private Property property;
     private String joinAlias = getNewUniqueJoinAlias();
     private String ownerAlias;
-    private boolean fetchJoin = true;
+    private boolean fetchJoin = 
AdvancedQueryBuilder.this.isJoinAssociatedEntities();
 
     public boolean appliesTo(String checkAlias, Property checkProperty) {
       return checkAlias.equals(ownerAlias) && checkProperty == property;
@@ -1347,6 +1347,14 @@
     return additionalProperties;
   }
 
+  public void clearCachedValues() {
+    joinClause = null;
+    whereClause = null;
+    orderByClause = null;
+    joinDefinitions.clear();
+    typedParameters.clear();
+  }
+
   public void setAdditionalProperties(List<String> additionalProperties) {
     this.additionalProperties = additionalProperties;
   }
diff -r fee596d84bb3 -r d41c49f86b66 
modules/org.openbravo.service.json/src/org/openbravo/service/json/DataEntityQueryService.java
--- 
a/modules/org.openbravo.service.json/src/org/openbravo/service/json/DataEntityQueryService.java
     Fri Jun 22 11:12:39 2012 +0200
+++ 
b/modules/org.openbravo.service.json/src/org/openbravo/service/json/DataEntityQueryService.java
     Fri Jun 22 23:24:09 2012 +0200
@@ -107,6 +107,8 @@
 
     log.debug("Querying for " + entityName + " " + whereOrderBy);
 
+    // System.err.println("Querying for " + entityName + " " + whereOrderBy);
+
     final OBQuery<BaseOBObject> obq = 
OBDal.getInstance().createQuery(entityName, whereOrderBy);
     if (getFirstResult() != null) {
       obq.setFirstResult(getFirstResult());
@@ -233,4 +235,9 @@
   public void setAdditionalProperties(List<String> additionalProperties) {
     queryBuilder.setAdditionalProperties(additionalProperties);
   }
+
+  public void clearCachedValues() {
+    queryBuilder.clearCachedValues();
+  }
+
 }
diff -r fee596d84bb3 -r d41c49f86b66 
modules/org.openbravo.service.json/src/org/openbravo/service/json/DefaultJsonDataService.java
--- 
a/modules/org.openbravo.service.json/src/org/openbravo/service/json/DefaultJsonDataService.java
     Fri Jun 22 11:12:39 2012 +0200
+++ 
b/modules/org.openbravo.service.json/src/org/openbravo/service/json/DefaultJsonDataService.java
     Fri Jun 22 23:24:09 2012 +0200
@@ -279,7 +279,8 @@
 
     // compute a new startrow if the targetrecordid was passed in
     int targetRowNumber = -1;
-    if (!directNavigation && 
parameters.containsKey(JsonConstants.TARGETRECORDID_PARAMETER)) {
+    if (!forCountOperation && !directNavigation
+        && parameters.containsKey(JsonConstants.TARGETRECORDID_PARAMETER)) {
       final String targetRecordId = 
parameters.get(JsonConstants.TARGETRECORDID_PARAMETER);
       targetRowNumber = queryService.getRowNumber(targetRecordId);
       if (targetRowNumber != -1) {
@@ -293,6 +294,7 @@
         }
         queryService.setFirstResult(startRow);
       }
+      queryService.clearCachedValues();
     }
     if (!forCountOperation) {
       
queryService.setAdditionalProperties(JsonUtils.getAdditionalProperties(parameters));
diff -r fee596d84bb3 -r d41c49f86b66 
modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorDataSourceFilter.java
--- 
a/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorDataSourceFilter.java
       Fri Jun 22 11:12:39 2012 +0200
+++ 
b/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorDataSourceFilter.java
       Fri Jun 22 23:24:09 2012 +0200
@@ -38,6 +38,7 @@
 import org.openbravo.client.kernel.reference.StringUIDefinition;
 import org.openbravo.client.kernel.reference.UIDefinition;
 import org.openbravo.client.kernel.reference.UIDefinitionController;
+import org.openbravo.dal.core.DalUtil;
 import org.openbravo.dal.core.OBContext;
 import org.openbravo.dal.service.OBCriteria;
 import org.openbravo.dal.service.OBDal;
@@ -155,7 +156,12 @@
           } else {
             // A property in the entity is searched for this fieldName
             // If the property is numeric or date, then it is filtered
-            String[] fieldNameSplit = fieldName.split("\\.");
+            String[] fieldNameSplit;
+            if (fieldName.contains(DalUtil.FIELDSEPARATOR)) {
+              fieldNameSplit = fieldName.split("\\" + DalUtil.FIELDSEPARATOR);
+            } else {
+              fieldNameSplit = fieldName.split("\\" + DalUtil.DOT);
+            }
             Property fProp = null;
             if (fieldNameSplit.length == 1) {
               fProp = entity.getProperty(fieldName);
@@ -286,7 +292,7 @@
         result = ParameterUtils.getJSExpressionResult(parameters, 
request.getSession(),
             sf.getDefaultExpression());
 
-        if (result == null || result.toString().equals("")) {
+        if (result == null || result.toString().equals("") || 
result.toString().equals("''")) {
           continue;
         }
 
diff -r fee596d84bb3 -r d41c49f86b66 
modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorDefaultFilterActionHandler.java
--- 
a/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorDefaultFilterActionHandler.java
     Fri Jun 22 11:12:39 2012 +0200
+++ 
b/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorDefaultFilterActionHandler.java
     Fri Jun 22 23:24:09 2012 +0200
@@ -84,7 +84,7 @@
           if (sel.isCustomQuery()) {
             result.put(f.getDisplayColumnAlias().replace(DalUtil.DOT, 
DalUtil.FIELDSEPARATOR),
                 exprResult);
-          } else {
+          } else if (exprResult != null && !exprResult.equals("") && 
!exprResult.equals("''")) {
             String fieldName = f.getProperty();
             result.put(fieldName.replace(DalUtil.DOT, DalUtil.FIELDSEPARATOR), 
exprResult);
           }

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to