[
https://issues.apache.org/jira/browse/SLING-4828?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14596069#comment-14596069
]
Tommaso Teofili commented on SLING-4828:
----------------------------------------
I'd suggest at least to replace the mentioned line with
{code}
Resource createdResource = ResourceHelper.getOrCreateResource(resolver,
path, properties);
if (createdResource == null) {
throw new PersistenceException("unable to persist resource " +
path);
}
{code}
and eventually with some kind of checksum control, so that the resulting
persisted properties are the very same of the properties passed to
{{ResourceUtil}} method, maybe that would need a different issue and should be
done in the resource API implementation rather than on the client code.
> JobManagerImpl job persisting doesn't check the created resource
> -----------------------------------------------------------------
>
> Key: SLING-4828
> URL: https://issues.apache.org/jira/browse/SLING-4828
> Project: Sling
> Issue Type: Bug
> Components: Extensions
> Affects Versions: Event 3.6.0
> Reporter: Tommaso Teofili
>
> {{JobManagerImpl#addJob}} persists the job to be started in {{writeJob}}
> however the result of {{ResourceHelper.getOrCreateResource}} is neither
> checked (!=null) nor used so it can be that the returned {{Resource}} is null
> or corrupted and therefore the job could not be persisted correctly, see
> https://github.com/apache/sling/blob/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java#L846.
> E.g. I've experienced some cases where a binary property of a JCR node ends
> up being null but that is only noticed when the job is executed, not when
> it's persisted.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)