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)