You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ff...@apache.org on 2013/09/03 10:37:44 UTC

svn commit: r1519601 - in /cxf/trunk/rt/databinding/jaxb/src: main/java/org/apache/cxf/jaxb/JAXBContextInitializer.java test/java/org/apache/cxf/jaxb/JAXBEncoderDecoderTest.java test/java/org/apache/cxf/jaxb/OrderException.java

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;
+    }
+
+
 }