Author: mbrohl
Date: Sun Dec 10 10:29:32 2017 New Revision: 1817686 URL: http://svn.apache.org/viewvc?rev=1817686&view=rev Log: Improved: Fixing defects reported by FindBugs, package org.apache.ofbiz.content.survey. (OFBIZ-9816) I've modified the patch and added some logging in PdfSurveyServices.java instead of just printing the stacktrace. This class needs more work to chnage the logging (see OFBIZ-10046) Thanks Julian Leichert for reporting and providing the patch. Modified: ofbiz/ofbiz-framework/trunk/applications/content/src/main/java/org/apache/ofbiz/content/survey/PdfSurveyServices.java ofbiz/ofbiz-framework/trunk/applications/content/src/main/java/org/apache/ofbiz/content/survey/SurveyWrapper.java Modified: ofbiz/ofbiz-framework/trunk/applications/content/src/main/java/org/apache/ofbiz/content/survey/PdfSurveyServices.java URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/content/src/main/java/org/apache/ofbiz/content/survey/PdfSurveyServices.java?rev=1817686&r1=1817685&r2=1817686&view=diff ============================================================================== --- ofbiz/ofbiz-framework/trunk/applications/content/src/main/java/org/apache/ofbiz/content/survey/PdfSurveyServices.java (original) +++ ofbiz/ofbiz-framework/trunk/applications/content/src/main/java/org/apache/ofbiz/content/survey/PdfSurveyServices.java Sun Dec 10 10:29:32 2017 @@ -205,13 +205,7 @@ public class PdfSurveyServices { survey.set("acroFormContentId", contentId); survey.store(); } - } catch (GenericEntityException e) { - Debug.logError(e, "Error generating PDF: " + e.toString(), module); - return ServiceUtil.returnError(UtilProperties.getMessage(resource, "ContentPDFGeneratingError", UtilMisc.toMap("errorString", e.toString()), locale)); - } catch (GeneralException e) { - Debug.logError(e, "Error generating PDF: " + e.getMessage(), module); - return ServiceUtil.returnError(UtilProperties.getMessage(resource, "ContentPDFGeneratingError", UtilMisc.toMap("errorString", e.getMessage()), locale)); - } catch (Exception e) { + } catch (GeneralException | DocumentException | IOException e) { Debug.logError(e, "Error generating PDF: " + e.toString(), module); return ServiceUtil.returnError(UtilProperties.getMessage(resource, "ContentPDFGeneratingError", UtilMisc.toMap("errorString", e.toString()), locale)); } @@ -274,13 +268,7 @@ public class PdfSurveyServices { delegator.create(surveyResponseAnswer); } s.close(); - } catch (GenericEntityException e) { - Debug.logError(e, "Error generating PDF: " + e.toString(), module); - return ServiceUtil.returnError(UtilProperties.getMessage(resource, "ContentPDFGeneratingError", UtilMisc.toMap("errorString", e.toString()), locale)); - } catch (GeneralException e) { - Debug.logError(e, "Error generating PDF: " + e.toString(), module); - return ServiceUtil.returnError(UtilProperties.getMessage(resource, "ContentPDFGeneratingError", UtilMisc.toMap("errorString", e.getMessage()), locale)); - } catch (Exception e) { + } catch (GeneralException | DocumentException | IOException e) { Debug.logError(e, "Error generating PDF: " + e.toString(), module); return ServiceUtil.returnError(UtilProperties.getMessage(resource, "ContentPDFGeneratingError", UtilMisc.toMap("errorString", e.toString()), locale)); } @@ -484,6 +472,7 @@ public class PdfSurveyServices { public static Map<String, Object> setAcroFieldsFromSurveyResponse(DispatchContext dctx, Map<String, ? extends Object> context) { Delegator delegator = dctx.getDelegator(); LocalDispatcher dispatcher = dctx.getDispatcher(); + Locale locale = (Locale) context.get("locale"); Map<String, Object> results = ServiceUtil.returnSuccess(); Map<String, Object> acroFieldMap = new HashMap<String, Object>(); String surveyResponseId = (String)context.get("surveyResponseId"); @@ -558,15 +547,9 @@ public class PdfSurveyServices { fos.write(outByteBuffer.array()); fos.close(); } - } catch (FileNotFoundException e) { - System.err.println(e.getMessage()); - results = ServiceUtil.returnError(e.getMessage()); - } catch (IOException e) { - System.err.println(e.getMessage()); - results = ServiceUtil.returnError(e.getMessage()); - } catch (GenericServiceException e) { - System.err.println(e.getMessage()); - results = ServiceUtil.returnError(e.getMessage()); + } catch (IOException | GenericServiceException e) { + Debug.logError(e, "Error generating PDF: " + e.toString(), module); + return ServiceUtil.returnError(UtilProperties.getMessage(resource, "ContentPDFGeneratingError", UtilMisc.toMap("errorString", e.toString()), locale)); } return results; Modified: ofbiz/ofbiz-framework/trunk/applications/content/src/main/java/org/apache/ofbiz/content/survey/SurveyWrapper.java URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/content/src/main/java/org/apache/ofbiz/content/survey/SurveyWrapper.java?rev=1817686&r1=1817685&r2=1817686&view=diff ============================================================================== --- ofbiz/ofbiz-framework/trunk/applications/content/src/main/java/org/apache/ofbiz/content/survey/SurveyWrapper.java (original) +++ ofbiz/ofbiz-framework/trunk/applications/content/src/main/java/org/apache/ofbiz/content/survey/SurveyWrapper.java Sun Dec 10 10:29:32 2017 @@ -31,10 +31,12 @@ import java.util.LinkedList; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Map.Entry; import org.apache.ofbiz.base.location.FlexibleLocation; import org.apache.ofbiz.base.util.Debug; import org.apache.ofbiz.base.util.GeneralException; +import org.apache.ofbiz.base.util.UtilIO; import org.apache.ofbiz.base.util.UtilMisc; import org.apache.ofbiz.base.util.UtilValidate; import org.apache.ofbiz.base.util.template.FreeMarkerWorker; @@ -197,7 +199,7 @@ public class SurveyWrapper { templateContext.put("surveyResults", results); templateContext.put("surveyQuestionAndAppls", surveyQuestionAndAppls); templateContext.put("sqaaWithColIdListByMultiRespId", sqaaWithColIdListByMultiRespId); - templateContext.put("alreadyShownSqaaPkWithColId", new HashSet()); + templateContext.put("alreadyShownSqaaPkWithColId", new HashSet<>()); templateContext.put("surveyAnswers", currentAnswers); templateContext.put("surveyResponseId", responseId); templateContext.put("sequenceSort", UtilMisc.toList("sequenceNum")); @@ -222,9 +224,10 @@ public class SurveyWrapper { Configuration config = FreeMarkerWorker.getDefaultOfbizConfig(); Template template = null; - try { + try ( InputStream templateStream = templateUrl.openStream(); - InputStreamReader templateReader = new InputStreamReader(templateStream); + InputStreamReader templateReader = new InputStreamReader(templateStream,UtilIO.getUtf8()); + ){ template = new Template(templateUrl.toExternalForm(), templateReader, config); } catch (IOException e) { Debug.logError(e, "Unable to get template from URL :" + templateUrl.toExternalForm(), module); @@ -375,7 +378,7 @@ public class SurveyWrapper { // get the pass-thru (posted form data) if (UtilValidate.isNotEmpty(passThru)) { for (String key : passThru.keySet()) { - if (key.toUpperCase().startsWith("ANSWERS_")) { + if (key.toUpperCase(Locale.getDefault()).startsWith("ANSWERS_")) { int splitIndex = key.indexOf('_'); String questionId = key.substring(splitIndex+1); Map<String, Object> thisAnswer = new HashMap<String, Object>(); @@ -466,7 +469,6 @@ public class SurveyWrapper { // note this will need to be updated as new types are added if ("OPTION".equals(questionType)) { Map<String, Object> thisResult = getOptionResult(question); - if (thisResult != null) { Long questionTotal = (Long) thisResult.remove("_total"); if (questionTotal == null) { questionTotal = Long.valueOf(0); @@ -475,9 +477,10 @@ public class SurveyWrapper { resultMap.put("_total", questionTotal); // create the map of option info ("_total", "_percent") - for (String optId : thisResult.keySet()) { + for (Entry<String, Object> entry : thisResult.entrySet()) { Map<String, Object> optMap = new HashMap<String, Object>(); - Long optTotal = (Long) thisResult.get(optId); + Long optTotal = (Long) entry.getValue(); + String optId = entry.getKey(); if (optTotal == null) { optTotal = Long.valueOf(0); } @@ -487,7 +490,6 @@ public class SurveyWrapper { resultMap.put(optId, optMap); } resultMap.put("_a_type", "option"); - } } else if ("BOOLEAN".equals(questionType)) { long[] thisResult = getBooleanResult(question); long yesPercent = thisResult[1] > 0 ? (long)(((double)thisResult[1] / (double)thisResult[0]) * 100) : 0; @@ -634,7 +636,7 @@ public class SurveyWrapper { switch (type) { case 1: if (result[0] > 0) - result[2] = ((long) result[1]) / ((long) result[0]); + result[2] = result[1] / ((long) result[0]); break; case 2: if (result[0] > 0) @@ -642,7 +644,7 @@ public class SurveyWrapper { break; case 3: if (result[0] > 0) - result[2] = result[1] / result[0]; + result[2] = result[1] / (long) result[0]; break; } |
Free forum by Nabble | Edit this page |