[ 
https://issues.apache.org/jira/browse/OFBIZ-10060?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Brohl closed OFBIZ-10060.
---------------------------------
       Resolution: Implemented
    Fix Version/s: Upcoming Release

Thanks Julian,

your modified patch is in trunk r1818579. 

I ommitted the volatile change because there was no explanation given and my 
local FindBugs did not warn me about it.

> [FB] Package org.apache.ofbiz.accounting.thirdparty.valuelink
> -------------------------------------------------------------
>
>                 Key: OFBIZ-10060
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-10060
>             Project: OFBiz
>          Issue Type: Sub-task
>          Components: ALL APPLICATIONS, ALL COMPONENTS
>    Affects Versions: Trunk
>            Reporter: Julian Leichert
>            Assignee: Michael Brohl
>            Priority: Minor
>             Fix For: Upcoming Release
>
>         Attachments: OFBIZ-number_FB_accounting_thirdparty_valuelink_3.patch
>
>
> ValueLinkApi.java:159, DM_DEFAULT_ENCODING
> * Dm: Found reliance on default encoding in 
> org.apache.ofbiz.accounting.thirdparty.valuelink.ValueLinkApi.encryptPin(String):
>  String.getBytes()
> Found a call to a method which will perform a byte to String (or String to 
> byte) conversion, and will assume that the default platform encoding is 
> suitable. This will cause the application behaviour to vary between 
> platforms. Use an alternative API and specify a charset name or Charset 
> object explicitly.
> ValueLinkApi.java:212, DM_DEFAULT_ENCODING
> * Dm: Found reliance on default encoding in 
> org.apache.ofbiz.accounting.thirdparty.valuelink.ValueLinkApi.decryptPin(String):
>  new String(byte[])
> Found a call to a method which will perform a byte to String (or String to 
> byte) conversion, and will assume that the default platform encoding is 
> suitable. This will cause the application behaviour to vary between 
> platforms. Use an alternative API and specify a charset name or Charset 
> object explicitly.
> ValueLinkApi.java:531, PZLA_PREFER_ZERO_LENGTH_ARRAYS
> * PZLA: Should 
> org.apache.ofbiz.accounting.thirdparty.valuelink.ValueLinkApi.generateMwk() 
> return a zero length array rather than null?
> It is often a better design to return a length zero array rather than a null 
> reference to indicate that there are no results (i.e., an empty list of 
> results). This way, no explicit check for null is needed by clients of the 
> method.
> On the other hand, using null to indicate "there is no answer to this 
> question" is probably appropriate. For example, File.listFiles() returns an 
> empty list if given a directory containing no files, and returns null if the 
> file is not a directory.
> ValueLinkApi.java:566, PZLA_PREFER_ZERO_LENGTH_ARRAYS
> * PZLA: Should 
> org.apache.ofbiz.accounting.thirdparty.valuelink.ValueLinkApi.generateMwk(byte[])
>  return a zero length array rather than null?
> It is often a better design to return a length zero array rather than a null 
> reference to indicate that there are no results (i.e., an empty list of 
> results). This way, no explicit check for null is needed by clients of the 
> method.
> On the other hand, using null to indicate "there is no answer to this 
> question" is probably appropriate. For example, File.listFiles() returns an 
> empty list if given a directory containing no files, and returns null if the 
> file is not a directory.
> ValueLinkApi.java:647, DC_DOUBLECHECK
> * DC: Possible doublecheck on 
> org.apache.ofbiz.accounting.thirdparty.valuelink.ValueLinkApi.mwkIndex in 
> org.apache.ofbiz.accounting.thirdparty.valuelink.ValueLinkApi.getWorkingKeyIndex()
> This method may contain an instance of double-checked locking.  This idiom is 
> not correct according to the semantics of the Java memory model.  For more 
> information, see the web page 
> http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html.
> ValueLinkApi.java:910, DM_CONVERT_CASE
> * Dm: Use of non-localized String.toUpperCase() or String.toLowerCase() in 
> org.apache.ofbiz.accounting.thirdparty.valuelink.ValueLinkApi.parseResponse(String)
> A String is being converted to upper or lowercase, using the platform's 
> default encoding. This may result in improper conversions when used with 
> international characters. Use the
> String.toUpperCase( Locale l )
> String.toLowerCase( Locale l )
> versions instead.
> ValueLinkApi.java:967, DM_CONVERT_CASE
> * Dm: Use of non-localized String.toUpperCase() or String.toLowerCase() in 
> org.apache.ofbiz.accounting.thirdparty.valuelink.ValueLinkApi.parseHistoryResponse(String)
> A String is being converted to upper or lowercase, using the platform's 
> default encoding. This may result in improper conversions when used with 
> international characters. Use the
> String.toUpperCase( Locale l )
> String.toLowerCase( Locale l )
> versions instead.
> ValueLinkServices.java:171, RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE
> * RCN: Redundant nullcheck of response, which is known to be non-null in 
> org.apache.ofbiz.accounting.thirdparty.valuelink.ValueLinkServices.assignWorkingKey(DispatchContext,
>  Map)
> This method contains a redundant check of a known non-null value against the 
> constant null.
> ValueLinkServices.java:255, RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE
> * RCN: Redundant nullcheck of response, which is known to be non-null in 
> org.apache.ofbiz.accounting.thirdparty.valuelink.ValueLinkServices.activate(DispatchContext,
>  Map)
> This method contains a redundant check of a known non-null value against the 
> constant null.
> ValueLinkServices.java:314, RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE
> * RCN: Redundant nullcheck of response, which is known to be non-null in 
> org.apache.ofbiz.accounting.thirdparty.valuelink.ValueLinkServices.linkPhysicalCard(DispatchContext,
>  Map)
> This method contains a redundant check of a known non-null value against the 
> constant null.
> ValueLinkServices.java:377, RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE
> * RCN: Redundant nullcheck of response, which is known to be non-null in 
> org.apache.ofbiz.accounting.thirdparty.valuelink.ValueLinkServices.disablePin(DispatchContext,
>  Map)
> This method contains a redundant check of a known non-null value against the 
> constant null.
> ValueLinkServices.java:445, RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE
> * RCN: Redundant nullcheck of response, which is known to be non-null in 
> org.apache.ofbiz.accounting.thirdparty.valuelink.ValueLinkServices.redeem(DispatchContext,
>  Map)
> This method contains a redundant check of a known non-null value against the 
> constant null.
> ValueLinkServices.java:515, RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE
> * RCN: Redundant nullcheck of response, which is known to be non-null in 
> org.apache.ofbiz.accounting.thirdparty.valuelink.ValueLinkServices.reload(DispatchContext,
>  Map)
> This method contains a redundant check of a known non-null value against the 
> constant null.
> ValueLinkServices.java:576, RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE
> * RCN: Redundant nullcheck of response, which is known to be non-null in 
> org.apache.ofbiz.accounting.thirdparty.valuelink.ValueLinkServices.balanceInquire(DispatchContext,
>  Map)
> This method contains a redundant check of a known non-null value against the 
> constant null.
> ValueLinkServices.java:633, RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE
> * RCN: Redundant nullcheck of response, which is known to be non-null in 
> org.apache.ofbiz.accounting.thirdparty.valuelink.ValueLinkServices.transactionHistory(DispatchContext,
>  Map)
> This method contains a redundant check of a known non-null value against the 
> constant null.
> ValueLinkServices.java:701, RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE
> * RCN: Redundant nullcheck of response, which is known to be non-null in 
> org.apache.ofbiz.accounting.thirdparty.valuelink.ValueLinkServices.refund(DispatchContext,
>  Map)
> This method contains a redundant check of a known non-null value against the 
> constant null.
> ValueLinkServices.java:1202, RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE
> * RCN: Nullcheck of activateResult at line 1202 of value previously 
> dereferenced in 
> org.apache.ofbiz.accounting.thirdparty.valuelink.ValueLinkServices.giftCardPurchase(DispatchContext,
>  Map)
> A value is checked here to see whether it is null, but this value can't be 
> null because it was previously dereferenced and if it were null a null 
> pointer exception would have occurred at the earlier dereference. 
> Essentially, this code and the previous dereference disagree as to whether 
> this value is allowed to be null. Either the check is redundant or the 
> previous dereference is erroneous.
> ValueLinkServices.java:1451, RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE
> * RCN: Nullcheck of reloadResult at line 1451 of value previously 
> dereferenced in 
> org.apache.ofbiz.accounting.thirdparty.valuelink.ValueLinkServices.giftCardReload(DispatchContext,
>  Map)
> A value is checked here to see whether it is null, but this value can't be 
> null because it was previously dereferenced and if it were null a null 
> pointer exception would have occurred at the earlier dereference. 
> Essentially, this code and the previous dereference disagree as to whether 
> this value is allowed to be null. Either the check is redundant or the 
> previous dereference is erroneous.



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

Reply via email to