Return-Path: X-Original-To: apmail-tamaya-commits-archive@minotaur.apache.org Delivered-To: apmail-tamaya-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 3289318C12 for ; Wed, 17 Feb 2016 00:21:10 +0000 (UTC) Received: (qmail 72905 invoked by uid 500); 17 Feb 2016 00:21:10 -0000 Delivered-To: apmail-tamaya-commits-archive@tamaya.apache.org Received: (qmail 72875 invoked by uid 500); 17 Feb 2016 00:21:10 -0000 Mailing-List: contact commits-help@tamaya.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@tamaya.incubator.apache.org Delivered-To: mailing list commits@tamaya.incubator.apache.org Received: (qmail 72866 invoked by uid 99); 17 Feb 2016 00:21:10 -0000 Received: from Unknown (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 17 Feb 2016 00:21:10 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id ADCF2180617 for ; Wed, 17 Feb 2016 00:21:09 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -3.549 X-Spam-Level: X-Spam-Status: No, score=-3.549 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.329] autolearn=disabled Received: from mx2-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id J-LdDGXYGLZU for ; Wed, 17 Feb 2016 00:21:08 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx2-lw-eu.apache.org (ASF Mail Server at mx2-lw-eu.apache.org) with SMTP id 4E6935FAFE for ; Wed, 17 Feb 2016 00:21:07 +0000 (UTC) Received: (qmail 72554 invoked by uid 99); 17 Feb 2016 00:21:06 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 17 Feb 2016 00:21:06 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 5EDCBE057C; Wed, 17 Feb 2016 00:21:06 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: anatole@apache.org To: commits@tamaya.incubator.apache.org Date: Wed, 17 Feb 2016 00:21:08 -0000 Message-Id: <4b06b86f78344d29bd2b30eff528e271@git.apache.org> In-Reply-To: <45212cbd84724b689688ddfb68809fc9@git.apache.org> References: <45212cbd84724b689688ddfb68809fc9@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [3/5] incubator-tamaya git commit: Fixed duplicate converter in list returned. Fixed duplicate converter in list returned. Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/commit/97f62557 Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/tree/97f62557 Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/diff/97f62557 Branch: refs/heads/master Commit: 97f62557382598e4c19dfa967610c078eea40234 Parents: ce626a1 Author: anatole Authored: Wed Feb 17 00:52:15 2016 +0100 Committer: anatole Committed: Wed Feb 17 00:52:15 2016 +0100 ---------------------------------------------------------------------- .../core/internal/PropertyConverterManager.java | 44 ++++++++------------ 1 file changed, 17 insertions(+), 27 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/97f62557/code/core/src/main/java/org/apache/tamaya/core/internal/PropertyConverterManager.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/PropertyConverterManager.java b/code/core/src/main/java/org/apache/tamaya/core/internal/PropertyConverterManager.java index 72facc4..2ec48b4 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/PropertyConverterManager.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/PropertyConverterManager.java @@ -31,13 +31,7 @@ import java.lang.reflect.Modifier; import java.lang.reflect.Type; import java.security.AccessController; import java.security.PrivilegedAction; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReadWriteLock; @@ -227,35 +221,26 @@ public class PropertyConverterManager { // direct mapped converters try { readLock.lock(); - converters = List.class.cast(this.converters.get(targetType)); + addConvertersToList(List.class.cast(this.converters.get(targetType)), converterList); } finally { readLock.unlock(); } - if (converters != null) { - converterList.addAll(converters); - } // transitive converter try { readLock.lock(); - converters = List.class.cast(this.transitiveConverters.get(targetType)); + addConvertersToList(List.class.cast(this.transitiveConverters.get(targetType)), converterList); } finally { readLock.unlock(); } - if (converters != null) { - converterList.addAll(converters); - } // handling of java.lang wrapper classes TypeLiteral boxedType = mapBoxedType(targetType); if (boxedType != null) { try { readLock.lock(); - converters = List.class.cast(this.converters.get(boxedType)); + addConvertersToList(List.class.cast(this.converters.get(boxedType)), converterList); } finally { readLock.unlock(); } - if (converters != null) { - converterList.addAll(converters); - } } if (converterList.isEmpty()) { // adding any converters created on the fly, e.g. for enum types. @@ -264,31 +249,36 @@ public class PropertyConverterManager { register(targetType, defaultConverter); try { readLock.lock(); - converters = List.class.cast(this.converters.get(targetType)); + addConvertersToList(List.class.cast(this.converters.get(targetType)), converterList); } finally { readLock.unlock(); } } - if (converters != null) { - converterList.addAll(converters); - } } // check for parametrized types, ignoring param type // direct mapped converters if(targetType.getType()!=null) { try { readLock.lock(); - converters = List.class.cast(this.converters.get(TypeLiteral.of(targetType.getRawType()))); + addConvertersToList(List.class.cast(this.converters.get( + TypeLiteral.of(targetType.getRawType()))), converterList); } finally { readLock.unlock(); } - if (converters != null) { - converterList.addAll(converters); - } } return converterList; } + private void addConvertersToList(Collection> converters, List> converterList) { + if (converters != null) { + for(PropertyConverter conv:converters) { + if(!converterList.contains(conv)) { + converterList.add(conv); + } + } + } + } + /** * Maps native types to the corresponding boxed types. *