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),