Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-7193977

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

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P3
    • Resolution: Fixed
    • Affects Version/s: 7u6
    • Fix Version/s: 8
    • Component/s: client-libs
    • Labels:
    • Subcomponent:
    • Introduced In Version:
      7
    • Resolved In Build:
      b58
    • CPU:
      x86
    • OS:
      windows_7

      Backports

        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.

          Attachments

            Issue Links

              Activity

                People

                Assignee:
                malenkov Sergey Malenkov (Inactive)
                Reporter:
                tyao Ting-Yun Ingrid Yao (Inactive)
                Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                  Dates

                  Created:
                  Updated:
                  Resolved:
                  Imported:
                  Indexed: