Hello again
Moving on to XWiki 5.1 did the trick, except that I run into another
trouble ...
When my job is starting, I get a NPE:
Exception in thread "Job Manager daemon thread"
java.lang.NullPointerException
at
org.xwiki.job.internal.AbstractJob.jobStarting(AbstractJob.java:170)
at org.xwiki.job.internal.AbstractJob.run(AbstractJob.java:134)
at
org.xwiki.job.internal.DefaultJobManager.runJob(DefaultJobManager.java:131)
at
org.xwiki.job.internal.DefaultJobManager.run(DefaultJobManager.java:110)
at java.lang.Thread.run(Unknown Source)
It's on following "this.logger..." line in AbstractJob:
if (getStatus().getRequest().getId() != null) {
this.logger.info("Starting job of type [{}] with
identifier [{}]", getType(), getStatus().getRequest()
.getId());
} else {
I checked and getType() is not null. The other can't be. So could it be
that this.logger is null ?
Could it be again a pb of root component manager ?
BR,
Jeremie
2013/9/26 Jeremie BOUSQUET <[email protected]>
> Oups... ;)
>
> No I'm on 4.2, but I suppose I'll be on 5.x soon...
> Le 26 sept. 2013 18:52, "Thomas Mortagne" <[email protected]> a
> écrit :
>
> addJob(Job job) not addJob(String jobType, Request request) ;)
>>
>> But maybe you are not on 5.1 yet.
>>
>> On Thu, Sep 26, 2013 at 6:28 PM, Jeremie BOUSQUET
>> <[email protected]> wrote:
>> > 2013/9/26 Thomas Mortagne <[email protected]>
>> >>
>> >> On Thu, Sep 26, 2013 at 5:13 PM, Thomas Mortagne
>> >> <[email protected]> wrote:
>> >> > On Thu, Sep 26, 2013 at 4:40 PM, Jeremie BOUSQUET
>> >> > <[email protected]> wrote:
>> >> >> 2013/9/26 Thomas Mortagne <[email protected]>
>> >> >>
>> >> >>> On Thu, Sep 26, 2013 at 1:08 PM, Jeremie BOUSQUET
>> >> >>> <[email protected]> wrote:
>> >> >>> > 2013/9/26 Thomas Mortagne <[email protected]>
>> >> >>> >
>> >> >>> >> On Thu, Sep 26, 2013 at 11:20 AM, Jeremie BOUSQUET
>> >> >>> >> <[email protected]> wrote:
>> >> >>> >> > Hello,
>> >> >>> >> >
>> >> >>> >> > I'm trying to use the Job Module [1] for my own needs.
>> >> >>> >> > I know some of its APIs are marked as unstable, but well I
>> > wanted to
>> >> >>> give
>> >> >>> >> > it a try.
>> >> >>> >> >
>> >> >>> >> > I'm on a XWiki 4.5.2 instance currently.
>> >> >>> >> >
>> >> >>> >> > So I created some dummy interface:
>> >> >>> >> >
>> >> >>> >> > @Role
>> >> >>> >> > public interface ILoadingJob extends Job
>> >> >>> >> > {
>> >> >>> >> > }
>> >> >>> >>
>> >> >>> >> Job is already a @Role so I don't understand why override it
>> with
>> >> >>> >> ILoadingJob.
>> >> >>> >>
>> >> >>> >
>> >> >>> > I completely removed the ILoadingJob interface, but still the
>> same
>> > issue
>> >> >>> > occurs.
>> >> >>>
>> >> >>> Appart from this I did not seen anything wrong in your code. Are
>> you
>> >> >>> able to do this.componentManager.getInstance(Job.class,
>> >> >>> "mailarchivejob"); ?
>> >> >>>
>> >> >>
>> >> >> I added the line of code, that revealed a number of errors in my
>> > component.
>> >> >> I fixed them, and now this getInstance(...) appropriately returns a
>> >> >> LoadingJob object. I've put the code just before my code calling
>> >> >> executeJob().
>> >> >> But even after these corrections, I still get the same issue on
>> >> >> executeJob(). BTW, I have same problem when calling addJob().
>> >> >>
>> >> >>
>> >> >>>
>> >> >>> Is you jar installed as extension ?
>> >> >>>
>> >> >>
>> >> >> Yes it is.
>> >> >> As I'm currently using some SNAPSHOT version, I installed it once
>> with
>> > EM
>> >> >> (linked to a local nexus repository), and now I patch the jar under
>> >> >> $XWIKI_DATA_DIR/data/extensions/repository/..., during server
>> restart.
>> >> >
>> >> > That's it then, I re-checked the DefaultJobManager and it only look
>> at
>> >> > root component manager. Fixing it in 5.2RC1.
>> >>
>> >> In the meantime you can use addJob(Job).
>> >
>> > addJob(Job) has the same problem:
>> >
>> > org.xwiki.job.JobException: Failed to lookup any Job for role hint
>> > [mailarchivejob]
>> > at
>> >
>> org.xwiki.job.internal.DefaultJobManager.createJob(DefaultJobManager.java:185)
>> > ~[xwiki-commons-job-4.5.2.jar:na]
>> > at
>> >
>> org.xwiki.job.internal.DefaultJobManager.addJob(DefaultJobManager.java:208)
>> > ~[xwiki-commons-job-4.5.2.jar:na]
>> > at
>> >
>> org.xwiki.contrib.mailarchive.script.MailArchiveScriptService.createLoadingJob(MailArchiveScriptService.java:140)
>> >
>> [org.xwiki.contrib.mailarchive%253Axwiki-contrib-mailarchive-api-0.3-SNAPSHOT.jar:na]
>> >
>> >
>> >>
>> >>
>> >> >
>> >> >>
>> >> >>
>> >> >>>
>> >> >>> >
>> >> >>> >
>> >> >>> >>
>> >> >>> >> >
>> >> >>> >> > A Job implementation:
>> >> >>> >> >
>> >> >>> >> > @Component
>> >> >>> >> > @Named(LoadingJob.JOBTYPE)
>> >> >>> >> > public class LoadingJob extends AbstractJob<DefaultRequest>
>> > implements
>> >> >>> >> > ILoadingJob, Initializable
>> >> >>> >> > {
>> >> >>> >> > public static final String JOBTYPE = "mailarchivejob";
>> >> >>> >> >
>> >> >>> >> > // ...
>> >> >>> >> > }
>> >> >>> >> >
>> >> >>> >> > In debug mode, I run the following:
>> >> >>> >> >
>> >> >>> >> >
>> >> >>>
>> >
>> this.componentManager.getComponentDescriptorList(org.xwiki.job.Job.class)
>> >> >>> >> >
>> >> >>> >> > It returns:
>> >> >>> >> >
>> >> >>> >> > [implementation =
>> > [org.xwiki.contrib.mailarchive.internal.LoadingJob],
>> >> >>> >> > instantiation = [PER_LOOKUP], implementation =
>> >> >>> >> > [org.xwiki.extension.job.internal.UpgradePlanJob], ... ]
>> >> >>> >> >
>> >> >>> >> > So it seems OK.
>> >> >>> >> >
>> >> >>> >> > I have the following code to create and execute my Job:
>> >> >>> >> >
>> >> >>> >> > DefaultRequest request = new DefaultRequest();
>> >> >>> >> > request.setId("test");
>> >> >>> >> > request.setInteractive(false);
>> >> >>> >> > // ... other properties set
>> >> >>> >> > LoadingJob job = (LoadingJob)
>> >> >>> >> > jobManager.executeJob("mailarchivejob", request);
>> >> >>> >> >
>> >> >>> >> > But this code fails with following stack trace:
>> >> >>> >> >
>> >> >>> >> > org.xwiki.job.JobException: Failed to lookup any Job for role
>> > hint
>> >> >>> >> > [mailarchivejob]
>> >> >>> >> > at
>> >> >>> >> >
>> >> >>> >>
>> >> >>>
>> >
>> org.xwiki.job.internal.DefaultJobManager.createJob(DefaultJobManager.java:185)
>> >> >>> >> > at
>> >> >>> >> >
>> >> >>> >>
>> >> >>>
>> >
>> org.xwiki.job.internal.DefaultJobManager.addJob(DefaultJobManager.java:208)
>> >> >>> >> > at
>> >> >>> >> >
>> >> >>> >>
>> >> >>>
>> >
>> org.xwiki.job.internal.DefaultJobManager.executeJob(DefaultJobManager.java:194)
>> >> >>> >> > at
>> >> >>> >> >
>> >> >>> >>
>> >> >>>
>> >
>> org.xwiki.contrib.mailarchive.internal.MailArchiveScriptService.createLoadingJob(MailArchiveScriptService.java:112)
>> >> >>> >> > at
>> >> >>> >> >
>> >> >>> >>
>> >> >>>
>> >
>> org.xwiki.contrib.mailarchive.internal.MailArchiveScriptService.load(MailArchiveScriptService.java:94)
>> >> >>> >> > [...]
>> >> >>> >> > Caused by:
>> org.xwiki.component.manager.ComponentLookupException:
>> > Can't
>> >> >>> >> find
>> >> >>> >> > descriptor for the component [role = [interface
>> > org.xwiki.job.Job]
>> >> >>> hint =
>> >> >>> >> > [mailarchivejob]]
>> >> >>> >> > at
>> >> >>> >> >
>> >> >>> >>
>> >> >>>
>> >
>> org.xwiki.component.embed.EmbeddableComponentManager.getComponentInstance(EmbeddableComponentManager.java:355)
>> >> >>> >> > at
>> >> >>> >> >
>> >> >>> >>
>> >> >>>
>> >
>> org.xwiki.component.embed.EmbeddableComponentManager.getInstance(EmbeddableComponentManager.java:161)
>> >> >>> >> > at
>> >> >>> >> >
>> >> >>> >>
>> >> >>>
>> >
>> org.xwiki.job.internal.DefaultJobManager.createJob(DefaultJobManager.java:183)
>> >> >>> >> > [...]
>> >> >>> >> >
>> >> >>> >> > I also tried to manually register my custom Job component, in
>> the
>> >> >>> >> > initialize() of a side component (I checked that this code got
>> >> >>> executed
>> >> >>> >> > previously to job creation), but with no different result:
>> >> >>> >> >
>> >> >>> >> > // Register custom job
>> >> >>> >> >
>> >> >>> >> >
>> >> >>> >>
>> >> >>>
>> >
>> this.componentManager.registerComponent(this.componentManager.getComponentDescriptor(Job.class,
>> >> >>> >> > "mailarchivejob"));
>> >> >>> >> >
>> >> >>> >> > Do you see something wrong in my approach ?
>> >> >>> >> >
>> >> >>> >> > Thanks,
>> >> >>> >> > Jeremie
>> >> >>> >> > _______________________________________________
>> >> >>> >> > users mailing list
>> >> >>> >> > [email protected]
>> >> >>> >> > http://lists.xwiki.org/mailman/listinfo/users
>> >> >>> >>
>> >> >>> >>
>> >> >>> >>
>> >> >>> >> --
>> >> >>> >> Thomas Mortagne
>> >> >>> >> _______________________________________________
>> >> >>> >> users mailing list
>> >> >>> >> [email protected]
>> >> >>> >> http://lists.xwiki.org/mailman/listinfo/users
>> >> >>> >>
>> >> >>> > _______________________________________________
>> >> >>> > users mailing list
>> >> >>> > [email protected]
>> >> >>> > http://lists.xwiki.org/mailman/listinfo/users
>> >> >>>
>> >> >>>
>> >> >>>
>> >> >>> --
>> >> >>> Thomas Mortagne
>> >> >>> _______________________________________________
>> >> >>> users mailing list
>> >> >>> [email protected]
>> >> >>> http://lists.xwiki.org/mailman/listinfo/users
>> >> >>>
>> >> >> _______________________________________________
>> >> >> users mailing list
>> >> >> [email protected]
>> >> >> http://lists.xwiki.org/mailman/listinfo/users
>> >> >
>> >> >
>> >> >
>> >> > --
>> >> > Thomas Mortagne
>> >>
>> >>
>> >>
>> >> --
>> >> Thomas Mortagne
>> >> _______________________________________________
>> >> users mailing list
>> >> [email protected]
>> >> http://lists.xwiki.org/mailman/listinfo/users
>> > _______________________________________________
>> > users mailing list
>> > [email protected]
>> > http://lists.xwiki.org/mailman/listinfo/users
>>
>>
>>
>> --
>> Thomas Mortagne
>> _______________________________________________
>> users mailing list
>> [email protected]
>> http://lists.xwiki.org/mailman/listinfo/users
>>
>
_______________________________________________
users mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/users