I don't understand why you use XWiki#getXWiki, this method job is to
initialize everything related to the request which you usually don't
care in a background thread (in as you can see in your case does not
work since you don't have an request in that thread).

A good helper when you need a usable XWikiContext wherether you are in
the XWikiContext provider as in:

@Inject
Provider<XWikiContext> xcontext;

it gives you the current context in a request thread and one suitable
for background thread otherwise.

On Mon, Sep 30, 2013 at 11:57 PM, Jeremie BOUSQUET
<[email protected]> wrote:
> Hello,
>
> I'm trying to save a document from inside a job [1] execution, as follows
> roughly:
>
> xwiki.getXWiki(context).saveDocument(doc, comment, context);
>
> Nothing really special ... It used to work (out of a job), but now it
> throws NPE:
>
> <trace>com.xpn.xwiki.XWiki.stripSegmentFromPath(XWiki.java:4725)</trace>
> <trace>com.xpn.xwiki.XWiki.getRequestWikiName(XWiki.java:566)</trace>
> <trace>com.xpn.xwiki.XWiki.getXWiki(XWiki.java:492)</trace>
> <trace>org.xwiki.contrib.mailarchive.internal.persistence.XWikiPersistence.saveAsUser(XWikiPersistence.java:678)</trace>
>
> Checking source code, it happens there (sorry, I roughly decompiled it):
>
> /*  560 */     if ("1".equals(Param("xwiki.virtual.usepath", "1"))) {
> /*  561 */       String uri = request.getRequestURI();
> /*  562 */       if (LOGGER.isDebugEnabled()) {
> /*  563 */         LOGGER.debug("Request uri is: " + uri);
> /*      */       }
> /*      */
> /*  566 */       uri = stripSegmentFromPath(uri, request.getContextPath());
>
> From the logs in DEBUG, I see:
>
> "Request uri is: null"
>
> ... which is kind of logical I believe, as I'm in a Thread triggered by
> another thread, and not directly in an http request.
>
> I'm not sure of what I should do from here ... And if my analysis is
> correct, or if something else is wrong. Maybe I should do something with
> ExecutionContext ...
>
> Thanks,
>
> BR,
> Jeremie
>
> [1] http://extensions.xwiki.org/xwiki/bin/view/Extension/Job+Module
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs



-- 
Thomas Mortagne
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to