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

Andre Diermann commented on SANDBOX-462:
----------------------------------------

I have two questions regarding the current routine of get():

- when one AccessibleObject is resolved directly, why isn't it put to the 
cache? [1]
- when no best match could be obtained (I assume this is possible because of 
bestMatch!= null), null would be put in cache. This will do not big damage 
directly, but wouldn't this in theory slow down the whole routine significantly 
because of a very large key set which has to be searched on every run (see line 
90 in [3]). [2]

[1] see line 90 - 104 in [3]
[2] see line 152 - 156 in [3]
[3] 
http://svn.apache.org/viewvc/commons/sandbox/beanutils2/trunk/src/main/java/org/apache/commons/beanutils2/AccessibleObjectsRegistry.java?view=markup

> Refactoring of AccessibleObjectsRegistry
> ----------------------------------------
>
>                 Key: SANDBOX-462
>                 URL: https://issues.apache.org/jira/browse/SANDBOX-462
>             Project: Commons Sandbox
>          Issue Type: Improvement
>          Components: BeanUtils2
>            Reporter: Andre Diermann
>            Priority: Minor
>         Attachments: Commons-BeanUtils2-462#1.patch
>
>
> Summary:
> The AccessibleObjectsRegistry class provides two get methods, while one is a 
> convenient method for the other.
> Both methods take one conditional parameter, boolean exact, and the actual 
> get method is very long, which makes it somehow complex to understand.
> Suggestion:
> What could be improved IMHO:
> - Instead of using conditional methods, like get(boolean 
> doSomethingSpecialIfTrue, ...), it is more convenient to provide dedicated 
> methods like getSomething() and getAnotherThing().
> - In this regard the difference between an exact or, let's call it, matching 
> descriptor should be expressed through inheritance rather than object 
> allocation (= expressing it by a field boolean exact).
> - The very long get method should be refined
> - Another very minor issue is the naming of the paramTypes field within the 
> inner AccessibleObjectDescriptor class, which I would suggest to rename to 
> parameterTypes to fit the naming of the other occurrences. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to