Inline... Adrian Crum Sandglass Software www.sandglass-software.com
On 8/12/2014 2:38 PM, jaco...@apache.org wrote:
Author: jacopoc Date: Tue Aug 12 13:38:55 2014 New Revision: 1617473 URL: http://svn.apache.org/r1617473 Log: Some optimization for service event handler to prevent unnecessary operations at every service invocation. Modified: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/ServiceEventHandler.java Modified: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/ServiceEventHandler.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/ServiceEventHandler.java?rev=1617473&r1=1617472&r2=1617473&view=diff ============================================================================== --- ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/ServiceEventHandler.java (original) +++ ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/ServiceEventHandler.java Tue Aug 12 13:38:55 2014 @@ -124,35 +124,38 @@ public class ServiceEventHandler impleme throw new EventHandlerException("Problems getting the service model"); } - if (Debug.verboseOn()) Debug.logVerbose("[Processing]: SERVICE Event", module); - if (Debug.verboseOn()) Debug.logVerbose("[Using delegator]: " + dispatcher.getDelegator().getDelegatorName(), module); + if (Debug.verboseOn()) { + Debug.logVerbose("[Processing]: SERVICE Event", module); + Debug.logVerbose("[Using delegator]: " + dispatcher.getDelegator().getDelegatorName(), module); + } - // get the http upload configuration - String maxSizeStr = EntityUtilProperties.getPropertyValue("general.properties", "http.upload.max.size", "-1", dctx.getDelegator()); - long maxUploadSize = -1; - try { - maxUploadSize = Long.parseLong(maxSizeStr); - } catch (NumberFormatException e) { - Debug.logError(e, "Unable to obtain the max upload size from general.properties; using default -1", module); - maxUploadSize = -1; - } - // get the http size threshold configuration - files bigger than this will be - // temporarly stored on disk during upload - String sizeThresholdStr = EntityUtilProperties.getPropertyValue("general.properties", "http.upload.max.sizethreshold", "10240", dctx.getDelegator()); - int sizeThreshold = 10240; // 10K - try { - sizeThreshold = Integer.parseInt(sizeThresholdStr); - } catch (NumberFormatException e) { - Debug.logError(e, "Unable to obtain the threshold size from general.properties; using default 10K", module); - sizeThreshold = -1; - } - // directory used to temporarily store files that are larger than the configured size threshold - String tmpUploadRepository = EntityUtilProperties.getPropertyValue("general.properties", "http.upload.tmprepository", "runtime/tmp", dctx.getDelegator()); - String encoding = request.getCharacterEncoding(); - // check for multipart content types which may have uploaded items boolean isMultiPart = ServletFileUpload.isMultipartContent(request); Map<String, Object> multiPartMap = FastMap.newInstance(); if (isMultiPart) { + // get the http upload configuration + String maxSizeStr = EntityUtilProperties.getPropertyValue("general.properties", "http.upload.max.size", "-1", dctx.getDelegator()); + long maxUploadSize = -1; + try { + maxUploadSize = Long.parseLong(maxSizeStr); + } catch (NumberFormatException e) { + Debug.logError(e, "Unable to obtain the max upload size from general.properties; using default -1", module); + maxUploadSize = -1; + } + // get the http size threshold configuration - files bigger than this will be + // temporarly stored on disk during upload + String sizeThresholdStr = EntityUtilProperties.getPropertyValue("general.properties", "http.upload.max.sizethreshold", "10240", dctx.getDelegator()); + int sizeThreshold = 10240; // 10K + try { + sizeThreshold = Integer.parseInt(sizeThresholdStr); + } catch (NumberFormatException e) { + Debug.logError(e, "Unable to obtain the threshold size from general.properties; using default 10K", module); + sizeThreshold = -1; + }
I understand this was a simple change to help optimization, but this code points out something I really dislike: Hiding configuration errors. From my perspective, if a value in a properties file is invalid, the code should blow up. It should throw an exception and refuse to operate until someone fixes the configuration.
Hiding configuration errors gives you a system that appears to be running normally - until an end user reports a problem. Then you are left with parsing gigabytes of log files trying to figure out what's wrong.