You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by tb...@apache.org on 2013/02/25 18:32:40 UTC
svn commit: r1449784 - in /incubator/ambari/trunk: ./
ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/
ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/
Author: tbeerbower
Date: Mon Feb 25 17:32:39 2013
New Revision: 1449784
URL: http://svn.apache.org/r1449784
Log:
AMBARI-1480. Comparison predicate should account for null values.
Modified:
incubator/ambari/trunk/CHANGES.txt
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/EqualsPredicate.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/GreaterEqualsPredicate.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/GreaterPredicate.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/LessEqualsPredicate.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/LessPredicate.java
incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/EqualsPredicateTest.java
incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/GreaterEqualsPredicateTest.java
incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/GreaterPredicateTest.java
incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/LessEqualsPredicateTest.java
incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/LessPredicateTest.java
Modified: incubator/ambari/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/CHANGES.txt?rev=1449784&r1=1449783&r2=1449784&view=diff
==============================================================================
--- incubator/ambari/trunk/CHANGES.txt (original)
+++ incubator/ambari/trunk/CHANGES.txt Mon Feb 25 17:32:39 2013
@@ -366,6 +366,8 @@ Trunk (unreleased changes):
BUG FIXES
+ AMBARI-1480. Comparison predicate should account for null values. (tbeerbower)
+
AMBARI-1467. UI should block on cluster metric api call before making
subsequent one. (yusaku)
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/EqualsPredicate.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/EqualsPredicate.java?rev=1449784&r1=1449783&r2=1449784&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/EqualsPredicate.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/EqualsPredicate.java Mon Feb 25 17:32:39 2013
@@ -31,8 +31,12 @@ public class EqualsPredicate<T> extends
@Override
public boolean evaluate(Resource resource) {
- Object propertyValue = resource.getPropertyValue(getPropertyId());
- return propertyValue != null && compareValueTo(propertyValue) == 0;
+ Object propertyValue = resource.getPropertyValue(getPropertyId());
+ Object predicateValue = getValue();
+
+ return predicateValue == null ?
+ propertyValue == null :
+ propertyValue != null && compareValueTo(propertyValue) == 0;
}
@Override
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/GreaterEqualsPredicate.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/GreaterEqualsPredicate.java?rev=1449784&r1=1449783&r2=1449784&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/GreaterEqualsPredicate.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/GreaterEqualsPredicate.java Mon Feb 25 17:32:39 2013
@@ -25,8 +25,19 @@ import org.apache.ambari.server.controll
*/
public class GreaterEqualsPredicate<T> extends ComparisonPredicate<T> {
+ /**
+ * Construct a GreaterEqualsPredicate.
+ *
+ * @param propertyId the property id
+ * @param value the value
+ *
+ * @throws IllegalArgumentException if the given value is null
+ */
public GreaterEqualsPredicate(String propertyId, Comparable<T> value) {
super(propertyId, value);
+ if (value == null) {
+ throw new IllegalArgumentException("Value can't be null.");
+ }
}
@Override
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/GreaterPredicate.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/GreaterPredicate.java?rev=1449784&r1=1449783&r2=1449784&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/GreaterPredicate.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/GreaterPredicate.java Mon Feb 25 17:32:39 2013
@@ -24,8 +24,19 @@ import org.apache.ambari.server.controll
*/
public class GreaterPredicate<T> extends ComparisonPredicate<T> {
+ /**
+ * Construct a GreaterPredicate.
+ *
+ * @param propertyId the property id
+ * @param value the value
+ *
+ * @throws IllegalArgumentException if the given value is null
+ */
public GreaterPredicate(String propertyId, Comparable<T> value) {
super(propertyId, value);
+ if (value == null) {
+ throw new IllegalArgumentException("Value can't be null.");
+ }
}
@Override
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/LessEqualsPredicate.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/LessEqualsPredicate.java?rev=1449784&r1=1449783&r2=1449784&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/LessEqualsPredicate.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/LessEqualsPredicate.java Mon Feb 25 17:32:39 2013
@@ -25,8 +25,19 @@ import org.apache.ambari.server.controll
*/
public class LessEqualsPredicate<T> extends ComparisonPredicate<T> {
+ /**
+ * Construct a LessEqualsPredicate.
+ *
+ * @param propertyId the property id
+ * @param value the value
+ *
+ * @throws IllegalArgumentException if the given value is null
+ */
public LessEqualsPredicate(String propertyId, Comparable<T> value) {
super(propertyId, value);
+ if (value == null) {
+ throw new IllegalArgumentException("Value can't be null.");
+ }
}
@Override
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/LessPredicate.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/LessPredicate.java?rev=1449784&r1=1449783&r2=1449784&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/LessPredicate.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/LessPredicate.java Mon Feb 25 17:32:39 2013
@@ -24,8 +24,19 @@ import org.apache.ambari.server.controll
*/
public class LessPredicate<T> extends ComparisonPredicate<T> {
+ /**
+ * Construct a LessPredicate.
+ *
+ * @param propertyId the property id
+ * @param value the value
+ *
+ * @throws IllegalArgumentException if the given value is null
+ */
public LessPredicate(String propertyId, Comparable<T> value) {
super(propertyId, value);
+ if (value == null) {
+ throw new IllegalArgumentException("Value can't be null.");
+ }
}
@Override
Modified: incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/EqualsPredicateTest.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/EqualsPredicateTest.java?rev=1449784&r1=1449783&r2=1449784&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/EqualsPredicateTest.java (original)
+++ incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/EqualsPredicateTest.java Mon Feb 25 17:32:39 2013
@@ -27,7 +27,7 @@ import org.junit.Test;
import java.util.Set;
/**
- *
+ * Equals predicate tests.
*/
public class EqualsPredicateTest {
@@ -51,6 +51,19 @@ public class EqualsPredicateTest {
}
@Test
+ public void testApplyNullValue() {
+ Resource resource = new ResourceImpl(Resource.Type.HostComponent);
+ String propertyId = PropertyHelper.getPropertyId("category1", "foo");
+ Predicate predicate = new EqualsPredicate<String>(propertyId, null);
+
+ resource.setProperty(propertyId, "monkey");
+ Assert.assertFalse(predicate.evaluate(resource));
+
+ resource.setProperty(propertyId, null);
+ Assert.assertTrue(predicate.evaluate(resource));
+ }
+
+ @Test
public void testGetProperties() {
String propertyId = PropertyHelper.getPropertyId("category1", "foo");
EqualsPredicate predicate = new EqualsPredicate<String>(propertyId, "bar");
Modified: incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/GreaterEqualsPredicateTest.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/GreaterEqualsPredicateTest.java?rev=1449784&r1=1449783&r2=1449784&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/GreaterEqualsPredicateTest.java (original)
+++ incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/GreaterEqualsPredicateTest.java Mon Feb 25 17:32:39 2013
@@ -48,6 +48,16 @@ public class GreaterEqualsPredicateTest
}
@Test
+ public void testNullValue() {
+ try {
+ new GreaterEqualsPredicate<Integer>("category/foo", null);
+ Assert.fail("Expected IllegalArgumentException for null value.");
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+ }
+
+ @Test
public void testGetProperties() {
String propertyId = PropertyHelper.getPropertyId("category1", "foo");
GreaterEqualsPredicate predicate = new GreaterEqualsPredicate<Integer>(propertyId, 10);
Modified: incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/GreaterPredicateTest.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/GreaterPredicateTest.java?rev=1449784&r1=1449783&r2=1449784&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/GreaterPredicateTest.java (original)
+++ incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/GreaterPredicateTest.java Mon Feb 25 17:32:39 2013
@@ -48,6 +48,16 @@ public class GreaterPredicateTest {
}
@Test
+ public void testNullValue() {
+ try {
+ new GreaterPredicate<Integer>("category/foo", null);
+ Assert.fail("Expected IllegalArgumentException for null value.");
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+ }
+
+ @Test
public void testGetProperties() {
String propertyId = PropertyHelper.getPropertyId("category1", "foo");
GreaterPredicate predicate = new GreaterPredicate<Integer>(propertyId, 10);
Modified: incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/LessEqualsPredicateTest.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/LessEqualsPredicateTest.java?rev=1449784&r1=1449783&r2=1449784&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/LessEqualsPredicateTest.java (original)
+++ incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/LessEqualsPredicateTest.java Mon Feb 25 17:32:39 2013
@@ -48,6 +48,16 @@ public class LessEqualsPredicateTest {
}
@Test
+ public void testNullValue() {
+ try {
+ new LessEqualsPredicate<Integer>("category/foo", null);
+ Assert.fail("Expected IllegalArgumentException for null value.");
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+ }
+
+ @Test
public void testGetProperties() {
String propertyId = PropertyHelper.getPropertyId("category1", "foo");
LessEqualsPredicate predicate = new LessEqualsPredicate<Integer>(propertyId, 10);
Modified: incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/LessPredicateTest.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/LessPredicateTest.java?rev=1449784&r1=1449783&r2=1449784&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/LessPredicateTest.java (original)
+++ incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/LessPredicateTest.java Mon Feb 25 17:32:39 2013
@@ -48,6 +48,16 @@ public class LessPredicateTest {
}
@Test
+ public void testNullValue() {
+ try {
+ new LessPredicate<Integer>("category/foo", null);
+ Assert.fail("Expected IllegalArgumentException for null value.");
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+ }
+
+ @Test
public void testGetProperties() {
String propertyId = PropertyHelper.getPropertyId("category1", "foo");
LessPredicate predicate = new LessPredicate<Integer>(propertyId, 1);