public final void handleFeedReload(IBookMark bookMark, IFeed interpretedFeed, IConditionalGet conditionalGet, boolean deleteConditionalGet, final IProgressMonitor monitor) {
fWriteLock.lock();
MergeResult mergeResult = null;
try {
/* Resolve reloaded Feed */
IFeed feed = bookMark.getFeedLinkReference().resolve();
/* Feed could have been deleted meanwhile! */
if (feed == null)
return;
/* Return early on cancellation */
if (monitor.isCanceled() || Owl.isShuttingDown())
return;
/* Copy over Properties to reloaded Feed to keep them */
Map<String, Serializable> feedProperties = feed.getProperties();
if (feedProperties != null) {
feedProperties.entrySet();
for (Map.Entry<String, Serializable> entry : feedProperties.entrySet())
interpretedFeed.setProperty(entry.getKey(), entry.getValue());
}
/* Return early on cancellation */
if (monitor.isCanceled() || Owl.isShuttingDown())
return;
/* Merge with existing */
mergeResult = feed.mergeAndCleanUp(interpretedFeed);
final List<INews> newNewsAdded = getNewNewsAdded(feed);
/* Return early on cancellation */
if (monitor.isCanceled() || Owl.isShuttingDown())
return;