On Fri, Apr 8, 2016 at 10:51 PM, Matthias Wegner <mic.mat.wegner(a)web.de> wrote:
Hi Users,
i programmed two years ago the Citation-Extension at
https://github.com/matthiaw/xwiki-rendering-macro-citations.
Now i found a bug in XWiki 8.x when i add on different pages the
CitationClass-Object. There is a null-pointer-exception at Line 79, see
https://github.com/matthiaw/xwiki-rendering-macro-citations/blob/master/xwi…
The Problem is that all Documents with the custom-object (doc in line 77)
are found, but the method returns an empty null-list for nested documents.
The Macro works when the Document with added XWiki.CitationClass-Objects is
NOT nested. But when it is nested then the reference looks like
Parent\.Child.WebHome. Is the Backlash the Problem? And when yes, where does
it come from?
"Parent\.Child.WebHome" means space "Parent\.Child" and page
"WebHome"
so it looks like the code that created the DocumentReference given to
buildComponents is wrong if its supported to be targeting page with
space "Parent", subspace "Child" and page "WebHome".
From what I could find the issue is probably in
https://github.com/matthiaw/xwiki-rendering-macro-citations/blob/master/xwi…
because doc.space meaning moved from unique space name in a wold were
there was only one level of space to space reference ("Parent.Child"
in your case). It would be much simpler to request doc.fullName
instead and use a "current "DocumentReferenceResolver to create the
DocumentReference for you (all that is compatible with 5.3). This is
indeed the main breaking change that was done when implementing nested
spaces.
Something like:
@Inject
@Named("current")
private DocumentReferenceResolver resolver;
@Override
public List<DocumentReference> getDocumentReferences() {
List<DocumentReference> references = new
ArrayList<DocumentReference>();
try {
Query query = queryManager.createQuery("SELECT doc.fullName
FROM Document doc, doc.object(" + Constants.SPACE + "." +
Citation.CLASS + "Class) AS obj", Query.XWQL);
List<Object[]> results = query.execute();
for (Object[] result : results) {
references.add(resolver.resolve((String) result[0]);
}
} catch (Exception e) {
e.printStackTrace();
}
return references;
}
See
http://www.xwiki.org/xwiki/bin/view/ReleaseNotes/ReleaseNotesXWiki72#HSpace…
for more details.
You have any clue what i can do? Is that a bug or a mistake?
Unrelated note: Its not a good idea to depend on a SNAPSHOT version in
https://github.com/matthiaw/xwiki-rendering-macro-citations/blob/master/xwi….
You should put 5.3 instead since right now it's impossible to build
your module (5.3-SNAPSHOT does not exist anymore).
Regards,
Matthias
--
View this message in context:
http://xwiki.475771.n2.nabble.com/Problem-in-Extension-tp7598895.html
Sent from the XWiki- Users mailing list archive at
Nabble.com.
_______________________________________________
users mailing list
users(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/users
--
Thomas Mortagne