[
https://issues.apache.org/jira/browse/SLING-9906?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17276443#comment-17276443
]
Stefan Egli commented on SLING-9906:
------------------------------------
[~cziegeler], thx for the review! I was actually intending to handle the
BundleEvent and then thought hooking into configurationChanged would be enough
(as that is invoked on PROPERTIES_CHANGED TopologyEvent - which is triggered if
a bundle is activated that exposes a job consumer/executor). But that indeed
might not be enough as the class might be in another bundle for example.
So I've now added handling of BundleEvent explicitly
[here|https://github.com/apache/sling-org-apache-sling-event/pull/8/commits/f24618bf7080f8b66c4cc0779b9f1e27c8a18964]
> Avoid retrying to load jobs if classes are missing
> --------------------------------------------------
>
> Key: SLING-9906
> URL: https://issues.apache.org/jira/browse/SLING-9906
> Project: Sling
> Issue Type: Improvement
> Components: Event
> Reporter: Carsten Ziegeler
> Assignee: Stefan Egli
> Priority: Major
> Fix For: Event 4.2.14
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> When a Sling job is tried to be loaded, it might reference public api classes
> provided by bundles - although that is a bad pattern that should be avoid,
> sometimes this is used.
> While the job engine does not try to reload those jobs for execution - unless
> such a new job is created (which is unlikely as the class is missing), the
> re-assigning of jobs from a removed instance to a new one suffers from the
> same problem. And that is retried over and over again.
> So there are probably several possible improvements:
> - make sure that jobs are not reloaded when public classes are missing during
> job execution (unless bundles have changed)
> - reduce log output to a log statement (except of stack trace) if
> classloading for jobs fails
> - change re-assigning of jobs to not require classes to be available. This
> can probably be solved by using ResourceResolver.move
--
This message was sent by Atlassian Jira
(v8.3.4#803005)