You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by an...@apache.org on 2015/04/15 16:44:37 UTC
svn commit: r1673794 - in
/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak:
plugins/value/ValueFactoryImpl.java spi/query/PropertyValues.java
Author: angela
Date: Wed Apr 15 14:44:37 2015
New Revision: 1673794
URL: http://svn.apache.org/r1673794
Log:
OAK-2674 : Fix FindBug Issues (pot null deref in ValueFactoryImpl and PropertyValues
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/ValueFactoryImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/query/PropertyValues.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/ValueFactoryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/ValueFactoryImpl.java?rev=1673794&r1=1673793&r2=1673794&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/ValueFactoryImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/ValueFactoryImpl.java Wed Apr 15 14:44:37 2015
@@ -73,8 +73,7 @@ public class ValueFactoryImpl implements
* @param namePathMapper The name/path mapping used for converting JCR names/paths to
* the internal representation.
*/
- public ValueFactoryImpl(
- @Nonnull Root root, @Nonnull NamePathMapper namePathMapper) {
+ public ValueFactoryImpl(@Nonnull Root root, @Nonnull NamePathMapper namePathMapper) {
this.root = checkNotNull(root);
this.namePathMapper = checkNotNull(namePathMapper);
}
@@ -99,8 +98,13 @@ public class ValueFactoryImpl implements
* @return New {@code Value} instance
* @throws IllegalArgumentException if {@code property.isArray()} is {@code true}.
*/
- public static Value createValue(PropertyValue property, NamePathMapper namePathMapper) {
- return newValue(PropertyValues.create(property), namePathMapper);
+ @Nonnull
+ public static Value createValue(@Nonnull PropertyValue property, @Nonnull NamePathMapper namePathMapper) {
+ PropertyState ps = PropertyValues.create(property);
+ if (ps == null) {
+ throw new IllegalArgumentException("Failed to convert the specified property value to a property state.");
+ }
+ return newValue(ps, namePathMapper);
}
/**
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/query/PropertyValues.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/query/PropertyValues.java?rev=1673794&r1=1673793&r2=1673794&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/query/PropertyValues.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/query/PropertyValues.java Wed Apr 15 14:44:37 2015
@@ -51,15 +51,20 @@ public final class PropertyValues {
}
@CheckForNull
- public static PropertyValue create(PropertyState property) {
+ public static PropertyValue create(@CheckForNull PropertyState property) {
if (property == null) {
return null;
}
+ return newValue(property);
+ }
+
+ @Nonnull
+ private static PropertyValue newValue(@Nonnull PropertyState property) {
return new PropertyStateValue(property);
}
@CheckForNull
- public static PropertyState create(PropertyValue value) {
+ public static PropertyState create(@CheckForNull PropertyValue value) {
if (value == null) {
return null;
}
@@ -70,27 +75,27 @@ public final class PropertyValues {
}
@Nonnull
- public static PropertyValue newString(String value) {
+ public static PropertyValue newString(@Nonnull String value) {
return new PropertyStateValue(StringPropertyState.stringProperty("", value));
}
@Nonnull
- public static PropertyValue newString(Iterable<String> value) {
+ public static PropertyValue newString(@Nonnull Iterable<String> value) {
return new PropertyStateValue(MultiStringPropertyState.stringProperty("", value));
}
@Nonnull
- public static PropertyValue newLong(Long value) {
+ public static PropertyValue newLong(@Nonnull Long value) {
return new PropertyStateValue(LongPropertyState.createLongProperty("", value));
}
@Nonnull
- public static PropertyValue newDouble(Double value) {
+ public static PropertyValue newDouble(@Nonnull Double value) {
return new PropertyStateValue(DoublePropertyState.doubleProperty("", value));
}
@Nonnull
- public static PropertyValue newDecimal(BigDecimal value) {
+ public static PropertyValue newDecimal(@Nonnull BigDecimal value) {
return new PropertyStateValue(DecimalPropertyState.decimalProperty("", value));
}
@@ -100,61 +105,61 @@ public final class PropertyValues {
}
@Nonnull
- public static PropertyValue newDate(String value) {
+ public static PropertyValue newDate(@Nonnull String value) {
return new PropertyStateValue(GenericPropertyState.dateProperty("", value));
}
@Nonnull
- public static PropertyValue newName(String value) {
+ public static PropertyValue newName(@Nonnull String value) {
return new PropertyStateValue(GenericPropertyState.nameProperty("", value));
}
@Nonnull
- public static PropertyValue newName(Iterable<String> value) {
+ public static PropertyValue newName(@Nonnull Iterable<String> value) {
return new PropertyStateValue(MultiGenericPropertyState.nameProperty("", value));
}
@Nonnull
- public static PropertyValue newPath(String value) {
+ public static PropertyValue newPath(@Nonnull String value) {
return new PropertyStateValue(GenericPropertyState.pathProperty("", value));
}
@Nonnull
- public static PropertyValue newReference(String value) {
+ public static PropertyValue newReference(@Nonnull String value) {
return new PropertyStateValue(GenericPropertyState.referenceProperty("", value));
}
@Nonnull
- public static PropertyValue newWeakReference(String value) {
+ public static PropertyValue newWeakReference(@Nonnull String value) {
return new PropertyStateValue(GenericPropertyState.weakreferenceProperty("", value));
}
@Nonnull
- public static PropertyValue newUri(String value) {
+ public static PropertyValue newUri(@Nonnull String value) {
return new PropertyStateValue(GenericPropertyState.uriProperty("", value));
}
@Nonnull
- public static PropertyValue newBinary(byte[] value) {
+ public static PropertyValue newBinary(@Nonnull byte[] value) {
return new PropertyStateValue(BinaryPropertyState.binaryProperty("", value));
}
@Nonnull
- public static PropertyValue newBinary(Blob value) {
+ public static PropertyValue newBinary(@Nonnull Blob value) {
return new PropertyStateValue(BinaryPropertyState.binaryProperty("", value));
}
// --
- public static boolean match(PropertyValue p1, PropertyState p2) {
- return match(p1, create(p2));
+ public static boolean match(@Nonnull PropertyValue p1, @Nonnull PropertyState p2) {
+ return match(p1, newValue(p2));
}
- public static boolean match(PropertyState p1, PropertyValue p2) {
- return match(create(p1), p2);
+ public static boolean match(@Nonnull PropertyState p1, @Nonnull PropertyValue p2) {
+ return match(newValue(p1), p2);
}
- public static boolean match(PropertyValue p1, PropertyValue p2) {
+ public static boolean match(@Nonnull PropertyValue p1, @Nonnull PropertyValue p2) {
if (p1.getType().tag() != p2.getType().tag()) {
return false;
}
@@ -185,7 +190,7 @@ public final class PropertyValues {
}
- public static boolean notMatch(PropertyValue p1, PropertyValue p2) {
+ public static boolean notMatch(@Nonnull PropertyValue p1, @Nonnull PropertyValue p2) {
if (p1.getType().tag() != p2.getType().tag()) {
return true;
}
@@ -245,8 +250,7 @@ public final class PropertyValues {
* @return the converted value
* @throws IllegalArgumentException if mapping is illegal
*/
- public static PropertyValue convert(PropertyValue value, int targetType,
- NamePathMapper mapper) {
+ public static PropertyValue convert(@Nonnull PropertyValue value, int targetType, @Nonnull NamePathMapper mapper) {
int sourceType = value.getType().tag();
if (sourceType == targetType) {
return value;
@@ -390,7 +394,7 @@ public final class PropertyValues {
return false;
}
- public static String getOakPath(String jcrPath, NamePathMapper mapper) {
+ public static String getOakPath(@Nonnull String jcrPath, @CheckForNull NamePathMapper mapper) {
if (mapper == null) {
// to simplify testing, a getNamePathMapper isn't required
return jcrPath;