You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2014/11/27 08:59:44 UTC

[1/3] karaf git commit: [KARAF-3383] Avoid exception causing completion to fail if a completer class can not be loaded (because of an optional package for example).

Repository: karaf
Updated Branches:
  refs/heads/master 438233e5d -> 3005e7e01


[KARAF-3383] Avoid exception causing completion to fail if a completer class can not be loaded (because of an optional package for example).

Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/72630a3a
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/72630a3a
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/72630a3a

Branch: refs/heads/master
Commit: 72630a3ad680e00f5ffb0cb00d6b124747e9fa14
Parents: 438233e
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Tue Nov 18 23:37:12 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Thu Nov 27 08:47:40 2014 +0100

----------------------------------------------------------------------
 .../impl/action/command/ArgumentCompleter.java    | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/72630a3a/shell/core/src/main/java/org/apache/karaf/shell/impl/action/command/ArgumentCompleter.java
----------------------------------------------------------------------
diff --git a/shell/core/src/main/java/org/apache/karaf/shell/impl/action/command/ArgumentCompleter.java b/shell/core/src/main/java/org/apache/karaf/shell/impl/action/command/ArgumentCompleter.java
index 1bd04cc..d87d0f9 100644
--- a/shell/core/src/main/java/org/apache/karaf/shell/impl/action/command/ArgumentCompleter.java
+++ b/shell/core/src/main/java/org/apache/karaf/shell/impl/action/command/ArgumentCompleter.java
@@ -134,14 +134,18 @@ public class ArgumentCompleter implements Completer {
             if (field != null) {
                 Completion ann = field.getAnnotation(Completion.class);
                 if (ann != null) {
-                    Class clazz = ann.value();
-                    String[] value = ann.values();
-                    if (clazz != null) {
-                        if (clazz == StringsCompleter.class) {
-                            completer = new StringsCompleter(value, ann.caseSensitive());
-                        } else {
-                            completer = command.getCompleter(clazz);
+                    try {
+                        Class clazz = ann.value();
+                        String[] value = ann.values();
+                        if (clazz != null) {
+                            if (clazz == StringsCompleter.class) {
+                                completer = new StringsCompleter(value, ann.caseSensitive());
+                            } else {
+                                completer = command.getCompleter(clazz);
+                            }
                         }
+                    } catch (Throwable t) {
+                        // Ignore in case the completer class is not even available
                     }
                 } else {
                     completer = getDefaultCompleter(field, option.multiValued());


[2/3] karaf git commit: [KARAF-3384] Commands are not unregistered correctly

Posted by gn...@apache.org.
[KARAF-3384] Commands are not unregistered correctly

Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/2fe7bcbc
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/2fe7bcbc
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/2fe7bcbc

Branch: refs/heads/master
Commit: 2fe7bcbcb0e41b4c40dad48db4b48a0a4420e403
Parents: 72630a3
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Fri Nov 21 10:06:23 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Thu Nov 27 08:48:15 2014 +0100

----------------------------------------------------------------------
 .../org/apache/karaf/shell/impl/action/command/ManagerImpl.java   | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/2fe7bcbc/shell/core/src/main/java/org/apache/karaf/shell/impl/action/command/ManagerImpl.java
----------------------------------------------------------------------
diff --git a/shell/core/src/main/java/org/apache/karaf/shell/impl/action/command/ManagerImpl.java b/shell/core/src/main/java/org/apache/karaf/shell/impl/action/command/ManagerImpl.java
index 6aa0d32..470b4f5 100644
--- a/shell/core/src/main/java/org/apache/karaf/shell/impl/action/command/ManagerImpl.java
+++ b/shell/core/src/main/java/org/apache/karaf/shell/impl/action/command/ManagerImpl.java
@@ -135,6 +135,9 @@ public class ManagerImpl implements Manager {
                 throw new IllegalArgumentException("Command " + clazz.getName() + " is not annotated with @Command");
             }
             Object command = new ActionCommand(this, (Class<? extends Action>) clazz);
+            synchronized (instances) {
+                instances.put(clazz, command);
+            }
             registrations.register(command);
         }
         if (allowCustomServices || Completer.class.isAssignableFrom(clazz)) {


[3/3] karaf git commit: [KARAF-3385] Fix multi-exception for JDK 7 so that stack traces are correctly displayed

Posted by gn...@apache.org.
[KARAF-3385] Fix multi-exception for JDK 7 so that stack traces are correctly displayed

Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/3005e7e0
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/3005e7e0
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/3005e7e0

Branch: refs/heads/master
Commit: 3005e7e0138e6c4f0d5f7d52107ca324cfb39037
Parents: 2fe7bcb
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Thu Nov 20 16:12:35 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Thu Nov 27 08:49:53 2014 +0100

----------------------------------------------------------------------
 .../download/simple/SimpleDownloader.java       |  2 +-
 .../features/internal/util/MultiException.java  | 50 ++++--------------
 .../karaf/shell/support/MultiException.java     | 53 ++++----------------
 3 files changed, 22 insertions(+), 83 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/3005e7e0/features/core/src/main/java/org/apache/karaf/features/internal/download/simple/SimpleDownloader.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/download/simple/SimpleDownloader.java b/features/core/src/main/java/org/apache/karaf/features/internal/download/simple/SimpleDownloader.java
index 91caac6..9daf960 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/download/simple/SimpleDownloader.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/download/simple/SimpleDownloader.java
@@ -63,7 +63,7 @@ public class SimpleDownloader implements DownloadManager, Downloader {
                 downloadCallback.downloaded(providers.get(location));
             }
         } catch (Exception e) {
-            exception.addException(e);
+            exception.addSuppressed(e);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/3005e7e0/features/core/src/main/java/org/apache/karaf/features/internal/util/MultiException.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/util/MultiException.java b/features/core/src/main/java/org/apache/karaf/features/internal/util/MultiException.java
index 6673c4f..726c7ee 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/util/MultiException.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/util/MultiException.java
@@ -16,68 +16,38 @@
  */
 package org.apache.karaf.features.internal.util;
 
-import java.io.PrintStream;
-import java.io.PrintWriter;
-import java.util.ArrayList;
 import java.util.List;
 
 @SuppressWarnings("serial")
 public class MultiException extends Exception {
 
-    private final List<Exception> exceptions;
-
     public MultiException(String message) {
         super(message);
-        this.exceptions = new ArrayList<>();
     }
 
     public MultiException(String message, List<Exception> exceptions) {
         super(message);
-        this.exceptions = exceptions;
+        if (exceptions != null) {
+            for (Exception exception : exceptions) {
+                addSuppressed(exception);
+            }
+        }
     }
 
+    @Deprecated
     public void addException(Exception e) {
-        exceptions.add(e);
+        addSuppressed(e);
     }
 
     public void throwIfExceptions() throws MultiException {
-        if (!exceptions.isEmpty()) {
+        if (getSuppressed().length > 0) {
             throw this;
         }
     }
 
+    @Deprecated
     public Throwable[] getCauses() {
-        return exceptions.toArray(new Throwable[exceptions.size()]);
-    }
-
-    @Override
-    public void printStackTrace() {
-        super.printStackTrace();
-        for (Exception e : exceptions) {
-            e.printStackTrace();
-        }
-    }
-
-
-    /* ------------------------------------------------------------------------------- */
-
-    /**
-     * @see Throwable#printStackTrace(java.io.PrintStream)
-     */
-    @Override
-    public void printStackTrace(PrintStream out) {
-        super.printStackTrace(out);
-        for (Exception e : exceptions) {
-            e.printStackTrace(out);
-        }
-    }
-
-    @Override
-    public void printStackTrace(PrintWriter out) {
-        super.printStackTrace(out);
-        for (Exception e : exceptions) {
-            e.printStackTrace(out);
-        }
+        return getSuppressed();
     }
 
     public static void throwIf(String message, List<Exception> exceptions) throws MultiException {

http://git-wip-us.apache.org/repos/asf/karaf/blob/3005e7e0/shell/core/src/main/java/org/apache/karaf/shell/support/MultiException.java
----------------------------------------------------------------------
diff --git a/shell/core/src/main/java/org/apache/karaf/shell/support/MultiException.java b/shell/core/src/main/java/org/apache/karaf/shell/support/MultiException.java
index c05f185..765b39a 100644
--- a/shell/core/src/main/java/org/apache/karaf/shell/support/MultiException.java
+++ b/shell/core/src/main/java/org/apache/karaf/shell/support/MultiException.java
@@ -16,69 +16,38 @@
  */
 package org.apache.karaf.shell.support;
 
-import java.io.PrintStream;
-import java.io.PrintWriter;
-import java.util.ArrayList;
 import java.util.List;
 
 @SuppressWarnings("serial")
 public class MultiException extends Exception {
 
-    private List<Exception> exceptions = new ArrayList<Exception>();
-
     public MultiException(String message) {
         super(message);
     }
 
     public MultiException(String message, List<Exception> exceptions) {
         super(message);
-        this.exceptions = exceptions;
+        if (exceptions != null) {
+            for (Exception exception : exceptions) {
+                addSuppressed(exception);
+            }
+        }
     }
 
+    @Deprecated
     public void addException(Exception e) {
-        exceptions.add(e);
+        addSuppressed(e);
     }
 
     public void throwIfExceptions() throws MultiException {
-        if (!exceptions.isEmpty()) {
+        if (getSuppressed().length > 0) {
             throw this;
         }
     }
-    
-    public Throwable[] getCauses() {
-        return exceptions.toArray(new Throwable[exceptions.size()]);
-    }
-
-    @Override
-    public void printStackTrace()
-    {
-        super.printStackTrace();
-        for (Exception e : exceptions) {
-            e.printStackTrace();
-        }
-    }
-
 
-    /* ------------------------------------------------------------------------------- */
-    /**
-     * @see Throwable#printStackTrace(java.io.PrintStream)
-     */
-    @Override
-    public void printStackTrace(PrintStream out)
-    {
-        super.printStackTrace(out);
-        for (Exception e : exceptions) {
-            e.printStackTrace(out);
-        }
-    }
-
-    @Override
-    public void printStackTrace(PrintWriter out)
-    {
-        super.printStackTrace(out);
-        for (Exception e : exceptions) {
-            e.printStackTrace(out);
-        }
+    @Deprecated
+    public Throwable[] getCauses() {
+        return getSuppressed();
     }
 
     public static void throwIf(String message, List<Exception> exceptions) throws MultiException {