From 8699732c5ef07641842ae1dd68187139084b3483 Mon Sep 17 00:00:00 2001 From: Thomas Mortagne Date: Thu, 21 Nov 2024 15:53:30 +0100 Subject: [PATCH] XWIKI-22673: Syntax [[...]] in terminal page breaks rendering and indexing of content (cherry picked from commit 358cc4ce3224387006c0c469a33fe9487a70e761) --- .../AbstractResourceReferenceEntityReferenceResolver.java | 2 +- ...efaultResourceReferenceEntityReferenceResolverTest.java | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-xwiki/src/main/java/org/xwiki/rendering/internal/resolver/AbstractResourceReferenceEntityReferenceResolver.java b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-xwiki/src/main/java/org/xwiki/rendering/internal/resolver/AbstractResourceReferenceEntityReferenceResolver.java index 831b44cafafe..eb38594752a8 100644 --- a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-xwiki/src/main/java/org/xwiki/rendering/internal/resolver/AbstractResourceReferenceEntityReferenceResolver.java +++ b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-xwiki/src/main/java/org/xwiki/rendering/internal/resolver/AbstractResourceReferenceEntityReferenceResolver.java @@ -186,7 +186,7 @@ protected DocumentReference resolveDocumentReference(EntityReference sourceRefer new SpaceReference(reference.getName(), (SpaceReference) reference.getParent()); finalReference = new DocumentReference(defaultDocumentName, spaceReference); - if (trySpaceSibling + if (sourceReference != null && trySpaceSibling && trySpaceSiblingFallback(sourceReference, finalReference, baseReference, defaultDocumentName)) { // Try as a space sibling. DocumentReference siblingReference = diff --git a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-xwiki/src/test/java/org/xwiki/rendering/internal/resolver/DefaultResourceReferenceEntityReferenceResolverTest.java b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-xwiki/src/test/java/org/xwiki/rendering/internal/resolver/DefaultResourceReferenceEntityReferenceResolverTest.java index 9c18dae0c465..29c5e578334f 100644 --- a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-xwiki/src/test/java/org/xwiki/rendering/internal/resolver/DefaultResourceReferenceEntityReferenceResolverTest.java +++ b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-xwiki/src/test/java/org/xwiki/rendering/internal/resolver/DefaultResourceReferenceEntityReferenceResolverTest.java @@ -248,6 +248,13 @@ public void resolveUntypeDocument() throws ComponentLookupException assertEquals(new DocumentReference(CURRENT_WIKI, CURRENT_SPACE, PAGE), this.mocker.getComponentUnderTest().resolve(documentResource(PAGE, false), null)); + // When the reference cannot be parsed by the relative resolver + + assertEquals( + new DocumentReference(CURRENT_WIKI, + Arrays.asList(CURRENT_SPACE, CURRENT_SPACE, CURRENT_SPACE, CURRENT_PAGE), DEFAULT_PAGE), + this.mocker.getComponentUnderTest().resolve(documentResource("...", false), null)); + // When the page is current page assertEquals(new DocumentReference(CURRENT_WIKI, CURRENT_SPACE, CURRENT_PAGE),