On Fri, Apr 8, 2016 at 10:51 PM, Matthias Wegner <mic.mat.weg...@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/xwiki-rendering-macro-citations/src/main/java/org/xwiki/rendering/citations/CitationClassBuilder.java#L79 > > 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/xwiki-rendering-macro-citations/src/main/java/org/xwiki/rendering/citations/CitationClassBuilder.java#L53 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#HSpaceReferenceinsteadofSpacename 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/xwiki-rendering-macro-citations/pom.xml. 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@xwiki.org > http://lists.xwiki.org/mailman/listinfo/users -- Thomas Mortagne _______________________________________________ users mailing list users@xwiki.org http://lists.xwiki.org/mailman/listinfo/users