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
{