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 2011/06/15 18:11:47 UTC
svn commit: r1136102 - in
/felix/trunk/framework/src/main/java/org/apache/felix/framework/capabilityset:
CapabilitySet.java SimpleFilter.java
Author: rickhall
Date: Wed Jun 15 16:11:46 2011
New Revision: 1136102
URL: http://svn.apache.org/viewvc?rev=1136102&view=rev
Log:
Exceptions thrown by equals()/compare() should result in a false
for filter evaluation. (FELIX-2998)
Modified:
felix/trunk/framework/src/main/java/org/apache/felix/framework/capabilityset/CapabilitySet.java
felix/trunk/framework/src/main/java/org/apache/felix/framework/capabilityset/SimpleFilter.java
Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/capabilityset/CapabilitySet.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/capabilityset/CapabilitySet.java?rev=1136102&r1=1136101&r2=1136102&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/capabilityset/CapabilitySet.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/capabilityset/CapabilitySet.java Wed Jun 15 16:11:46 2011
@@ -407,11 +407,32 @@ public void dump()
switch (op)
{
case SimpleFilter.EQ :
- return (((Comparable) lhs).compareTo(rhs) == 0);
+ try
+ {
+ return (((Comparable) lhs).compareTo(rhs) == 0);
+ }
+ catch (Exception ex)
+ {
+ return false;
+ }
case SimpleFilter.GTE :
- return (((Comparable) lhs).compareTo(rhs) >= 0);
+ try
+ {
+ return (((Comparable) lhs).compareTo(rhs) >= 0);
+ }
+ catch (Exception ex)
+ {
+ return false;
+ }
case SimpleFilter.LTE :
- return (((Comparable) lhs).compareTo(rhs) <= 0);
+ try
+ {
+ return (((Comparable) lhs).compareTo(rhs) <= 0);
+ }
+ catch (Exception ex)
+ {
+ return false;
+ }
case SimpleFilter.APPROX :
return compareApproximate(((Comparable) lhs), rhs);
case SimpleFilter.SUBSTRING :
@@ -478,27 +499,14 @@ public void dump()
// Since we cannot identify the LHS type, then we can only perform
// equality comparison.
-// TODO: COMPLIANCE - This should be changed to return false in case
-// of an exception, but the R4.2 CT has a mistake in it, so for
-// now we'll throw exceptions from equals().
-// try
-// {
-// return lhs.equals(coerceType(lhs, (String) rhsUnknown));
-// }
-// catch (Exception ex)
-// {
-// return false;
-// }
- Object rhsObj = null;
try
{
- rhsObj = coerceType(lhs, (String) rhsUnknown);
+ return lhs.equals(coerceType(lhs, (String) rhsUnknown));
}
catch (Exception ex)
{
return false;
}
- return lhs.equals(rhsObj);
}
private static boolean compareApproximate(Object lhs, Object rhs)
Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/capabilityset/SimpleFilter.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/capabilityset/SimpleFilter.java?rev=1136102&r1=1136101&r2=1136102&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/capabilityset/SimpleFilter.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/capabilityset/SimpleFilter.java Wed Jun 15 16:11:46 2011
@@ -418,7 +418,7 @@ loop: for (;;)
}
ss.setLength(0);
// if this is a leading star, then track it
- if (pieces.size() == 0)
+ if (pieces.isEmpty())
{
leftstar = true;
}