Author: simonetripodi Date: Tue Jul 11 09:34:50 2017 New Revision: 1801580 URL: http://svn.apache.org/viewvc?rev=1801580&view=rev Log: SLING-6977 - Improve SCD compilation by suppressing warnings
verified array type conversion Added: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/resources/ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/resources/impl/ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/resources/impl/common/ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/resources/impl/common/SimpleReadableResourceTestCase.java (with props) Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/common/SimpleReadableResource.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/common/SimpleReadableResource.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/common/SimpleReadableResource.java?rev=1801580&r1=1801579&r2=1801580&view=diff ============================================================================== --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/common/SimpleReadableResource.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/common/SimpleReadableResource.java Tue Jul 11 09:34:50 2017 @@ -110,7 +110,7 @@ class SimpleReadableResource extends Abs return super.adaptTo(type); } - + @SuppressWarnings( "unchecked" ) private <ArrayType> ArrayType convertArray(Class<ArrayType> arrayType, Object[] array) { Object[] result = (Object[]) Array.newInstance(arrayType.getComponentType(), array.length); for (int i = 0; i < array.length; i++) { @@ -119,7 +119,7 @@ class SimpleReadableResource extends Abs } result[i] = array[i]; } - // TODO is this correct? result = ArrayType[], not ArrayType + // when invoking convertArray() method, ArrayType is checked that is an array type return (ArrayType) result; } } \ No newline at end of file Added: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/resources/impl/common/SimpleReadableResourceTestCase.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/resources/impl/common/SimpleReadableResourceTestCase.java?rev=1801580&view=auto ============================================================================== --- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/resources/impl/common/SimpleReadableResourceTestCase.java (added) +++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/resources/impl/common/SimpleReadableResourceTestCase.java Tue Jul 11 09:34:50 2017 @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.sling.distribution.resources.impl.common; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.mock; + +import java.util.HashMap; +import java.util.Map; + +import org.apache.sling.api.resource.Resource; +import org.apache.sling.api.resource.ResourceResolver; +import org.junit.Test; + +public class SimpleReadableResourceTestCase { + + @Test + public void verifyWrongTypeConversion() { + ResourceResolver resourceResolver = mock(ResourceResolver.class); + String resourcePath = ""; + Map<String, Object> properties = new HashMap<String, Object>(); + Object[] adapters = new Object[]{ + new String[]{ "hello Apache Sling" } + }; + Resource resource = new SimpleReadableResource(resourceResolver, resourcePath, properties, adapters); + + String[] result = resource.adaptTo(String[].class); + assertNotNull(result); + assertTrue(result.length == 1); + assertEquals( ((String[]) adapters[0])[0], result[0] ); + } + +} Propchange: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/resources/impl/common/SimpleReadableResourceTestCase.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/resources/impl/common/SimpleReadableResourceTestCase.java ------------------------------------------------------------------------------ svn:keywords = Date Author Id Revision HeadURL Propchange: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/resources/impl/common/SimpleReadableResourceTestCase.java ------------------------------------------------------------------------------ svn:mime-type = text/plain