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 2012/03/20 17:27:48 UTC

svn commit: r1302979 - in /cxf/branches/2.4.x-fixes: ./ rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/ rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/persistence/ rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/persistence/jdbc/

Author: ay
Date: Tue Mar 20 16:27:48 2012
New Revision: 1302979

URL: http://svn.apache.org/viewvc?rev=1302979&view=rev
Log:
Merged revisions 1302966 via  svn merge from
https://svn.apache.org/repos/asf/cxf/branches/2.5.x-fixes

........
  r1302966 | ay | 2012-03-20 17:14:46 +0100 (Tue, 20 Mar 2012) | 9 lines
  
  Merged revisions 1300485 via  svn merge from
  https://svn.apache.org/repos/asf/cxf/trunk
  
  ........
    r1300485 | ay | 2012-03-14 10:40:00 +0100 (Wed, 14 Mar 2012) | 1 line
    
    improvement to CXF-4164 to utilize robust-mode to avoid persisting messages in ws-rm
  ........
  
........

Modified:
    cxf/branches/2.4.x-fixes/   (props changed)
    cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/Destination.java
    cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMCaptureInInterceptor.java
    cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/persistence/RMMessage.java
    cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStore.java

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

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

Modified: cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/Destination.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/Destination.java?rev=1302979&r1=1302978&r2=1302979&view=diff
==============================================================================
--- cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/Destination.java (original)
+++ cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/Destination.java Tue Mar 20 16:27:48 2012
@@ -33,6 +33,7 @@ import org.apache.cxf.io.CachedOutputStr
 import org.apache.cxf.message.Exchange;
 import org.apache.cxf.message.Message;
 import org.apache.cxf.message.MessageImpl;
+import org.apache.cxf.message.MessageUtils;
 import org.apache.cxf.transport.Conduit;
 import org.apache.cxf.ws.addressing.AddressingPropertiesImpl;
 import org.apache.cxf.ws.rm.persistence.RMMessage;
@@ -136,8 +137,10 @@ public class Destination extends Abstrac
 
         RMStore store = getReliableEndpoint().getManager().getStore();
         if (null != store) {
-            CachedOutputStream saved = 
-                (CachedOutputStream)message.get(RMMessageConstants.SAVED_CONTENT);
+            CachedOutputStream saved = null;
+            if (!MessageUtils.isTrue(message.getContextualProperty(Message.ROBUST_ONEWAY))) {
+                saved = (CachedOutputStream)message.get(RMMessageConstants.SAVED_CONTENT);
+            }
             RMMessage msg = new RMMessage();
             msg.setMessageNumber(sequenceType.getMessageNumber());
             msg.setContent(saved);

Modified: cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMCaptureInInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMCaptureInInterceptor.java?rev=1302979&r1=1302978&r2=1302979&view=diff
==============================================================================
--- cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMCaptureInInterceptor.java (original)
+++ cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMCaptureInInterceptor.java Tue Mar 20 16:27:48 2012
@@ -27,6 +27,7 @@ import org.apache.cxf.helpers.IOUtils;
 import org.apache.cxf.interceptor.Fault;
 import org.apache.cxf.io.CachedOutputStream;
 import org.apache.cxf.message.Message;
+import org.apache.cxf.message.MessageUtils;
 import org.apache.cxf.phase.Phase;
 
 /**
@@ -41,23 +42,26 @@ public class RMCaptureInInterceptor exte
 
     protected void handle(Message message) throws SequenceFault, RMException {
         LOG.entering(getClass().getName(), "handleMessage");
-        
-        InputStream is = message.getContent(InputStream.class);
-        if (is != null) {
-            CachedOutputStream saved = new CachedOutputStream();
-            try {
-                IOUtils.copy(is, saved);
+        // This message capturing mechanism will need to be changed at some point.
+        // Until then, we keep this interceptor here and utilize the robust
+        // option to avoid the unnecessary message capturing/caching.
+        if (!MessageUtils.isTrue(message.getContextualProperty(Message.ROBUST_ONEWAY))) {
+            InputStream is = message.getContent(InputStream.class);
+            if (is != null) {
+                CachedOutputStream saved = new CachedOutputStream();
+                try {
+                    IOUtils.copy(is, saved);
 
-                saved.flush();
-                is.close();
+                    saved.flush();
+                    is.close();
 
-                message.setContent(InputStream.class, saved.getInputStream());
-                LOG.fine("Capturing the original RM message");
-                message.put(RMMessageConstants.SAVED_CONTENT, saved);
-            } catch (Exception e) {
-                throw new Fault(e);
+                    message.setContent(InputStream.class, saved.getInputStream());
+                    LOG.fine("Capturing the original RM message");
+                    message.put(RMMessageConstants.SAVED_CONTENT, saved);
+                } catch (Exception e) {
+                    throw new Fault(e);
+                }
             }
         }
     }
-
 }

Modified: cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/persistence/RMMessage.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/persistence/RMMessage.java?rev=1302979&r1=1302978&r2=1302979&view=diff
==============================================================================
--- cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/persistence/RMMessage.java (original)
+++ cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/persistence/RMMessage.java Tue Mar 20 16:27:48 2012
@@ -55,7 +55,7 @@ public class RMMessage {
     public byte[] getContent() {
         byte[] bytes = null;
         try {
-            bytes = content.getBytes();
+            bytes = content != null ? content.getBytes() : null;
         } catch (IOException e) {
             // ignore and treat it as null
         }
@@ -120,7 +120,7 @@ public class RMMessage {
      * @throws IOException
      */
     public InputStream getInputStream() throws IOException {
-        return content.getInputStream();
+        return content != null ? content.getInputStream() : null;
     }
     
     /**
@@ -137,6 +137,6 @@ public class RMMessage {
      * @return
      */
     public int getSize() {
-        return content.size();
+        return content != null ? content.size() : -1;
     }
 }

Modified: cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStore.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStore.java?rev=1302979&r1=1302978&r2=1302979&view=diff
==============================================================================
--- cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStore.java (original)
+++ cxf/branches/2.4.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStore.java Tue Mar 20 16:27:48 2012
@@ -472,7 +472,9 @@ public class RMTxStore implements RMStor
             
             updateDestinationSequence(seq);
             
-            storeMessage(seq.getIdentifier(), msg, false);
+            if (msg.getCachedOutputStream() != null) {
+                storeMessage(seq.getIdentifier(), msg, false);
+            }
             
             commit();
             
@@ -490,7 +492,9 @@ public class RMTxStore implements RMStor
             
             updateSourceSequence(seq);
             
-            storeMessage(seq.getIdentifier(), msg, true);
+            if (msg.getCachedOutputStream() != null) {
+                storeMessage(seq.getIdentifier(), msg, true);
+            }
             
             commit();