[
https://issues.apache.org/jira/browse/COLLECTIONS-323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13006073#comment-13006073
]
Jochen Wiedmann commented on COLLECTIONS-323:
---------------------------------------------
Quoting from the initial bug report: "This is inconsistent with the standard
Java HashMap constructor HashMap(int initialCapacity),"
I had to choose between consistency (incrementing the size by one) and the
current behaviour. The latter made much more sense to me and I can think of no
reason why one would intentionally create an LRUMap of size 0. The
IllegalArgumentException makes perfect sense to me.
> Behavior of constructors CaseInsensitiveMap inconsistent with standard Java
> HashMap
> -----------------------------------------------------------------------------------
>
> Key: COLLECTIONS-323
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-323
> Project: Commons Collections
> Issue Type: Bug
> Components: Map
> Affects Versions: 3.2
> Environment: Any
> Reporter: Maarten Brak
> Assignee: Jochen Wiedmann
> Priority: Minor
> Fix For: 3.2.2
>
> Attachments: patch.tar.gz
>
> Original Estimate: 24h
> Remaining Estimate: 24h
>
> The constructor CaseInsensitiveMap(int initialCapacity) throws an
> IllegalArgumentException if "the initial capacity is less than one". This is
> inconsistent with the standard Java HashMap constructor HashMap(int
> initialCapacity), which throws an if IllegalArgumentException if "the initial
> capacity is negative".
> Thus:
> new HashMap(0) ==> no exception
> new CaseInsensitiveMap(0) ==> IllegalArgumentException.
> This inconsistency is confusing.
> Actions:
> - Change Javadoc (this shouldn't be a problem in practice since surely there
> is no code around depending on the fact that the constructor throws an
> IllegalArgumentException :-))
> - Change code.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira