You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by kw...@apache.org on 2022/02/15 09:50:53 UTC

[jackrabbit-filevault] branch master updated: releng: fix SonarQube issues

This is an automated email from the ASF dual-hosted git repository.

kwin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jackrabbit-filevault.git


The following commit(s) were added to refs/heads/master by this push:
     new 7a4d69c  releng: fix SonarQube issues
7a4d69c is described below

commit 7a4d69c5988d80cb9efe932ff1df051da46e1cf4
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Tue Feb 15 10:50:43 2022 +0100

    releng: fix SonarQube issues
---
 .../org/apache/jackrabbit/vault/fs/impl/io/DocViewImporter.java   | 8 +++++---
 .../org/apache/jackrabbit/vault/fs/impl/io/DocViewSAXHandler.java | 7 ++++---
 .../java/org/apache/jackrabbit/vault/util/DocViewProperty2.java   | 2 +-
 .../vault/validation/spi/impl/AccessControlValidator.java         | 2 +-
 .../vault/validation/spi/impl/DuplicateUuidValidator.java         | 8 +++++---
 .../vault/validation/spi/impl/OakIndexDefinitionValidator.java    | 2 +-
 .../vault/validation/spi/impl/PackageTypeValidator.java           | 4 ++--
 .../vault/validation/spi/impl/nodetype/NodeTypeValidator.java     | 5 +++--
 8 files changed, 22 insertions(+), 16 deletions(-)

diff --git a/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/DocViewImporter.java b/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/DocViewImporter.java
index b401928..752567e 100644
--- a/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/DocViewImporter.java
+++ b/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/DocViewImporter.java
@@ -827,10 +827,11 @@ public class DocViewImporter implements DocViewParserHandler {
             if (stack.checkForNode() && currentNode.hasNode(docViewNode.getName().toString())) {
                 existingNode = currentNode.getNode(docViewNode.getName().toString());
             }
-            if (docViewNode.getIdentifier().isPresent() && idConflictPolicy == IdConflictPolicy.FAIL) {
+            Optional<String> identifier = docViewNode.getIdentifier();
+            if (identifier.isPresent() && idConflictPolicy == IdConflictPolicy.FAIL) {
                 try {
                     // does uuid already exist in the repo?
-                    Node sameIdNode = session.getNodeByIdentifier(docViewNode.getIdentifier().get());
+                    Node sameIdNode = session.getNodeByIdentifier(identifier.get());
                     // edge-case: same node path -> uuid is kept
                     if (existingNode != null && existingNode.getPath().equals(sameIdNode.getPath())) {
                         log.debug("Node with existing identifier {} at {} is being updated without modifying its uuid", docViewNode.getIdentifier(), existingNode.getPath());
@@ -929,8 +930,9 @@ public class DocViewImporter implements DocViewParserHandler {
     private @Nullable Node updateExistingNode(@NotNull Node node, @NotNull DocViewNode2 ni, @NotNull ImportMode importMode) throws RepositoryException {
         VersioningState vs = new VersioningState(stack, node);
         Node updatedNode = null;
+        Optional<String> identifier = ni.getIdentifier();
         // try to set uuid via sysview import if it differs from existing one
-        if (ni.getIdentifier().isPresent() && !node.getIdentifier().equals(ni.getIdentifier().get()) && !"rep:root".equals(ni.getPrimaryType().orElse(""))) {
+        if (identifier.isPresent() && !node.getIdentifier().equals(identifier.get()) && !"rep:root".equals(ni.getPrimaryType().orElse(""))) {
             NodeStash stash = new NodeStash(session, node.getPath());
             stash.stash();
             Node parent = node.getParent();
diff --git a/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/DocViewSAXHandler.java b/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/DocViewSAXHandler.java
index 84a041a..e192a25 100644
--- a/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/DocViewSAXHandler.java
+++ b/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/DocViewSAXHandler.java
@@ -43,6 +43,7 @@ import org.apache.jackrabbit.util.Text;
 import org.apache.jackrabbit.vault.fs.io.DocViewParserHandler;
 import org.apache.jackrabbit.vault.util.DocViewNode2;
 import org.apache.jackrabbit.vault.util.DocViewProperty2;
+import org.apache.jackrabbit.vault.util.PathUtil;
 import org.apache.jackrabbit.vault.util.RejectingEntityDefaultHandler;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -305,8 +306,8 @@ public class DocViewSAXHandler extends RejectingEntityDefaultHandler implements
                 && uri.equals(NameConstants.JCR_ROOT.getNamespaceURI())) {
             // special case for root (https://issues.apache.org/jira/browse/JCR-4625)
             if (rootNodePath.equals("/")) {
-                    name = NameConstants.ROOT;
-                    index = 0;
+                name = NameConstants.ROOT;
+                index = 0;
             } else {
                 Map.Entry<String, Integer> nameAndIndex = getNameAndIndex(Text.getName(rootNodePath));
                 index = nameAndIndex.getValue();
@@ -328,7 +329,7 @@ public class DocViewSAXHandler extends RejectingEntityDefaultHandler implements
                     // root node element name should take precedence of root node name derived from path
                     currentPath = Text.getRelativeParent(rootNodePath, 1);
                 }
-                currentPath = currentPath + "/" + npResolver.getJCRName(name);
+                currentPath = PathUtil.append(currentPath, npResolver.getJCRName(name));
             } catch (NamespaceException e) {
                 throw new SAXException("No prefix defined for namespace uri '" + uri + "' used in node name '" + nameAndIndex.getKey() + "'", e);
             } catch (IllegalArgumentException e) {
diff --git a/vault-core/src/main/java/org/apache/jackrabbit/vault/util/DocViewProperty2.java b/vault-core/src/main/java/org/apache/jackrabbit/vault/util/DocViewProperty2.java
index f8358e8..a9cb27a 100644
--- a/vault-core/src/main/java/org/apache/jackrabbit/vault/util/DocViewProperty2.java
+++ b/vault-core/src/main/java/org/apache/jackrabbit/vault/util/DocViewProperty2.java
@@ -541,7 +541,7 @@ public class DocViewProperty2 {
             return true;
         } else {
             Value v = prop == null ? null : prop.getValue();
-            if (type == PropertyType.BINARY) {
+            if (v != null && type == PropertyType.BINARY) {
                 return applyBinary(node, v);
             }
             if (v == null || !v.getString().equals(values.get(0))) {
diff --git a/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/AccessControlValidator.java b/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/AccessControlValidator.java
index 1397fb3..28441e2 100644
--- a/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/AccessControlValidator.java
+++ b/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/AccessControlValidator.java
@@ -64,7 +64,7 @@ public class AccessControlValidator implements DocumentViewXmlValidator {
     @Override
     public @Nullable Collection<ValidationMessage> validate(@NotNull DocViewNode2 node, @NotNull NodeContext nodeContext,
             boolean isRoot) {
-        if (node.getPrimaryType().isPresent() && ACL_MANAGEMENT.isACLNodeType(node.getPrimaryType().get())) {
+        if (ACL_MANAGEMENT.isACLNodeType(node.getPrimaryType().orElse(""))) {
             hasFoundACLNode = true;
             if (accessControlHandling == AccessControlHandling.IGNORE || accessControlHandling == AccessControlHandling.CLEAR) {
                 return Collections.singleton(new ValidationMessage(severity, String.format(MESSAGE_IGNORED_ACCESS_CONTROL_LIST, accessControlHandling)));
diff --git a/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/DuplicateUuidValidator.java b/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/DuplicateUuidValidator.java
index 6b9b498..dacf7b7 100644
--- a/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/DuplicateUuidValidator.java
+++ b/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/DuplicateUuidValidator.java
@@ -20,6 +20,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Optional;
 
 import org.apache.jackrabbit.vault.fs.api.WorkspaceFilter;
 import org.apache.jackrabbit.vault.util.DocViewNode2;
@@ -50,10 +51,11 @@ public class DuplicateUuidValidator implements DocumentViewXmlValidator {
 
     @Override
     public Collection<ValidationMessage> validate(@NotNull DocViewNode2 node, @NotNull NodeContext nodeContext, boolean isRoot) {
-        if (node.getIdentifier().isPresent() && filter.contains(nodeContext.getNodePath())) {
-            String duplicateUuidPath = uuidsAndPaths.put(node.getIdentifier().get(), nodeContext.getNodePath());
+        Optional<String> identifier = node.getIdentifier();
+        if (identifier.isPresent() && filter.contains(nodeContext.getNodePath())) {
+            String duplicateUuidPath = uuidsAndPaths.put(identifier.get(), nodeContext.getNodePath());
             if (duplicateUuidPath != null) {
-                return Collections.singleton(new ValidationMessage(severity, String.format(MESSAGE_DUPLICATE_UUID, node.getIdentifier().get(), duplicateUuidPath, nodeContext.getNodePath())));
+                return Collections.singleton(new ValidationMessage(severity, String.format(MESSAGE_DUPLICATE_UUID, identifier.get(), duplicateUuidPath, nodeContext.getNodePath())));
             }
         }
         return null;
diff --git a/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/OakIndexDefinitionValidator.java b/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/OakIndexDefinitionValidator.java
index 37d767a..b7c9fea 100644
--- a/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/OakIndexDefinitionValidator.java
+++ b/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/OakIndexDefinitionValidator.java
@@ -77,7 +77,7 @@ public final class OakIndexDefinitionValidator implements FilterValidator, Docum
     @Override
     public @Nullable Collection<ValidationMessage> validate(@NotNull DocViewNode2 node, @NotNull NodeContext nodeContext, boolean isRoot) {
         ValidationMessage violation = null;
-        if (node.getPrimaryType().isPresent() && IndexConstants.INDEX_DEFINITIONS_NODE_TYPE.equals(node.getPrimaryType().get())) {
+        if (IndexConstants.INDEX_DEFINITIONS_NODE_TYPE.equals(node.getPrimaryType().orElse(""))) {
             violation = new ValidationMessage(defaultMessageSeverity, String.format(MESSAGE_INDEX_AT_NODE, packageRootPathOfNotAllowedIndexDefinition));
         }
         return violation != null ? Collections.singleton(violation) : null;
diff --git a/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/PackageTypeValidator.java b/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/PackageTypeValidator.java
index a123363..334553a 100644
--- a/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/PackageTypeValidator.java
+++ b/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/PackageTypeValidator.java
@@ -270,12 +270,12 @@ public final class PackageTypeValidator implements NodePathValidator, DocumentVi
         case CONTENT:
         case APPLICATION:
             // is it sling:OsgiConfig node?
-            if (node.getPrimaryType().isPresent() && NODETYPE_SLING_OSGI_CONFIG.equals(node.getPrimaryType().get()) && isOsgiBundleOrConfigurationNode(nodeContext.getNodePath(), false)) {
+            if (node.getPrimaryType().isPresent() && NODETYPE_SLING_OSGI_CONFIG.equals(node.getPrimaryType().orElse("")) && isOsgiBundleOrConfigurationNode(nodeContext.getNodePath(), false)) {
                 messages.add(new ValidationMessage(severity, String.format(MESSAGE_NO_OSGI_BUNDLE_OR_CONFIG_ALLOWED, type)));
             }
             break;
         case CONTAINER:
-            if (node.getPrimaryType().isPresent() && NODETYPE_SLING_OSGI_CONFIG.equals(node.getPrimaryType().get()) && isOsgiBundleOrConfigurationNode(nodeContext.getNodePath(), false)) {
+            if (node.getPrimaryType().isPresent() && NODETYPE_SLING_OSGI_CONFIG.equals(node.getPrimaryType().orElse("")) && isOsgiBundleOrConfigurationNode(nodeContext.getNodePath(), false)) {
                 validContainerNodePaths.add(nodeContext.getNodePath());
             }
             break;
diff --git a/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/nodetype/NodeTypeValidator.java b/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/nodetype/NodeTypeValidator.java
index bc527b0..cca7bc2 100644
--- a/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/nodetype/NodeTypeValidator.java
+++ b/vault-validation/src/main/java/org/apache/jackrabbit/vault/validation/spi/impl/nodetype/NodeTypeValidator.java
@@ -110,7 +110,8 @@ public class NodeTypeValidator implements DocumentViewXmlValidator, JcrPathValid
     public @Nullable Collection<ValidationMessage> validate(@NotNull DocViewNode2 node, @NotNull NodeContext nodeContext,
             boolean isRoot) {
 
-        if (!node.getPrimaryType().isPresent()) {
+        Optional<String> primaryType = node.getPrimaryType();
+        if (!primaryType.isPresent()) {
             // only an issue if contained in the filter
             // if other properties are set this node is not only used for ordering purposes
             if (filter.contains(nodeContext.getNodePath()) && !node.getProperties().isEmpty()) {
@@ -122,7 +123,7 @@ public class NodeTypeValidator implements DocumentViewXmlValidator, JcrPathValid
             }
         }
         Collection<ValidationMessage> messages = new LinkedList<>();
-        messages.addAll(getOrCreateNewNode(nodeContext, false, isImplicit(nodeContext.getNodePath()), false, node.getPrimaryType().get(), node.getMixinTypes().toArray(new String[0])));
+        messages.addAll(getOrCreateNewNode(nodeContext, false, isImplicit(nodeContext.getNodePath()), false, primaryType.get(), node.getMixinTypes().toArray(new String[0])));
 
         for (DocViewProperty2 property : node.getProperties()) {
             try {