This is an automated email from the ASF dual-hosted git repository. radu pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-scripting-sightly.git
The following commit(s) were added to refs/heads/master by this push: new d8bfb67 SLING-7404 - ObjectModel and similar classes need consistent null checks d8bfb67 is described below commit d8bfb677e688c885efd03affd127175ed6ac63ab Author: Radu Cotescu <r...@apache.org> AuthorDate: Fri Jan 19 14:37:19 2018 +0100 SLING-7404 - ObjectModel and similar classes need consistent null checks (closes #1) --- .../impl/engine/runtime/SlingRuntimeObjectModel.java | 3 +++ .../engine/runtime/SlingRuntimeObjectModelTest.java | 17 +++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/apache/sling/scripting/sightly/impl/engine/runtime/SlingRuntimeObjectModel.java b/src/main/java/org/apache/sling/scripting/sightly/impl/engine/runtime/SlingRuntimeObjectModel.java index 3f491e6..cfe9cca 100644 --- a/src/main/java/org/apache/sling/scripting/sightly/impl/engine/runtime/SlingRuntimeObjectModel.java +++ b/src/main/java/org/apache/sling/scripting/sightly/impl/engine/runtime/SlingRuntimeObjectModel.java @@ -26,6 +26,9 @@ public class SlingRuntimeObjectModel extends AbstractRuntimeObjectModel { @Override protected Object getProperty(Object target, Object propertyObj) { + if (target == null || propertyObj == null) { + return null; + } Object result = super.getProperty(target, propertyObj); if (result == null && target instanceof Adaptable) { ValueMap valueMap = ((Adaptable) target).adaptTo(ValueMap.class); diff --git a/src/test/java/org/apache/sling/scripting/sightly/impl/engine/runtime/SlingRuntimeObjectModelTest.java b/src/test/java/org/apache/sling/scripting/sightly/impl/engine/runtime/SlingRuntimeObjectModelTest.java index 8987d60..e396c2a 100644 --- a/src/test/java/org/apache/sling/scripting/sightly/impl/engine/runtime/SlingRuntimeObjectModelTest.java +++ b/src/test/java/org/apache/sling/scripting/sightly/impl/engine/runtime/SlingRuntimeObjectModelTest.java @@ -36,21 +36,30 @@ public class SlingRuntimeObjectModelTest { private SlingRuntimeObjectModel slingRuntimeObjectModel = new SlingRuntimeObjectModel(); @Test - public void getPropertyFromAdaptableWithField() throws Exception { + public void getPropertyFromAdaptableWithField() { assertEquals("Expected public fields to have priority over ValueMap adaptable's properties.", FieldTestMockAdaptable.test, slingRuntimeObjectModel.getProperty(new FieldTestMockAdaptable(), "test")); } @Test - public void getPropertyFromAdaptableWithMethod() throws Exception { + public void getPropertyFromAdaptableWithMethod() { assertEquals("Expected public methods to have priority over ValueMap adaptable's properties.", METHOD_VALUE, slingRuntimeObjectModel.getProperty(new MethodTestMockAdaptable(), "test")); - }@Test - public void getPropertyFromAdaptable() throws Exception { + } + + @Test + public void getPropertyFromAdaptable() { assertEquals("Expected to solve property from ValueMap returned by an adaptable.", VALUE_MAP_VALUE, slingRuntimeObjectModel.getProperty(new AdaptableTestMock(), "test")); } + @Test + public void nullChecks() { + assertNull(slingRuntimeObjectModel.getProperty(null, null)); + assertNull(slingRuntimeObjectModel.getProperty(this, null)); + assertNull(slingRuntimeObjectModel.getProperty(this, "")); + } + private abstract class MockAdaptable implements Adaptable { ValueMap getValueMap() { -- To stop receiving notification emails like this one, please contact ['"commits@sling.apache.org" <commits@sling.apache.org>'].