You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by em...@apache.org on 2018/01/29 14:06:57 UTC
[cxf] 02/02: [CXF-7520]:Fix DecoupledJMSTests
This is an automated email from the ASF dual-hosted git repository.
ema pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git
commit bbe2ddf81f05a8b69ea5fdc176488c1c5412555e
Author: Jim Ma <em...@apache.org>
AuthorDate: Fri Jan 26 19:03:32 2018 +0800
[CXF-7520]:Fix DecoupledJMSTests
---
.../java/org/apache/cxf/jaxb/JAXBDataBinding.java | 8 +++++++-
.../org/apache/cxf/jaxb/io/DataWriterImpl.java | 3 +--
.../apache/cxf/ws/addressing/soap/MAPCodec.java | 4 +++-
.../apache/cxf/testutil/common/ServerLauncher.java | 23 +++++++++++++---------
4 files changed, 25 insertions(+), 13 deletions(-)
diff --git a/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java b/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java
index 98e0635..20ab5c2 100644
--- a/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java
+++ b/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java
@@ -243,13 +243,14 @@ public class JAXBDataBinding extends AbstractInterceptorProvidingDataBinding
this();
setContext(context);
}
-
+
public JAXBContext getContext() {
return context;
}
public final void setContext(JAXBContext ctx) {
context = ctx;
+ //create default MininumEscapeHandler
escapeHandler = JAXBUtils.createMininumEscapeHandler(ctx.getClass());
}
@@ -257,6 +258,11 @@ public class JAXBDataBinding extends AbstractInterceptorProvidingDataBinding
return escapeHandler;
}
+ public void setEscapeHandler(Object handler) {
+ escapeHandler = handler;
+
+ }
+
@SuppressWarnings("unchecked")
public <T> DataWriter<T> createWriter(Class<T> c) {
diff --git a/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/io/DataWriterImpl.java b/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/io/DataWriterImpl.java
index db7c424..b342c32 100644
--- a/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/io/DataWriterImpl.java
+++ b/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/io/DataWriterImpl.java
@@ -135,11 +135,10 @@ public class DataWriterImpl<T> extends JAXBDataBase implements DataWriter<T> {
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.FALSE);
marshaller.setListener(databinding.getMarshallerListener());
- if (noEscape) {
+ if (noEscape || databinding.getEscapeHandler() == null) {
JAXBUtils.setNoEscapeHandler(marshaller);
} else {
JAXBUtils.setEscapeHandler(marshaller, databinding.getEscapeHandler());
-
}
if (setEventHandler) {
diff --git a/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java b/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java
index 4967467..f134814 100644
--- a/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java
+++ b/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java
@@ -715,8 +715,10 @@ public class MAPCodec extends AbstractSoapInterceptor {
Class<T> clz,
JAXBContext ctx,
boolean mustUnderstand) throws JAXBException {
+ JAXBDataBinding jaxbDataBinding = new JAXBDataBinding(ctx);
+ jaxbDataBinding.setEscapeHandler(null);
SoapHeader h = new SoapHeader(qname, new JAXBElement<T>(qname, clz, value),
- new JAXBDataBinding(ctx));
+ jaxbDataBinding);
h.setMustUnderstand(mustUnderstand);
message.getHeaders().add(h);
}
diff --git a/testutils/src/main/java/org/apache/cxf/testutil/common/ServerLauncher.java b/testutils/src/main/java/org/apache/cxf/testutil/common/ServerLauncher.java
index ed2f0bf..873c40f 100644
--- a/testutils/src/main/java/org/apache/cxf/testutil/common/ServerLauncher.java
+++ b/testutils/src/main/java/org/apache/cxf/testutil/common/ServerLauncher.java
@@ -30,6 +30,7 @@ import java.net.URISyntaxException;
import java.net.URL;
import java.net.URLClassLoader;
import java.nio.file.Files;
+import java.nio.file.NoSuchFileException;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.HashMap;
@@ -287,17 +288,21 @@ public class ServerLauncher {
try {
try {
os = Files.newOutputStream(Paths.get(outputDir + className + ".out"));
- } catch (FileNotFoundException fex) {
- outputDir = System.getProperty("basedir");
- if (outputDir == null) {
- outputDir = "target/surefire-reports/";
+ } catch (IOException ioe) {
+ if (ioe instanceof FileNotFoundException || ioe instanceof NoSuchFileException) {
+ outputDir = System.getProperty("basedir");
+ if (outputDir == null) {
+ outputDir = "target/surefire-reports/";
+ } else {
+ outputDir += "/target/surefire-reports/";
+ }
+
+ File file = new File(outputDir);
+ file.mkdirs();
+ os = Files.newOutputStream(Paths.get(outputDir + className + ".out"));
} else {
- outputDir += "/target/surefire-reports/";
+ throw ioe;
}
-
- File file = new File(outputDir);
- file.mkdirs();
- os = Files.newOutputStream(Paths.get(outputDir + className + ".out"));
}
} catch (IOException ex) {
if (!ex.getMessage().contains("Stream closed")) {
--
To stop receiving notification emails like this one, please contact
ema@apache.org.