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 2014/02/06 11:57:52 UTC
svn commit: r1565162 -
/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RetransmissionQueueImpl.java
Author: ay
Date: Thu Feb 6 10:57:51 2014
New Revision: 1565162
URL: http://svn.apache.org/r1565162
Log:
[CXF-5546] NPE may be thrown and logged during WS-RM's retransmission
Modified:
cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RetransmissionQueueImpl.java
Modified: cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RetransmissionQueueImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RetransmissionQueueImpl.java?rev=1565162&r1=1565161&r2=1565162&view=diff
==============================================================================
--- cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RetransmissionQueueImpl.java (original)
+++ cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RetransmissionQueueImpl.java Thu Feb 6 10:57:51 2014
@@ -19,13 +19,11 @@
package org.apache.cxf.ws.rm.soap;
-import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ConnectException;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
@@ -390,7 +388,7 @@ public class RetransmissionQueueImpl imp
}
final String address = to.getValue();
- LOG.fine("Resending to address: " + address);
+ LOG.log(Level.FINE, "Resending to address: {0}", address);
final ProtocolVariation protocol = RMContextUtils.getProtocolVariation(message);
final Endpoint reliableEndpoint = manager.getReliableEndpoint(message).getEndpoint(protocol);
@@ -455,15 +453,10 @@ public class RetransmissionQueueImpl imp
}
CachedOutputStream content = (CachedOutputStream)message
.get(RMMessageConstants.SAVED_CONTENT);
- InputStream bis = null;
if (null == content) {
- byte[] savedbytes = message.getContent(byte[].class);
- bis = new ByteArrayInputStream(savedbytes);
- if (LOG.isLoggable(Level.FINE)) {
- LOG.fine("Using saved byte array: " + Arrays.toString(savedbytes));
- }
+ LOG.log(Level.WARNING, "Assuming the message has been acknowledged and released, skipping resend.");
} else {
- bis = content.getInputStream();
+ InputStream bis = content.getInputStream();
if (LOG.isLoggable(Level.FINE)) {
if (content.size() < 65536) {
LOG.fine("Using saved output stream: "
@@ -472,17 +465,17 @@ public class RetransmissionQueueImpl imp
LOG.fine("Using saved output stream: ...");
}
}
- }
- // copy saved output stream to new output stream in chunks of 1024
- IOUtils.copyAndCloseInput(bis, os);
- os.flush();
- // closing the conduit this way will close the underlining stream that is os.
- c.close(message);
+ // copy saved output stream to new output stream in chunks of 1024
+ IOUtils.copyAndCloseInput(bis, os);
+ os.flush();
+ // closing the conduit this way will close the underlining stream that is os.
+ c.close(message);
+ }
} catch (ConnectException ex) {
//ignore, we'll just resent again later
} catch (IOException ex) {
- LOG.log(Level.SEVERE, "RESEND_FAILED_MSG", ex);
+ LOG.log(Level.WARNING, "RESEND_FAILED_MSG", ex);
}
}