You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ay...@apache.org on 2013/02/20 13:57:30 UTC

svn commit: r1448140 - in /cxf/branches/2.7.x-fixes: ./ api/src/main/java/org/apache/cxf/transport/AbstractObservable.java

Author: ay
Date: Wed Feb 20 12:57:29 2013
New Revision: 1448140

URL: http://svn.apache.org/r1448140
Log:
Merged revisions 1447862 via  svn merge from
https://svn.apache.org/repos/asf/cxf/trunk

........
  r1447862 | ay | 2013-02-19 19:40:43 +0100 (Tue, 19 Feb 2013) | 1 line
  
  [CXF-4838] Server-side EP may throw NPE when a request message arrives while the EP is being stopped ...
........

Modified:
    cxf/branches/2.7.x-fixes/   (props changed)
    cxf/branches/2.7.x-fixes/api/src/main/java/org/apache/cxf/transport/AbstractObservable.java

Propchange: cxf/branches/2.7.x-fixes/
            ('svn:mergeinfo' removed)

Propchange: cxf/branches/2.7.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.7.x-fixes/api/src/main/java/org/apache/cxf/transport/AbstractObservable.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/api/src/main/java/org/apache/cxf/transport/AbstractObservable.java?rev=1448140&r1=1448139&r2=1448140&view=diff
==============================================================================
--- cxf/branches/2.7.x-fixes/api/src/main/java/org/apache/cxf/transport/AbstractObservable.java (original)
+++ cxf/branches/2.7.x-fixes/api/src/main/java/org/apache/cxf/transport/AbstractObservable.java Wed Feb 20 12:57:29 2013
@@ -40,8 +40,9 @@ public abstract class AbstractObservable
     public synchronized void setMessageObserver(MessageObserver observer) {
         if (observer != incomingObserver) {
             MessageObserver old = incomingObserver;
-            incomingObserver = observer;
+            // the observer switch must take place before activation or after deactivation
             if (observer != null) {
+                incomingObserver = observer;
                 getLogger().fine("registering incoming observer: " + observer);
                 if (old == null) {
                     try {
@@ -56,6 +57,7 @@ public abstract class AbstractObservable
                     getLogger().fine("unregistering incoming observer: " + old);
                     deactivate();
                 }
+                incomingObserver = observer;
             }
         }
     }