Author: sseifert Date: Thu Aug 25 13:16:58 2016 New Revision: 1757681 URL: http://svn.apache.org/viewvc?rev=1757681&view=rev Log: SLING-5982 never return null for array types
Modified: sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/contextaware/config/impl/ConfigurationProxy.java sling/trunk/contrib/extensions/contextaware-config/impl/src/test/java/org/apache/sling/contextaware/config/impl/ConfigurationProxyTest.java Modified: sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/contextaware/config/impl/ConfigurationProxy.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/contextaware/config/impl/ConfigurationProxy.java?rev=1757681&r1=1757680&r2=1757681&view=diff ============================================================================== --- sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/contextaware/config/impl/ConfigurationProxy.java (original) +++ sling/trunk/contrib/extensions/contextaware-config/impl/src/main/java/org/apache/sling/contextaware/config/impl/ConfigurationProxy.java Thu Aug 25 13:16:58 2016 @@ -117,9 +117,14 @@ final class ConfigurationProxy { // detect default value Object defaultValue = method.getDefaultValue(); - if (defaultValue == null && targetType.isPrimitive()) { - // get default value for primitive data type (use hack via array) - defaultValue = Array.get(Array.newInstance(targetType, 1), 0); + if (defaultValue == null) { + if (isArray) { + defaultValue = Array.newInstance(componentType, 0); + } + else if (targetType.isPrimitive()) { + // get default value for primitive data type (use hack via array) + defaultValue = Array.get(Array.newInstance(targetType, 1), 0); + } } // get value from valuemap with given type/default value Modified: sling/trunk/contrib/extensions/contextaware-config/impl/src/test/java/org/apache/sling/contextaware/config/impl/ConfigurationProxyTest.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/contextaware-config/impl/src/test/java/org/apache/sling/contextaware/config/impl/ConfigurationProxyTest.java?rev=1757681&r1=1757680&r2=1757681&view=diff ============================================================================== --- sling/trunk/contrib/extensions/contextaware-config/impl/src/test/java/org/apache/sling/contextaware/config/impl/ConfigurationProxyTest.java (original) +++ sling/trunk/contrib/extensions/contextaware-config/impl/src/test/java/org/apache/sling/contextaware/config/impl/ConfigurationProxyTest.java Thu Aug 25 13:16:58 2016 @@ -31,7 +31,6 @@ import static org.apache.sling.contextaw import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import java.awt.geom.Rectangle2D; @@ -70,15 +69,15 @@ public class ConfigurationProxyTest { assertEquals(false, cfg.boolParam()); assertEquals(BOOL_DEFAULT, cfg.boolParamWithDefault()); - assertNull(cfg.stringArrayParam()); + assertArrayEquals(new String[0], cfg.stringArrayParam()); assertArrayEquals(new String[] {STRING_DEFAULT,STRING_DEFAULT_2}, cfg.stringArrayParamWithDefault()); - assertNull(cfg.intArrayParam()); + assertArrayEquals(new int[0], cfg.intArrayParam()); assertArrayEquals(new int[] {INT_DEFAULT,INT_DEFAULT_2}, cfg.intArrayParamWithDefault()); - assertNull(cfg.longArrayParam()); + assertArrayEquals(new long[0], cfg.longArrayParam()); assertArrayEquals(new long[] {LONG_DEFAULT,LONG_DEFAULT_2}, cfg.longArrayParamWithDefault()); - assertNull(cfg.doubleArrayParam()); + assertArrayEquals(new double[0],cfg.doubleArrayParam(), 0.001d); assertArrayEquals(new double[] {DOUBLE_DEFAULT,DOUBLE_DEFAULT_2}, cfg.doubleArrayParamWithDefault(), 0.001d); - assertNull(cfg.boolArrayParam()); + assertArrayEquals(new boolean[0], cfg.boolArrayParam()); assertArrayEquals(new boolean[] {BOOL_DEFAULT,BOOL_DEFAULT_2}, cfg.boolArrayParamWithDefault()); } @@ -89,14 +88,11 @@ public class ConfigurationProxyTest { assertNull(cfg.stringParam()); SimpleConfig subConfig = cfg.subConfig(); - assertNotNull(subConfig); assertNull(subConfig.stringParam()); assertEquals(5, subConfig.intParam()); assertFalse(subConfig.boolParam()); - ListConfig[] subListConfig = cfg.subListConfig(); - assertNotNull(subListConfig); - assertEquals(0, subListConfig.length); + assertArrayEquals(new ListConfig[0], cfg.subListConfig()); } @Test