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

PersistenceDelegate.mutatesTo works incorrectly if oldInstance is null

    XMLWordPrintable

Details

    • tiger
    • generic, sparc
    • generic, solaris_2.6

    Description

      Name: dsR10051 Date: 06/15/2001


      Method
      java.beans.PersistenceDelegate.mutatesTo(Object oldInstance, Object newInstance)
      works incorrectly if the value of oldInstance parameter is null.
      In this case it throws undocumented NullPointerException.
      It seems the correct behavior for this method is to return false if newInstance
      is valid object.
      It should be fixed or documented.

      Here is minimized test:
      import java.beans.*;

      public class PersistenceDelegateTest01 {

          public static void main(String[] args) {
              DummyPersistenceDelegate pd = new DummyPersistenceDelegate();
              Object oldInstance = null;
              Object newInstance = new Object();
              if (pd.mutatesTo(oldInstance, newInstance)) {
                  System.out.println("FAILED");
              } else {
                  System.out.println("OKAY");
              }
          }

      }

      class DummyPersistenceDelegate extends PersistenceDelegate {

          public Expression instantiate(Object oldInctance, Encoder out) {
              return null;
          }

          public boolean mutatesTo(Object oldInstance, Object newInstance) {
              return super.mutatesTo(oldInstance, newInstance);
          }
      }

      --- Output ---
      %java -version
      java version "1.4.0-beta"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-beta-b65)
      Java HotSpot(TM) Client VM (build 1.4.0-beta-b65, mixed mode)
      %java PersistenceDelegateTest01
      Exception in thread "main" java.lang.NullPointerException
              at java.beans.PersistenceDelegate.mutatesTo(PersistenceDelegate.java:130)
              at DummyPersistenceDelegate.mutatesTo(PersistenceDelegateTest01.java:25)
              at PersistenceDelegateTest01.main(PersistenceDelegateTest01.java:9)



      ======================================================================

      Attachments

        Activity

          People

            mdavidsosunw Mark Davidson (Inactive)
            sdasunw Sda Sda (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: