United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-8000949 REGRESSION:Java 7's JavaBeans persistence ignoring the "transient" flag on properties
JDK-8000949 : REGRESSION:Java 7's JavaBeans persistence ignoring the "transient" flag on properties

Details
Type:
Backport
Submit Date:
2012-10-15
Status:
Closed
Updated Date:
2012-11-21
Project Name:
JDK
Resolved Date:
2012-10-16
Component:
client-libs
OS:
Sub-Component:
java.beans
CPU:
Priority:
P3
Resolution:
Fixed
Affected Versions:
7u6
Fixed Versions:
7u10 (b12)

Related Reports
Backport:

Sub Tasks

Description
Java 7's JavaBeans persistence ignoring the "transient" flag on properties

but XMLEncoder is not ignoring "transient".

Rather the JavaBeans Introspector is somehow dropping "transient" from 1 of 2 properties when composing the subclass BeanInfo.  In the parent class' BeanInfo "transient" is present on both properties.  In the subclass, however, it is only present on 1 of the 2 properties.  Java 6 doesn't have this issue.  

Have a BeanInfo class, InfoBeanInfo, for a base class, Info, that
marks the CustomDelegateFactory property (any capitalization thereof)
as transient and PropertyDescriptor.setValue( "transient", Boolean.TRUE ).

This is obeyed just fine in testing with the Java 6 Update 34 when
outputting instances of subclasses of Info.  This seems to be ignored
by the test JDK provided -- resulting in undesirable output.

Checked Java 7 Update 6 and it also seems to ignore this BeanInfo.
Note that although the classes reside in various packages, they're all in one directory 

The test execution is encapsulated in Test.main().

Java 6 Update 34 produces:

    INFO (BASE CLASS) TRANSIENT PROPERTIES:
    ---------------------------------------
    customDelegateFactory
    customDelegateFactoryClass

    SUMMARY (SUB-CLASS) TRANSIENT PROPERTIES:
    -----------------------------------------
    customDelegateFactory
    customDelegateFactoryClass

Java 7 Update 6 produces:

    INFO (BASE CLASS) TRANSIENT PROPERTIES:
    ---------------------------------------
    customDelegateFactory
    customDelegateFactoryClass

    SUMMARY (SUB-CLASS) TRANSIENT PROPERTIES:
    -----------------------------------------
    customDelegateFactoryClass

Note that 'customDelegateFactory' is transient in the Info class' BeanInfo in both cases, but is not transient in the Summary class' BeanInfo in Java 7.

                                    

Comments
verified on stt-52.ru.oracle.com with regression test java/beans/Introspector/Test7193977.java, jdk7u10b12
                                     
2012-10-20



Hardware and Software, Engineered to Work Together