SLING-11357 : Fix nullable/notnull annotations
diff --git a/src/main/java/org/apache/sling/jcr/resource/internal/JcrListenerBaseConfig.java b/src/main/java/org/apache/sling/jcr/resource/internal/JcrListenerBaseConfig.java
index 2351efd..af26010 100644
--- a/src/main/java/org/apache/sling/jcr/resource/internal/JcrListenerBaseConfig.java
+++ b/src/main/java/org/apache/sling/jcr/resource/internal/JcrListenerBaseConfig.java
@@ -114,14 +114,14 @@
// exclude paths
final Set<String> excludePaths = config.getExcludedPaths().toStringSet();
if (!excludePaths.isEmpty()) {
- filter.setExcludedPaths(excludePaths.toArray(new String[excludePaths.size()]));
+ filter.setExcludedPaths(excludePaths.toArray(new String[0]));
}
// external
filter.setNoExternal(!config.includeExternal());
// types
- filter.setEventTypes(this.getTypes(config));
+ filter.setEventTypes(getTypes(config));
// nt:file handling
filter.withNodeTypeAggregate(new String[]{"nt:file"}, new String[]{"", "jcr:content"});
diff --git a/src/main/java/org/apache/sling/jcr/resource/internal/JcrModifiableValueMap.java b/src/main/java/org/apache/sling/jcr/resource/internal/JcrModifiableValueMap.java
index 2345899..7d1048f 100644
--- a/src/main/java/org/apache/sling/jcr/resource/internal/JcrModifiableValueMap.java
+++ b/src/main/java/org/apache/sling/jcr/resource/internal/JcrModifiableValueMap.java
@@ -28,6 +28,7 @@
import org.apache.jackrabbit.JcrConstants;
import org.apache.sling.api.resource.ModifiableValueMap;
import org.apache.sling.jcr.resource.internal.helper.JcrPropertyMapCacheEntry;
+import org.jetbrains.annotations.NotNull;
/**
* Modifiable value map implementation leveraging the base class
@@ -82,7 +83,7 @@
* @see java.util.Map#putAll(java.util.Map)
*/
@Override
- public void putAll(final Map<? extends String, ? extends Object> t) {
+ public void putAll(final @NotNull Map<? extends String, ? extends Object> t) {
if (t != null) {
final Iterator<?> i = t.entrySet().iterator();
while (i.hasNext()) {
diff --git a/src/main/java/org/apache/sling/jcr/resource/internal/JcrValueMap.java b/src/main/java/org/apache/sling/jcr/resource/internal/JcrValueMap.java
index ede96f4..81e0313 100644
--- a/src/main/java/org/apache/sling/jcr/resource/internal/JcrValueMap.java
+++ b/src/main/java/org/apache/sling/jcr/resource/internal/JcrValueMap.java
@@ -38,6 +38,7 @@
import org.apache.sling.api.resource.ModifiableValueMap;
import org.apache.sling.api.resource.ValueMap;
import org.apache.sling.jcr.resource.internal.helper.JcrPropertyMapCacheEntry;
+import org.jetbrains.annotations.NotNull;
/**
* This implementation of the value map allows to change
@@ -87,7 +88,7 @@
*/
@Override
@SuppressWarnings("unchecked")
- public <T> T get(final String aKey, final Class<T> type) {
+ public <T> T get(final @NotNull String aKey, final @NotNull Class<T> type) {
final String key = checkKey(aKey);
if (type == null) {
return (T) get(key);
@@ -105,7 +106,7 @@
*/
@Override
@SuppressWarnings("unchecked")
- public <T> T get(final String aKey, final T defaultValue) {
+ public <T> @NotNull T get(final @NotNull String aKey, final @NotNull T defaultValue) {
final String key = checkKey(aKey);
if (defaultValue == null) {
return (T) get(key);
@@ -173,7 +174,7 @@
* @see java.util.Map#entrySet()
*/
@Override
- public Set<java.util.Map.Entry<String, Object>> entrySet() {
+ public @NotNull Set<java.util.Map.Entry<String, Object>> entrySet() {
readFully();
final Map<String, Object> sourceMap;
if (cache.size() == valueCache.size()) {
@@ -188,7 +189,7 @@
* @see java.util.Map#keySet()
*/
@Override
- public Set<String> keySet() {
+ public @NotNull Set<String> keySet() {
readFully();
return Collections.unmodifiableSet(cache.keySet());
}
@@ -197,7 +198,7 @@
* @see java.util.Map#values()
*/
@Override
- public Collection<Object> values() {
+ public @NotNull Collection<Object> values() {
readFully();
final Map<String, Object> sourceMap;
if (cache.size() == valueCache.size()) {
@@ -434,7 +435,7 @@
* @see java.util.Map#putAll(java.util.Map)
*/
@Override
- public void putAll(final Map<? extends String, ? extends Object> t) {
+ public void putAll(final @NotNull Map<? extends String, ? extends Object> t) {
throw new UnsupportedOperationException();
}
diff --git a/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/BasicQueryLanguageProvider.java b/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/BasicQueryLanguageProvider.java
index 2bc3bfc..d3d2118 100644
--- a/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/BasicQueryLanguageProvider.java
+++ b/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/BasicQueryLanguageProvider.java
@@ -92,7 +92,7 @@
}
@Override
- public Iterator<ValueMap> queryResources(final ResolveContext<JcrProviderState> ctx,
+ public Iterator<ValueMap> queryResources(final @NotNull ResolveContext<JcrProviderState> ctx,
final String query,
final String language) {
final String queryLanguage = ArrayUtils.contains(getSupportedLanguages(ctx), language) ? language : DEFAULT_QUERY_LANGUAGE;
diff --git a/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrExternalizableInputStream.java b/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrExternalizableInputStream.java
index f9702e9..ba26490 100644
--- a/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrExternalizableInputStream.java
+++ b/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrExternalizableInputStream.java
@@ -20,6 +20,7 @@
import org.apache.sling.api.resource.external.ExternalizableInputStream;
+import org.jetbrains.annotations.NotNull;
import javax.jcr.Property;
import javax.jcr.RepositoryException;
@@ -74,7 +75,7 @@
}
@Override
- public URI getURI() {
+ public @NotNull URI getURI() {
return uri;
}
diff --git a/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrItemResource.java b/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrItemResource.java
index 20c4028..87ddd6f 100644
--- a/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrItemResource.java
+++ b/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrItemResource.java
@@ -33,6 +33,7 @@
import org.apache.sling.api.resource.ResourceMetadata;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.jcr.resource.api.JcrResourceConstants;
+import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -71,7 +72,7 @@
* @see org.apache.sling.api.resource.Resource#getResourceResolver()
*/
@Override
- public ResourceResolver getResourceResolver() {
+ public @NotNull ResourceResolver getResourceResolver() {
return resourceResolver;
}
@@ -79,7 +80,7 @@
* @see org.apache.sling.api.resource.Resource#getPath()
*/
@Override
- public String getPath() {
+ public @NotNull String getPath() {
if (version == null) {
return path;
} else if (version.contains(".")) {
@@ -93,7 +94,7 @@
* @see org.apache.sling.api.resource.Resource#getResourceMetadata()
*/
@Override
- public ResourceMetadata getResourceMetadata() {
+ public @NotNull ResourceMetadata getResourceMetadata() {
return metadata;
}
diff --git a/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrNodeResource.java b/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrNodeResource.java
index 912ffd0..ce94337 100644
--- a/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrNodeResource.java
+++ b/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrNodeResource.java
@@ -41,6 +41,7 @@
import org.apache.sling.jcr.resource.internal.JcrModifiableValueMap;
import org.apache.sling.jcr.resource.internal.JcrValueMap;
import org.apache.sling.jcr.resource.internal.NodeUtil;
+import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -85,7 +86,7 @@
* @see org.apache.sling.api.resource.Resource#getResourceType()
*/
@Override
- public String getResourceType() {
+ public @NotNull String getResourceType() {
if (this.resourceType == null) {
try {
this.resourceType = getResourceTypeForNode(getNode());
diff --git a/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrNodeResourceMetadata.java b/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrNodeResourceMetadata.java
index 155464b..3707603 100644
--- a/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrNodeResourceMetadata.java
+++ b/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrNodeResourceMetadata.java
@@ -39,6 +39,7 @@
import javax.jcr.ValueFormatException;
import org.apache.sling.api.resource.ResourceMetadata;
+import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -207,19 +208,19 @@
}
@Override
- public Set<Map.Entry<String, Object>> entrySet() {
+ public @NotNull Set<Map.Entry<String, Object>> entrySet() {
populate();
return super.entrySet();
}
@Override
- public Set<String> keySet() {
+ public @NotNull Set<String> keySet() {
populate();
return super.keySet();
}
@Override
- public Collection<Object> values() {
+ public @NotNull Collection<Object> values() {
populate();
return super.values();
}
diff --git a/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrPropertyResource.java b/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrPropertyResource.java
index 64daa80..e5f8284 100644
--- a/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrPropertyResource.java
+++ b/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrPropertyResource.java
@@ -36,6 +36,8 @@
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceMetadata;
import org.apache.sling.api.resource.ResourceResolver;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -66,11 +68,11 @@
this.getResourceMetadata().setContentLength(getContentLength(property));
}
- public String getResourceType() {
+ public @NotNull String getResourceType() {
return resourceType;
}
- public String getResourceSuperType() {
+ public @Nullable String getResourceSuperType() {
return null;
}
diff --git a/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrResourceProvider.java b/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrResourceProvider.java
index d9cbf5c..57713b4 100644
--- a/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrResourceProvider.java
+++ b/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrResourceProvider.java
@@ -187,7 +187,7 @@
}
@Override
- public void start(final ProviderContext ctx) {
+ public void start(final @NotNull ProviderContext ctx) {
super.start(ctx);
this.registerListeners();
}
@@ -311,8 +311,10 @@
}
@Override
- public void logout(final @NotNull JcrProviderState state) {
- state.logout();
+ public void logout(final @Nullable JcrProviderState state) {
+ if (state != null) {
+ state.logout();
+ }
}
@Override
@@ -321,7 +323,9 @@
}
@Override
- public Resource getResource(ResolveContext<JcrProviderState> ctx, String path, ResourceContext rCtx, Resource parent) {
+ @Nullable
+ public Resource getResource(@NotNull ResolveContext<JcrProviderState> ctx, @NotNull String path,
+ @NotNull ResourceContext rCtx, @Nullable Resource parent) {
try {
return ctx.getProviderState().getResourceFactory().createResource(ctx.getResourceResolver(), path, parent, rCtx.getResolveParameters());
} catch (RepositoryException e) {
@@ -330,7 +334,8 @@
}
@Override
- public Iterator<Resource> listChildren(ResolveContext<JcrProviderState> ctx, Resource parent) {
+ @Nullable
+ public Iterator<Resource> listChildren(@NotNull ResolveContext<JcrProviderState> ctx, @NotNull Resource parent) {
JcrItemResource<?> parentItemResource;
// short cut for known JCR resources
@@ -377,6 +382,7 @@
}
@Override
+ @NotNull
public Collection<String> getAttributeNames(final @NotNull ResolveContext<JcrProviderState> ctx) {
final Set<String> names = new HashSet<>();
final String[] sessionNames = ctx.getProviderState().getSession().getAttributeNames();
@@ -389,6 +395,7 @@
}
@Override
+ @Nullable
public Object getAttribute(final @NotNull ResolveContext<JcrProviderState> ctx, final @NotNull String name) {
if (isAttributeVisible(name)) {
if (ResourceResolverFactory.USER.equals(name)) {
@@ -400,6 +407,7 @@
}
@Override
+ @NotNull
public Resource create(final @NotNull ResolveContext<JcrProviderState> ctx, final String path, final Map<String, Object> properties) throws PersistenceException {
// check for node type
final Object nodeObj = (properties != null ? properties.get(JcrConstants.JCR_PRIMARYTYPE) : null);
@@ -599,15 +607,15 @@
@Override
public boolean copy(final @NotNull ResolveContext<JcrProviderState> ctx,
- final String srcAbsPath,
- final String destAbsPath) {
+ final @NotNull String srcAbsPath,
+ final @NotNull String destAbsPath) {
return false;
}
@Override
public boolean move(final @NotNull ResolveContext<JcrProviderState> ctx,
- final String srcAbsPath,
- final String destAbsPath) throws PersistenceException {
+ final @NotNull String srcAbsPath,
+ final @NotNull String destAbsPath) throws PersistenceException {
final String srcNodePath = srcAbsPath;
final String dstNodePath = destAbsPath + '/' + ResourceUtil.getName(srcAbsPath);
try {
diff --git a/src/test/java/org/apache/sling/jcr/resource/internal/helper/jcr/BinaryDownloadUriProviderTest.java b/src/test/java/org/apache/sling/jcr/resource/internal/helper/jcr/BinaryDownloadUriProviderTest.java
index c17f09f..e454745 100644
--- a/src/test/java/org/apache/sling/jcr/resource/internal/helper/jcr/BinaryDownloadUriProviderTest.java
+++ b/src/test/java/org/apache/sling/jcr/resource/internal/helper/jcr/BinaryDownloadUriProviderTest.java
@@ -41,6 +41,7 @@
import org.apache.sling.api.resource.external.URIProvider.Scope;
import org.apache.sling.testing.mock.sling.ResourceResolverType;
import org.apache.sling.testing.mock.sling.junit.SlingContext;
+import org.jetbrains.annotations.NotNull;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -80,7 +81,7 @@
public void testMockedProperty() throws RepositoryException, URISyntaxException {
uriProvider = new BinaryDownloadUriProvider(false) {
@Override
- protected Property getPrimaryProperty(Node node) {
+ protected @NotNull Property getPrimaryProperty(@NotNull Node node) {
return property;
}
};