Author: ffang
Date: Tue Sep 3 08:37:43 2013
New Revision: 1519601
URL: http://svn.apache.org/r1519601
Log:
[CXF-5189]Java transient modifier is ignored by JAXB databinding
Modified:
cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBContextInitializer.java
cxf/trunk/rt/databinding/jaxb/src/test/java/org/apache/cxf/jaxb/JAXBEncoderDecoderTest.java
cxf/trunk/rt/databinding/jaxb/src/test/java/org/apache/cxf/jaxb/OrderException.java
Modified:
cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBContextInitializer.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBContextInitializer.java?rev=1519601&r1=1519600&r2=1519601&view=diff
==============================================================================
---
cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBContextInitializer.java
(original)
+++
cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBContextInitializer.java
Tue Sep 3 08:37:43 2013
@@ -379,8 +379,9 @@ class JAXBContextInitializer extends Ser
* Checks if the field is accepted as a JAXB property.
*/
static boolean isFieldAccepted(Field field, XmlAccessType accessType) {
- // We only accept non static fields which are not marked @XmlTransient
- if (Modifier.isStatic(field.getModifiers()) ||
field.isAnnotationPresent(XmlTransient.class)) {
+ // We only accept non static fields which are not marked @XmlTransient
or has transient modifier
+ if (Modifier.isStatic(field.getModifiers()) ||
field.isAnnotationPresent(XmlTransient.class)
+ || Modifier.isTransient(field.getModifiers())) {
return false;
}
if (accessType == XmlAccessType.PUBLIC_MEMBER
Modified:
cxf/trunk/rt/databinding/jaxb/src/test/java/org/apache/cxf/jaxb/JAXBEncoderDecoderTest.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/jaxb/src/test/java/org/apache/cxf/jaxb/JAXBEncoderDecoderTest.java?rev=1519601&r1=1519600&r2=1519601&view=diff
==============================================================================
---
cxf/trunk/rt/databinding/jaxb/src/test/java/org/apache/cxf/jaxb/JAXBEncoderDecoderTest.java
(original)
+++
cxf/trunk/rt/databinding/jaxb/src/test/java/org/apache/cxf/jaxb/JAXBEncoderDecoderTest.java
Tue Sep 3 08:37:43 2013
@@ -472,6 +472,7 @@ public class JAXBEncoderDecoderTest exte
assertTrue(b < c);
assertTrue(c < d);
assertTrue(d < e);
+ assertTrue(bout.toString().indexOf("transientValue") < 0);
}
@Test
Modified:
cxf/trunk/rt/databinding/jaxb/src/test/java/org/apache/cxf/jaxb/OrderException.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/jaxb/src/test/java/org/apache/cxf/jaxb/OrderException.java?rev=1519601&r1=1519600&r2=1519601&view=diff
==============================================================================
---
cxf/trunk/rt/databinding/jaxb/src/test/java/org/apache/cxf/jaxb/OrderException.java
(original)
+++
cxf/trunk/rt/databinding/jaxb/src/test/java/org/apache/cxf/jaxb/OrderException.java
Tue Sep 3 08:37:43 2013
@@ -23,8 +23,11 @@ import javax.xml.bind.annotation.XmlAcce
@XmlAccessorOrder(XmlAccessOrder.ALPHABETICAL)
public class OrderException extends Exception {
+
private static final long serialVersionUID = 1L;
+ private transient int transientValue;
+
private String info1;
private String info2;
@@ -34,6 +37,7 @@ public class OrderException extends Exce
private int intVal;
private String detail;
+
public OrderException(String message) {
super(message);
@@ -81,4 +85,15 @@ public class OrderException extends Exce
this.detail = detail;
}
+
+ int getTransientValue() {
+ return transientValue;
+ }
+
+
+ void setTransientValue(int transientValue) {
+ this.transientValue = transientValue;
+ }
+
+
}