+1

I completely agree

Jacopo

On Aug 12, 2014, at 4:52 PM, Adrian Crum <adrian.c...@sandglass-software.com> 
wrote:

> 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.

Reply via email to