Hi Deepak,
Actually the rule is quite simple. If, for a reason, you decide to catch a
java.lang.Exception, you need to catch before the java.lang.RuntimeException.
This is because java.lang.RuntimeException is a java.lang.Exception so you
would hide possible runtime issues by only catching Exception
https://www.tutorialspoint.com/java/images/exceptions1.jpg
HTH
Jacques
Le 03/11/2017 à 11:17, Deepak Dixit a écrit :
Thanks Jacques,
I was engage in other work so did not get a chance to test your
suggestion... :)
Thanks & Regards
--
Deepak Dixit
www.hotwaxsystems.com
www.hotwax.co
On Fri, Nov 3, 2017 at 3:19 PM, Jacques Le Roux <
jacques.le.r...@les7arts.com> wrote:
Done at r1814155
Jacques
Le 01/11/2017 à 14:08, Jacques Le Roux a écrit :
Hi Deepak,
It's minor, but instead of hiding a possible RuntimeException by catching
Exception here I'd rather follow this FindBugs advice
------------------------------
This method uses a try-catch block that catches Exception objects, but
Exception is not thrown within the try block, and RuntimeException is not
explicitly caught. It is a common bug pattern to say try
{ ... } catch (Exception e) { something } as a shorthand for catching a
number of types of exception each of whose catch blocks is identical, but
this construct also accidentally catches RuntimeException as well, masking
potential bugs.
A better approach is to either explicitly catch the specific exceptions
that are thrown, or to explicitly catch RuntimeException exception, rethrow
it, and then catch all non-Runtime Exceptions, as shown below:
try { ... } catch (RuntimeException e) { throw e; } catch (Exception e) {
... deal with all ...}
------------------------------
I suggest to use this late solution, as it has for example been done for
GroovyUtil.java in r1812059
http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/
framework/base/src/main/java/org/apache/ofbiz/base/util/
GroovyUtil.java?r1=1812059&r2=1812058&pathrev=1812059
Thanks
Jacques
Le 01/11/2017 à 11:43, dee...@apache.org a écrit :
Author: deepak
Date: Wed Nov 1 10:43:14 2017
New Revision: 1813964
URL: http://svn.apache.org/viewvc?rev=1813964&view=rev
Log:
Fixed: doDecrypt method may return ClassNotFoundException,
BadPaddingException,so instead of handling GeneralException used Exception
class to handle all exception
Modified:
ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/util/EntityCrypto.java
Modified:
ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/util/EntityCrypto.java
URL:
http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/util/EntityCrypto.java?rev=1813964&r1=1813963&r2=1813964&view=diff
==============================================================================
---
ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/util/EntityCrypto.java
(original)
+++
ofbiz/ofbiz-framework/trunk/framework/entity/src/main/java/org/apache/ofbiz/entity/util/EntityCrypto.java
Wed Nov 1 10:43:14 2017
@@ -124,7 +124,7 @@ public final class EntityCrypto {
public Object decrypt(String keyName, EncryptMethod encryptMethod, String
encryptedString) throws EntityCryptoException {
try {
return doDecrypt(keyName, encryptMethod, encryptedString,
handlers[0]);
- } catch (GeneralException e) {
+ } catch (Exception e) {
Debug.logInfo("Decrypt with DES key from standard key name hash
failed, trying old/funny variety of key name hash", module);
for (int i = 1; i < handlers.length; i++) {
try {