diff --git a/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11MessageFactoryTest.java b/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11MessageFactoryTest.java
index f5e76458..f1226287 100644
--- a/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11MessageFactoryTest.java
+++ b/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11MessageFactoryTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2006 the original author or authors.
+ * Copyright 2002-2009 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,17 @@
package org.springframework.ws.soap.axiom;
+import java.io.ByteArrayInputStream;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+
+import org.springframework.ws.WebServiceMessage;
import org.springframework.ws.WebServiceMessageFactory;
import org.springframework.ws.soap.soap11.AbstractSoap11MessageFactoryTestCase;
+import org.springframework.ws.transport.MockTransportInputStream;
+import org.springframework.ws.transport.TransportInputStream;
+import org.springframework.xml.transform.StringResult;
public class AxiomSoap11MessageFactoryTest extends AbstractSoap11MessageFactoryTestCase {
@@ -27,4 +36,45 @@ public class AxiomSoap11MessageFactoryTest extends AbstractSoap11MessageFactoryT
return factory;
}
+ public void testRepetitiveReadCaching() throws Exception {
+ AxiomSoapMessageFactory messageFactory = new AxiomSoapMessageFactory();
+ messageFactory.setPayloadCaching(true);
+ messageFactory.afterPropertiesSet();
+
+ String xml = "" +
+ "" +
+ "";
+ TransportInputStream tis = new MockTransportInputStream(new ByteArrayInputStream(xml.getBytes()));
+ WebServiceMessage message = messageFactory.createWebServiceMessage(tis);
+
+ Transformer transformer = TransformerFactory.newInstance().newTransformer();
+ StringResult result = new StringResult();
+ transformer.transform(message.getPayloadSource(), result);
+ transformer.transform(message.getPayloadSource(), result);
+ }
+
+ public void testRepetitiveReadNoCaching() throws Exception {
+ AxiomSoapMessageFactory messageFactory = new AxiomSoapMessageFactory();
+ messageFactory.setPayloadCaching(false);
+ messageFactory.afterPropertiesSet();
+
+ String xml = "" +
+ "" +
+ "";
+ TransportInputStream tis = new MockTransportInputStream(new ByteArrayInputStream(xml.getBytes()));
+ WebServiceMessage message = messageFactory.createWebServiceMessage(tis);
+
+ Transformer transformer = TransformerFactory.newInstance().newTransformer();
+ StringResult result = new StringResult();
+ transformer.transform(message.getPayloadSource(), result);
+ try {
+ transformer.transform(message.getPayloadSource(), result);
+ fail("TransformerException expected");
+ }
+ catch (TransformerException expected) {
+ // ignore
+ }
+ }
+
+
}
\ No newline at end of file