[
https://issues.apache.org/jira/browse/COLLECTIONS-532?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Brent Worden resolved COLLECTIONS-532.
--------------------------------------
Resolution: Won't Fix
Throwing exceptions has been the behavior of all predicated collections since
the beginning.
> MapUtils.predicatedMap(map, keypredicate,valuepredicate) is not working as
> expected
> -----------------------------------------------------------------------------------
>
> Key: COLLECTIONS-532
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-532
> Project: Commons Collections
> Issue Type: New Feature
> Components: Collection, Map
> Affects Versions: 4.0
> Environment: ubuntu/java8
> Reporter: Bhanupavansingh
>
> I expected that MapUtils.predicatedMap() includes those entries of the
> specified map that match the specified key-predicate and specified
> value-predicate.I expected that entries that do not match either of the
> predicates not included i the returned map.
> But in as per the code of org.apache.commons.collections4.map. {code}
> PredicatedMap.validate()
> protected void validate(final K key, final V value) {
> if (keyPredicate != null && keyPredicate.evaluate(key) == false) {
> throw new IllegalArgumentException("Cannot add key - Predicate
> rejected it");
> }
> if (valuePredicate != null && valuePredicate.evaluate(value) ==
> false) {
> throw new IllegalArgumentException("Cannot add value - Predicate
> rejected it");
> }
> }
> {code}
> if evaluation of key or value predicate fails an IllegalArgumentException is
> thrown.
> Predicates are passed to input map to test if an entry is to be included or
> not. If the evaluation of this predicate itself throws an exception based on
> result of predicate, then this method is useless and cannot be used to filter
> entries of a map(using predicates)
--
This message was sent by Atlassian JIRA
(v6.2#6252)