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

Preferences :PreferenceChangeListener behaviour differ on solaris/win jdk1.4b48

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Not an Issue
    • Icon: P3 P3
    • None
    • 1.4.0
    • core-libs
    • None
    • x86
    • windows_nt

      Preferences :PreferenceChangeListener behaviour differnet on solaris/windows

      Test Program passes on solairs and fails on windows.

      If Thread.sleep(1000) line is uncommented in the test program then
      test program passes on solaris and windows.


      -----------------------------Test.java-------------------------
       
      import java.util.prefs.*;
      import java.util.*;
       
      public class Test{
          public static void main(String[] args) throws Exception {
        
               try {
                  Preferences userRoot = Preferences.userRoot();
                  System.out.println("Thread.activeCount() = " + Thread.activeCount());
                  Preferences prefChangeListenerUserRootTest = userRoot.node("prefChangeListenerUserRootTest");
                  prefChangeListenerUserRootTest.clear();
              
                  PreferenceChangeListenerTestClass prefChangeListener = new PreferenceChangeListenerTestClass();
                  prefChangeListenerUserRootTest.addPreferenceChangeListener(prefChangeListener);
                 
                   
                  Preferences preferencesGot = null;
                  prefChangeListenerUserRootTest.put("k1","v1");
                
                  //Thread.sleep(1000);
                 
                  int preferenceTotalCount = prefChangeListener.getTotalPreferenceCount();
                  System.out.println("preferenceTotalCount expected 1= "+preferenceTotalCount);
                  if (preferenceTotalCount != 1) {
                      System.out.println(" preferenceTotalCount = " + preferenceTotalCount);
                      throw new Exception("preferenceTotalCount != 1 not ok in PreferenceChangeListenerTestTest01()");
                  }
                 
                  System.out.println("PreferenceChangeListenerTestTest01() Pass");
              
              } catch(BackingStoreException bse) {
                 System.out.println("BackingStoreException thrown = " + bse);
                 System.out.println("PreferenceChangeListenerTestTest01() Fail");
                 bse.printStackTrace();
              } catch (Exception e) {
                  System.out.println("Exception thrown = " + e);
                 System.out.println("PreferenceChangeListenerTestTest01() Fail");
                 e.printStackTrace();
              }
          }

      }
       
       class PreferenceChangeListenerTestClass implements PreferenceChangeListener {
           private int totalPreferenceCount = 0;
           String keyGot = null;
           String valueGot = null;
           Preferences preferenceGot = null;
         
           public void preferenceChange(PreferenceChangeEvent evt) {
               totalPreferenceCount++;
               keyGot = evt.getKey();
               valueGot = evt.getNewValue();
               preferenceGot = evt.getNode();
               System.out.println("from PreferenceChangeListener: totalPreferenceCount= "+totalPreferenceCount);
          }
          public int getTotalPreferenceCount() {
              return totalPreferenceCount;
          }
         
          public String getKey(){
              return keyGot;
          }
          public String getValue(){
              return valueGot;
          }
          public Preferences getPreference() {
              return preferenceGot;
          }
      }
      ----------------------------------Test result on windows---------------

      H:\merlin\bugs\prefs\PreferenceChangeListenerTest>java -version
      java version "1.4.0-beta"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-beta-b48)
      Java HotSpot(TM) Client VM (build B48, mixed mode)

      H:\merlin\bugs\prefs\PreferenceChangeListenerTest>java Test
      Thread.activeCount() = 2
      preferenceTotalCount expected 1= 0
       preferenceTotalCount = 0
      Exception thrown = java.lang.Exception: preferenceTotalCount != 1 not ok in PreferenceChangeListenerTestTest01()
      PreferenceChangeListenerTestTest01() Fail
      java.lang.Exception: preferenceTotalCount != 1 not ok in PreferenceChangeListenerTestTest01()
              at Test.main(Test.java:27)
      from PreferenceChangeListener: totalPreferenceCount= 1

      --------------------------------test result on solaris-----------------
       javapro:/home/pande/merlin/bugs/prefs/PreferenceChangeListenerTest 17 % java -version
      java version "1.4.0-beta"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-beta-b48)
      Java HotSpot(TM) Client VM (build 1.4beta-B48, mixed mode)
      javapro:/home/pande/merlin/bugs/prefs/PreferenceChangeListenerTest 18 % java Test
      Thread.activeCount() = 3
      from PreferenceChangeListener: totalPreferenceCount= 1
      preferenceTotalCount expected 1= 1
      PreferenceChangeListenerTestTest01() Pass
      Couldn't flush user prefs: java.util.prefs.BackingStoreException: Couldn't get file lock.
      javapro:/home/pande/merlin/bugs/prefs/PreferenceChangeListenerTest 19 %







         
        
      ----------

            kkladkosunw Konstantin Kladko (Inactive)
            spandeorcl Shantaram Pande (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: