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);
     }