You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ri...@apache.org on 2010/07/16 19:11:47 UTC

svn commit: r964862 - in /felix/trunk/framework/src/main/java/org/apache/felix/framework: Felix.java resolver/ResolverImpl.java

Author: rickhall
Date: Fri Jul 16 17:11:47 2010
New Revision: 964862

URL: http://svn.apache.org/viewvc?rev=964862&view=rev
Log:
True to simplify exception message by avoid recursion if a bundle
imports from itself. (FELIX-2459)

Modified:
    felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java
    felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java

Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java?rev=964862&r1=964861&r2=964862&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java Fri Jul 16 17:11:47 2010
@@ -3419,9 +3419,8 @@ ex.printStackTrace();
             {
                 Bundle b = ((ModuleImpl) ex.getModule()).getBundle();
                 throw new BundleException(
-                    "Unresolved constraint in bundle " + b + ": "
-                    + ((ex.getRequirement() == null)
-                        ? ex.getMessage() : ex.getMessage() + " - " + ex.getRequirement().toString()));
+                    "Unresolved constraint in bundle "
+                    + b + ": " + ex.getMessage());
             }
             else
             {

Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java?rev=964862&r1=964861&r2=964862&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java Fri Jul 16 17:11:47 2010
@@ -415,7 +415,18 @@ public class ResolverImpl implements Res
             for (Iterator<Capability> itCandCap = candidates.iterator(); itCandCap.hasNext(); )
             {
                 Capability candCap = itCandCap.next();
-                if (!candCap.getModule().isResolved())
+
+                // If the candidate module is not resolved and not the current
+                // module we are trying to populate, then try to populate the
+                // candidate module as well.
+                // NOTE: Technically, we don't have to check to see if the
+                // candidate module is equal to the current module, but this
+                // saves us from recursing and also simplifies exceptions messages
+                // since we effectively chain exception messages for each level
+                // of recursion; thus, any avoided recursion results in fewer
+                // exceptions to chain when an error does occur.
+                if (!candCap.getModule().isResolved()
+                    && !candCap.getModule().equals(module))
                 {
                     try
                     {