This is an automated email from the ASF dual-hosted git repository. mbenson pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-weaver.git
The following commit(s) were added to refs/heads/master by this push: new 2602313 WEAVER-16 handle classes with no package 2602313 is described below commit 26023136195cff65a6629c45756ea8332b50cc0a Author: Matt Benson <mben...@apache.org> AuthorDate: Thu Aug 2 18:11:19 2018 -0500 WEAVER-16 handle classes with no package --- .../src/main/java/org/apache/commons/weaver/model/ScanResult.java | 5 ++++- .../main/java/org/apache/commons/weaver/model/WeavablePackage.java | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/processor/src/main/java/org/apache/commons/weaver/model/ScanResult.java b/processor/src/main/java/org/apache/commons/weaver/model/ScanResult.java index 7f3ce0e..71bcf10 100644 --- a/processor/src/main/java/org/apache/commons/weaver/model/ScanResult.java +++ b/processor/src/main/java/org/apache/commons/weaver/model/ScanResult.java @@ -26,6 +26,7 @@ import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.Iterator; import java.util.NoSuchElementException; +import java.util.Optional; import java.util.concurrent.ConcurrentNavigableMap; import java.util.concurrent.ConcurrentSkipListMap; @@ -181,7 +182,9 @@ public class ScanResult { * @return {@link WeavablePackage} */ public WeavablePackage getWeavable(final Package pkg) { - final String key = pkg.getName(); + final String key = + Optional.ofNullable(pkg).map(Package::getName).orElse(""); + if (packages.containsKey(key)) { return packages.get(key); } diff --git a/processor/src/main/java/org/apache/commons/weaver/model/WeavablePackage.java b/processor/src/main/java/org/apache/commons/weaver/model/WeavablePackage.java index e1a5c9a..e789a5f 100644 --- a/processor/src/main/java/org/apache/commons/weaver/model/WeavablePackage.java +++ b/processor/src/main/java/org/apache/commons/weaver/model/WeavablePackage.java @@ -19,6 +19,7 @@ package org.apache.commons.weaver.model; import java.util.Collections; +import java.util.Comparator; import java.util.concurrent.ConcurrentNavigableMap; import java.util.concurrent.ConcurrentSkipListMap; @@ -26,6 +27,7 @@ import java.util.concurrent.ConcurrentSkipListMap; * {@link Weavable} {@link Package}. */ public class WeavablePackage extends Weavable<WeavablePackage, Package> { + private static final Comparator<WeavablePackage> CMP = Comparator.nullsFirst(Comparator.comparing(WeavablePackage::getTarget, Comparator.nullsFirst(Comparator.comparing(Package::getName)))); private final ConcurrentNavigableMap<String, WeavableClass<?>> clazzes = new ConcurrentSkipListMap<>(); @@ -71,6 +73,6 @@ public class WeavablePackage extends Weavable<WeavablePackage, Package> { */ @Override public int compareTo(final WeavablePackage arg0) { - return getTarget().getName().compareTo(arg0.getTarget().getName()); + return CMP.compare(this, arg0); } }