You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Julian Reschke (Jira)" <ji...@apache.org> on 2024/08/08 06:06:00 UTC

[jira] [Created] (JCRVLT-767) vlt: potential incorrect identifier comparison

Julian Reschke created JCRVLT-767:
-------------------------------------

             Summary: vlt: potential incorrect identifier comparison
                 Key: JCRVLT-767
                 URL: https://issues.apache.org/jira/browse/JCRVLT-767
             Project: Jackrabbit FileVault
          Issue Type: Bug
          Components: vlt
            Reporter: Julian Reschke


In https://github.com/apache/jackrabbit-filevault/blob/931ceef98513167af3218b773d9213e123a2f52d/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/DocViewImporter.java#L993-L1007

{noformat}
        if (identifier.isPresent() && !node.getIdentifier().equals(identifier.get()) && !"rep:root".equals(ni.getPrimaryType().orElse(""))) {
            long startTime = System.currentTimeMillis();
            String previousIdentifier = node.getIdentifier();
            log.debug("Node stashing for {} starting, existing identifier: {}, new identifier: {}, import mode: {}",
                    node.getPath(), previousIdentifier, identifier.get(), importMode);
{noformat}

However, Node.getIdentifer() will always be non-null - even for nodes without mix:referenceable.

This means that we go into stashing although we don't have to.

Changing the first line to 

{noformat}
        if (identifier.isPresent() && !identifier.get().equals(node.getIdentifier()) && !"rep:root".equals(ni.getPrimaryType().orElse(""))) {
{noformat}

and FV tests still pass.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)