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 {