You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by mb...@apache.org on 2018/08/02 23:11:25 UTC

[commons-weaver] branch master updated: WEAVER-16 handle classes with no package

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 <mb...@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);
     }
 }