in src/main/java/org/apache/sling/discovery/commons/providers/spi/base/SyncTokenService.java [155:198]
private boolean storeMySyncToken(String syncTokenId) {
logger.trace("storeMySyncToken: start");
if (slingId == null) {
logger.info("storeMySyncToken: not yet activated (slingId is null)");
return false;
}
ResourceResolver resourceResolver = null;
try{
resourceResolver = getResourceResolver();
final Resource resource = ResourceHelper.getOrCreateResource(resourceResolver, getSyncTokenPath());
ModifiableValueMap syncTokens = resource.adaptTo(ModifiableValueMap.class);
boolean updateToken = false;
if (!syncTokens.containsKey(slingId)) {
updateToken = true;
} else {
Object existingToken = syncTokens.get(slingId);
if (existingToken==null || !existingToken.equals(syncTokenId)) {
updateToken = true;
}
}
if (updateToken) {
syncTokens.put(slingId, syncTokenId);
resourceResolver.commit();
logSilencer.infoOrDebug("storeMySyncToken-" + syncTokenId,
"storeMySyncToken: stored syncToken of slingId="+slingId+" as="+syncTokenId);
} else {
logSilencer.infoOrDebug("storeMySyncToken-" + syncTokenId,
"storeMySyncToken: syncToken was left unchanged for slingId="+slingId+" at="+syncTokenId);
}
return true;
} catch (LoginException e) {
logger.error("storeMySyncToken: could not login for storing my syncToken: "+e, e);
return false;
} catch (PersistenceException e) {
logger.error("storeMySyncToken: got PersistenceException while storing my syncToken"
+ " (my slingId=" + slingId + ", syncToken=" + syncTokenId + "): " + e , e);
return false;
} finally {
logger.trace("storeMySyncToken: end");
if (resourceResolver!=null) {
resourceResolver.close();
}
}
}