You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2007/09/26 14:02:06 UTC
svn commit: r579627 -
/incubator/servicemix/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/rss/FeedWriter.java
Author: gnodet
Date: Wed Sep 26 05:02:04 2007
New Revision: 579627
URL: http://svn.apache.org/viewvc?rev=579627&view=rev
Log:
SM-1061: Race condition in RSS feed-writer component
Modified:
incubator/servicemix/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/rss/FeedWriter.java
Modified: incubator/servicemix/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/rss/FeedWriter.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/rss/FeedWriter.java?rev=579627&r1=579626&r2=579627&view=diff
==============================================================================
--- incubator/servicemix/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/rss/FeedWriter.java (original)
+++ incubator/servicemix/trunk/common/servicemix-components/src/main/java/org/apache/servicemix/components/rss/FeedWriter.java Wed Sep 26 05:02:04 2007
@@ -67,7 +67,7 @@
private SourceTransformer sourceTransformer = new SourceTransformer();
private boolean loadOnStartup = true;
- public SyndFeed getCachedFeed() throws IllegalArgumentException, FeedException, IOException {
+ public synchronized SyndFeed getCachedFeed() throws IllegalArgumentException, FeedException, IOException {
if (cachedFeed == null) {
cachedFeed = loadOrCreateFeed();
}
@@ -187,9 +187,11 @@
protected void process(MessageExchange exchange, NormalizedMessage message) throws Exception {
SyndFeed feed = getCachedFeed();
- addMessageToFeed(feed, exchange, message);
- removeExpiredEntries(feed);
- writeFeed(feed, exchange, message);
+ synchronized (feed) {
+ addMessageToFeed(feed, exchange, message);
+ removeExpiredEntries(feed);
+ writeFeed(feed, exchange, message);
+ }
done(exchange);
}