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

AttributeSetUtilities.unmodifiableView() returns wrong attributes

XMLWordPrintable

    • 2d
    • beta2
    • generic
    • generic



      Name: vtR10009 Date: 03/28/2001


          javax.print.attribute.AttributeSetUtilities.unmodifiableView() with
      null parameter returns not null instances that don't correctly implement
      javax.print.attribute.AttributeSetAttributeSet interface. That is cause
      of undeclared (NullPointerException) exception for comparing such instances
      with equals() invocation.

      API spec (build 1.4.0-internal-b57) doesn't say anything about null parameter
      for AttributeSetUtilities.unmodifiableView() and doesn't declare any run-time
      exception for AttributeSetUtilities.unmodifiableView() and AttributeSet.equals()
      methods.

      This bug affects new JCK tests:
      api/javax_print/event/PrintJobAttributeEvent/index.html#PrintJobAttributeEventTests
      api/javax_print/event/PrintServiceAttributeEvent/index.html#PrintServiceAttributeEventTests
      api/javax_print/attribute/AttributeSetUtilities/index.html#unmodifiableViewTests

      To reproduce the bug run the following test:
      ------------------------------- test.java --------------------------------
      import javax.print.event.PrintServiceAttributeEvent;

      import javax.print.attribute.AttributeSet;
      import javax.print.attribute.AttributeSetUtilities;
      import javax.print.attribute.PrintServiceAttributeSet;
      import javax.print.attribute.PrintJobAttributeSet;

      public class test {

          public static void main(String args[]) {
              boolean failed = false;
              AttributeSet aSet;
              
              try {

                  aSet = AttributeSetUtilities.unmodifiableView((PrintServiceAttributeSet) null);

                  if (!aSet.equals(aSet)) {
                      System.out.println("Error: not equal PrintServiceAttributeSet instances!");
                  }

              } catch (Throwable ex) {
                  failed = true;
                  ex.printStackTrace();
                  System.out.println("Undeclared:" + ex.toString());
              }
              try {

                  aSet = AttributeSetUtilities.unmodifiableView((PrintJobAttributeSet) null);

                  if (!aSet.equals(aSet)) {
                      System.out.println("Error: not equal PrintJobAttributeSet instances!");
                  }

              } catch (Throwable ex) {
                  failed = true;
                  ex.printStackTrace();
                  System.out.println("Undeclared:" + ex.toString());
              }

              if (!failed) {
                  System.out.println("Ok.");
              }
          }
      }
      ---------------------------Logs--------------------------------------
      $ javac test.java
      $ java test
      java.lang.NullPointerException
              at
      javax.print.attribute.AttributeSetUtilities$UnmodifiableAttributeSet.equals(AttributeSetUtilities.java:
      108)
              at test.main(test.java:18)
      Undeclared:java.lang.NullPointerException
      java.lang.NullPointerException
              at
      javax.print.attribute.AttributeSetUtilities$UnmodifiableAttributeSet.equals(AttributeSetUtilities.java:
      108)
              at test.main(test.java:31)
      Undeclared:java.lang.NullPointerException
      $ java -version
      java version "1.4.0-internal"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-internal-b57)
      Java HotSpot(TM) Client VM (build 1.4.0-beta-b57, mixed mode)
      --------------------------------------------------------------------------
      ======================================================================

            jgodinez Jennifer Godinez (Inactive)
            vitcsunw Vitc Vitc (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: