You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2021/12/05 08:55:29 UTC
[ofbiz-plugins] 01/02: Improved: Fix some bugs Spotbugs reports (OFBIZ-12386)
This is an automated email from the ASF dual-hosted git repository.
jleroux pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ofbiz-plugins.git
commit 923b42c2daa6fe9e763e9898e0ca060063a47604
Author: Jacques Le Roux <ja...@les7arts.com>
AuthorDate: Sun Dec 5 07:55:33 2021 +0100
Improved: Fix some bugs Spotbugs reports (OFBIZ-12386)
Fixes possible null dereferencings in
EbayHelper::createPayment,
AbstractPricatParser::writeCommentsToFile
SolrProductSearch::getSideDeepCategories
WebPosEvents::getProductType
---
.../java/org/apache/ofbiz/ebay/EbayHelper.java | 4 +-
.../apache/ofbiz/pricat/AbstractPricatParser.java | 38 +++++-----
.../org/apache/ofbiz/solr/SolrProductSearch.java | 83 ++++++++++++----------
.../java/org/apache/ofbiz/webpos/WebPosEvents.java | 9 +--
4 files changed, 72 insertions(+), 62 deletions(-)
diff --git a/ebay/src/main/java/org/apache/ofbiz/ebay/EbayHelper.java b/ebay/src/main/java/org/apache/ofbiz/ebay/EbayHelper.java
index 5742f2c..a1ce2c3 100644
--- a/ebay/src/main/java/org/apache/ofbiz/ebay/EbayHelper.java
+++ b/ebay/src/main/java/org/apache/ofbiz/ebay/EbayHelper.java
@@ -264,7 +264,9 @@ public class EbayHelper {
}
if ((results == null) || (results.get(ModelService.RESPONSE_MESSAGE).equals(ModelService.RESPOND_ERROR))) {
- Debug.logError((String) results.get(ModelService.ERROR_MESSAGE), MODULE);
+ if ((results != null)) {
+ Debug.logError((String) results.get(ModelService.ERROR_MESSAGE), MODULE);
+ }
return false;
}
return true;
diff --git a/pricat/src/main/java/org/apache/ofbiz/pricat/AbstractPricatParser.java b/pricat/src/main/java/org/apache/ofbiz/pricat/AbstractPricatParser.java
index 7c0052e..4a9cb64 100644
--- a/pricat/src/main/java/org/apache/ofbiz/pricat/AbstractPricatParser.java
+++ b/pricat/src/main/java/org/apache/ofbiz/pricat/AbstractPricatParser.java
@@ -395,25 +395,27 @@ public abstract class AbstractPricatParser implements InterfacePricatParser {
}
}
// set comments in the new error sheet
- XSSFDrawing errorPatriarch = errorSheet.getDrawingPatriarch();
- int newRowNum = getHeaderRowNo() + 1;
- Map<Integer, Integer> rowMapping = new HashMap<>();
- for (CellReference cell : errorMessages.keySet()) {
- if (cell != null && errorMessages.get(cell) != null) {
- XSSFRow row = sheet.getRow(cell.getRow());
- Integer rowNum = row.getRowNum();
- int errorRow = newRowNum;
- if (rowMapping.containsKey(rowNum)) {
- errorRow = rowMapping.get(rowNum);
- } else {
- XSSFRow newRow = errorSheet.getRow(errorRow);
- if (newRow == null) {
- newRow = errorSheet.createRow(errorRow);
+ if (errorSheet != null) {
+ XSSFDrawing errorPatriarch = errorSheet.getDrawingPatriarch();
+ int newRowNum = getHeaderRowNo() + 1;
+ Map<Integer, Integer> rowMapping = new HashMap<>();
+ for (CellReference cell : errorMessages.keySet()) {
+ if (cell != null && errorMessages.get(cell) != null) {
+ XSSFRow row = sheet.getRow(cell.getRow());
+ Integer rowNum = row.getRowNum();
+ int errorRow = newRowNum;
+ if (rowMapping.containsKey(rowNum)) {
+ errorRow = rowMapping.get(rowNum);
+ } else {
+ XSSFRow newRow = errorSheet.getRow(errorRow);
+ if (newRow == null) {
+ newRow = errorSheet.createRow(errorRow);
+ }
+ rowMapping.put(rowNum, errorRow);
+ newRow.setHeight(row.getHeight());
+ copyRow(row, newRow, factory, errorPatriarch);
+ newRowNum++;
}
- rowMapping.put(rowNum, errorRow);
- newRow.setHeight(row.getHeight());
- copyRow(row, newRow, factory, errorPatriarch);
- newRowNum++;
}
}
}
diff --git a/solr/src/main/java/org/apache/ofbiz/solr/SolrProductSearch.java b/solr/src/main/java/org/apache/ofbiz/solr/SolrProductSearch.java
index 314f9f0..e1d1a45 100644
--- a/solr/src/main/java/org/apache/ofbiz/solr/SolrProductSearch.java
+++ b/solr/src/main/java/org/apache/ofbiz/solr/SolrProductSearch.java
@@ -584,52 +584,57 @@ public abstract class SolrProductSearch {
? CategoryUtil.getCategoryNameWithTrail((String) context.get("productCategoryId"), dctx) : null;
result = ServiceUtil.returnSuccess();
Map<String, List<Map<String, Object>>> catLevel = new HashMap<>();
- Debug.logInfo("productCategoryId: " + productCategoryId, MODULE);
-
- //Add toplevel categories
- String[] trailElements = productCategoryId.split("/");
+ String[] trailElements = null;
+ if (productCategoryId != null) {
+ Debug.logInfo("productCategoryId: " + productCategoryId, MODULE);
+ // Add toplevel categories
+ trailElements = productCategoryId.split("/");
+ }
//iterate over actual results
- for (String elements : trailElements) {
- //catIds must be greater than 3 chars
- if (elements.length() > 3) {
- Debug.logInfo("elements: " + elements, MODULE);
- String categoryPath = CategoryUtil.getCategoryNameWithTrail(elements, dctx);
- String[] categoryPathArray = categoryPath.split("/");
- int level = Integer.parseInt(categoryPathArray[0]);
- String facetQuery = CategoryUtil.getFacetFilterForCategory(categoryPath, dctx);
- Map<String, Object> query = SolrUtil.categoriesAvailable(catalogId, categoryPath, null, facetQuery, false, 0, 0, solrIndexName);
- QueryResponse cat = (QueryResponse) query.get("rows");
- List<Map<String, Object>> categories = new ArrayList<>();
-
- List<FacetField> catList = cat.getFacetFields();
- for (Iterator<FacetField> catIterator = catList.iterator(); catIterator.hasNext();) {
- FacetField field = catIterator.next();
- List<Count> catL = field.getValues();
- if (catL != null) {
- for (Iterator<Count> catIter = catL.iterator(); catIter.hasNext();) {
- FacetField.Count f = catIter.next();
- if (f.getCount() > 0) {
- Map<String, Object> catMap = new HashMap<>();
- LinkedList<String> iName = new LinkedList<>();
- iName.addAll(Arrays.asList(f.getName().split("/")));
- catMap.put("catId", iName.getLast());
- iName.removeFirst();
- String path = f.getName();
- catMap.put("path", path);
- if (level > 0) {
- iName.removeLast();
- catMap.put("parentCategory", StringUtils.join(iName, "/"));
- } else {
- catMap.put("parentCategory", null);
+ if (trailElements != null) {
+ for (String elements : trailElements) {
+ // catIds must be greater than 3 chars
+ if (elements.length() > 3) {
+ Debug.logInfo("elements: " + elements, MODULE);
+ String categoryPath = CategoryUtil.getCategoryNameWithTrail(elements, dctx);
+ String[] categoryPathArray = categoryPath.split("/");
+ int level = Integer.parseInt(categoryPathArray[0]);
+ String facetQuery = CategoryUtil.getFacetFilterForCategory(categoryPath, dctx);
+ Map<String, Object> query = SolrUtil.categoriesAvailable(catalogId, categoryPath, null, facetQuery, false, 0, 0,
+ solrIndexName);
+ QueryResponse cat = (QueryResponse) query.get("rows");
+ List<Map<String, Object>> categories = new ArrayList<>();
+
+ List<FacetField> catList = cat.getFacetFields();
+ for (Iterator<FacetField> catIterator = catList.iterator(); catIterator.hasNext();) {
+ FacetField field = catIterator.next();
+ List<Count> catL = field.getValues();
+ if (catL != null) {
+ for (Iterator<Count> catIter = catL.iterator(); catIter.hasNext();) {
+ FacetField.Count f = catIter.next();
+ if (f.getCount() > 0) {
+ Map<String, Object> catMap = new HashMap<>();
+ LinkedList<String> iName = new LinkedList<>();
+ iName.addAll(Arrays.asList(f.getName().split("/")));
+ catMap.put("catId", iName.getLast());
+ iName.removeFirst();
+ String path = f.getName();
+ catMap.put("path", path);
+ if (level > 0) {
+ iName.removeLast();
+ catMap.put("parentCategory", StringUtils.join(iName, "/"));
+ } else {
+ catMap.put("parentCategory", null);
+ }
+ catMap.put("count", Long.toString(f.getCount()));
+ categories.add(catMap);
}
- catMap.put("count", Long.toString(f.getCount()));
- categories.add(catMap);
}
}
}
+ catLevel.put("menu-" + level, categories);
}
- catLevel.put("menu-" + level, categories);
}
}
result.put("categories", catLevel);
diff --git a/webpos/src/main/java/org/apache/ofbiz/webpos/WebPosEvents.java b/webpos/src/main/java/org/apache/ofbiz/webpos/WebPosEvents.java
index f781056..67be43c 100755
--- a/webpos/src/main/java/org/apache/ofbiz/webpos/WebPosEvents.java
+++ b/webpos/src/main/java/org/apache/ofbiz/webpos/WebPosEvents.java
@@ -46,8 +46,8 @@ import org.apache.ofbiz.product.store.ProductStoreWorker;
import org.apache.ofbiz.securityext.login.LoginEvents;
import org.apache.ofbiz.service.GenericServiceException;
import org.apache.ofbiz.service.LocalDispatcher;
-import org.apache.ofbiz.webpos.session.WebPosSession;
import org.apache.ofbiz.service.ServiceUtil;
+import org.apache.ofbiz.webpos.session.WebPosSession;
public class WebPosEvents {
@@ -201,12 +201,13 @@ public class WebPosEvents {
List<String> featureOrder = new LinkedList<>(featureSet);
for (int i = 0; i < featureOrder.size(); i++) {
String featureKey = featureOrder.get(i);
- GenericValue featureValue = EntityQuery.use(delegator).from("ProductFeatureType").where(
- "productFeatureTypeId", featureOrder.get(i)).cache().queryOne();
+ GenericValue featureValue = EntityQuery.use(delegator)
+ .from("ProductFeatureType")
+ .where("productFeatureTypeId", featureOrder.get(i))
+ .cache().queryOne();
if (featureValue != null
&& UtilValidate.isNotEmpty(featureValue.get("description"))) {
featureTypes.put(featureKey, featureValue.get("description"));
- } else {
featureTypes.put(featureKey, featureValue.get("productFeatureTypeId"));
}
}