Perform "chaining" in the exception message. (FELIX-2459)


git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@964481 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java b/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java
index af8aa08..39fe78f 100644
--- a/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java
+++ b/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java
@@ -440,12 +440,13 @@
             // a resolve exception.
             if ((candidates.size() == 0) && !req.isOptional())
             {
-                if (rethrow == null)
+                String msg = "Unable to resolve " + module
+                    + ": missing requirement " + req;
+                if (rethrow != null)
                 {
-                    rethrow =
-                        new ResolveException("Unable to resolve " + module
-                            + ": missing requirement " + req, module, req);
+                    msg = msg + " [caused by: " + rethrow.getMessage() + "]";
                 }
+                rethrow = new ResolveException(msg, module, req);
                 resultCache.put(module, rethrow);
                 m_logger.log(Logger.LOG_DEBUG, "No viable candidates", rethrow);
                 throw rethrow;