ofbiz-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kyra Pritzel-Hentley (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (OFBIZ-9453) [FB] Package org.apache.ofbiz.accounting.thirdparty.authorizedotnet
Date Fri, 07 Jul 2017 12:44:00 GMT

    [ https://issues.apache.org/jira/browse/OFBIZ-9453?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16078019#comment-16078019
] 

Kyra Pritzel-Hentley commented on OFBIZ-9453:
---------------------------------------------

While reviewing the lines of code where the DM_BOOLEAN_CTOR bug was found, I had to wonder
why a Boolean variable has to be converted to a primitive boolean just to be given as a parameter
to the Boolean constructor (see first two lines in try-block, here the variable is captureResult).
It seems like the constructor is used for the case that the variable is null. But is it responsible
to induce an exception instead of checking the variable with an if-statement? It would be
great to have some input on the idea behind this logic.

{code:java}
private static void processCaptureTransResult(Map<String, Object> request, Map<String,
Object> reply, Map<String, Object> results) {
         AuthorizeResponse ar = (AuthorizeResponse) reply.get("authorizeResponse");
         try {
             Boolean captureResult = (Boolean) reply.get("authResult");
             results.put("captureResult", new Boolean(captureResult.booleanValue()));
                   .............
             if (captureResult.booleanValue()) { //passed
                 results.put("captureCode", ar.getAuthorizationCode());
                 if (BigDecimal.ZERO.compareTo(ar.getAmount()) == 0) {
                     results.put("captureAmount", getXAmount(request));
                 } else {
                     results.put("captureAmount", ar.getAmount());
                 }
             } else {
                 results.put("captureAmount", BigDecimal.ZERO);
             }
         } catch (Exception ex) {
             Debug.logError(ex, module);
             results.put("captureAmount", BigDecimal.ZERO);
         }
            ..............
     }
{code}

> [FB] Package org.apache.ofbiz.accounting.thirdparty.authorizedotnet
> -------------------------------------------------------------------
>
>                 Key: OFBIZ-9453
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-9453
>             Project: OFBiz
>          Issue Type: Sub-task
>          Components: accounting
>    Affects Versions: Trunk
>            Reporter: Kyra Pritzel-Hentley
>            Priority: Minor
>
> AIMPaymentServices.java:648: 679: 705: 732: 758, DM_BOOLEAN_CTOR
> * Dm: org.apache.ofbiz.accounting.thirdparty.authorizedotnet.AIMPaymentServices.processAuthTransResult(Map,
Map, Map) invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
> Creating new instances of java.lang.Boolean wastes memory, since Boolean objects are
immutable and there are only two useful values of this type.  Use the Boolean.valueOf() method
(or Java 1.5 autoboxing) to create Boolean objects instead.
> AuthorizeResponse.java:131, DMI_INVOKING_TOSTRING_ON_ARRAY
> * USELESS_STRING: Invocation of toString on AuthorizeResponse.response in org.apache.ofbiz.accounting.thirdparty.authorizedotnet.AuthorizeResponse.toString()
> The code invokes toString on an array, which will generate a fairly useless result such
as [C@16f0472. Consider using Arrays.toString to convert the array into a readable String
that gives the contents of the array. See Programming Puzzlers, chapter 3, puzzle 12.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message