You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by fm...@apache.org on 2014/10/06 12:34:09 UTC
svn commit: r1629608 -
/sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/helper/SlingPropertyValueHandler.java
Author: fmeschbe
Date: Mon Oct 6 10:34:08 2014
New Revision: 1629608
URL: http://svn.apache.org/r1629608
Log:
SLING-4007 Prevent NPE if Session is not available. Also don't call any code which makes use
of the ValueFactory.
Modified:
sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/helper/SlingPropertyValueHandler.java
Modified: sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/helper/SlingPropertyValueHandler.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/helper/SlingPropertyValueHandler.java?rev=1629608&r1=1629607&r2=1629608&view=diff
==============================================================================
--- sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/helper/SlingPropertyValueHandler.java (original)
+++ sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/helper/SlingPropertyValueHandler.java Mon Oct 6 10:34:08 2014
@@ -32,7 +32,6 @@ import javax.jcr.Session;
import javax.jcr.Value;
import javax.jcr.ValueFactory;
import javax.jcr.nodetype.NodeType;
-import javax.jcr.nodetype.NodeTypeIterator;
import javax.jcr.nodetype.PropertyDefinition;
import org.apache.sling.api.resource.ModifiableValueMap;
@@ -281,9 +280,6 @@ public class SlingPropertyValueHandler {
}
}
- // TODO - we should check for session
- final ValueFactory valFac = parent.resource.getResourceResolver().adaptTo(Session.class).getValueFactory();
-
final boolean multiValue = isMultiValue(parent, prop, values);
final int type = getType(parent, prop);
@@ -292,13 +288,17 @@ public class SlingPropertyValueHandler {
removeIfSingleValueProperty(parent, prop);
}
- if (type == PropertyType.DATE) {
- if (storeAsDate(parent, prop.getName(), values, multiValue, valFac)) {
- return;
- }
- } else if (isReferencePropertyType(type)) {
- if (storeAsReference(parent, prop.getName(), values, type, multiValue, valFac)) {
- return;
+ Session s = parent.resource.getResourceResolver().adaptTo(Session.class);
+ if (s != null) {
+ final ValueFactory valFac = s.getValueFactory();
+ if (type == PropertyType.DATE) {
+ if (storeAsDate(parent, prop.getName(), values, multiValue, valFac)) {
+ return;
+ }
+ } else if (isReferencePropertyType(type)) {
+ if (storeAsReference(parent, prop.getName(), values, type, multiValue, valFac)) {
+ return;
+ }
}
}