[ 
https://issues.apache.org/jira/browse/JCRVLT-767?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17871883#comment-17871883
 ] 

Julian Reschke commented on JCRVLT-767:
---------------------------------------

This

{noformat}
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 3572276b..a6e27742 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
@@ -989,8 +989,16 @@ public class DocViewImporter implements 
DocViewParserHandler {
         VersioningState vs = new VersioningState(stack, node);
         Node updatedNode = null;
         Optional<String> identifier = ni.getIdentifier();
+
+        String nodeUUID = null;
+        try {
+            nodeUUID = node.getUUID();
+        } catch (RepositoryException ex) {
+            // node not referenceable
+        }
+
         // try to set uuid via sysview import if it differs from existing one
-        if (identifier.isPresent() && 
!node.getIdentifier().equals(identifier.get()) && 
!"rep:root".equals(ni.getPrimaryType().orElse(""))) {
+        if (identifier.isPresent() && !identifier.get().equals(nodeUUID) && 
!"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: {}",
{noformat}

would fix is and still passes tests.

> 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
>            Priority: Minor
>
> 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.



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

Reply via email to