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

exception thrown while accessing registry (winNT)

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P3 P3
    • None
    • 1.0.1
    • deploy
    • x86
    • windows_nt



      Name: nt126004 Date: 02/06/2002


      FULL PRODUCT VERSION :
      java version "1.3.1"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1-b24)
      Java HotSpot(TM) Client VM (build 1.3.1-b24, mixed mode)

      FULL OPERATING SYSTEM VERSION :
      Windows NT Version 4.0
      build 1381
      service pack 4


      A DESCRIPTION OF THE PROBLEM :
      When selecting the Advance tab in the Preferences dialog
      the tab doesn't show anything. After closing the preference
      dialog it is not possible to open it anymore in the
      current Java Web Start session.

      It appears to be a problem accessing the registry. (Based on the stacktrace)
      The problem could be in KeyValue.getValue()
      if the retrieved string from the registry is set but of zero length
      (even if possibly not my problem in the end this is a BUG).
      Decompiling WinRegistry class with Jad you can see that in the
      case of string data ("case 1:") you are trying to create the following:
           return new String(data,0,-1);

      Here is the decompiled code (com.sun.javaws.WinRegistry):
        public class WinRegistry
        {
           static class KeyValue
           {
              public Object getValue()
              {
                  switch(type)
                  {
                  case 1: // '\001'
                      return new String(data, 0, data.length - 1);

                  case 4: // '\004'
                      int i = 0;
                      for(int j = 0; j < 4 && j < data.length; j++)
                          i += data[j] << j * 8;

                      return new Integer(i);

                  case 2: // '\002'
                  case 3: // '\003'
                  default:
                      return getData();
                  }
              }
             // ...
           }
           // ...
      }


      ...here where it is called (com.sun.javaws.proxy.WinInternetProxy):
          public InternetProxyInfo getBrowserInfo()
          {
              InternetProxyInfo internetproxyinfo = new InternetProxyInfo();
              String s = "http\\shell\\open\\ddeexec\\Application";
              int i = 0x80000000;
              String s1 = WinRegistry.getString(i, s, "");

      Above I assume that the third empty String is meant to
      point to the (Default) key in the registry.

      ...and here (part of) my stacktrace:
      Exception occurred during event dispatching:
      java.lang.StringIndexOutOfBoundsException: length must be >= 0
           at java.lang.String.<init>(Unknown Source)
           at java.lang.String.<init>(Unknown Source)
           at com.sun.javaws.WinRegistry$KeyValue.getValue(Unknown Source)
           at com.sun.javaws.WinRegistry.get(Unknown Source)
           at com.sun.javaws.WinRegistry.getString(Unknown Source)
           at com.sun.javaws.proxy.WinInternetProxy.getBrowserInfo(Unknown Source)
           at com.sun.javaws.ui.prefs.GeneralPanel.<init>(Unknown Source)


      The strange thing is that I got the exception even if the value of
      "http\\shell\\open\\ddeexec\\Application" key is "IExplore"



      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      1.Select File->Preferences
      2.select Advanced tab (the exception messages are traced)
      3.close Preference dialog
      4.repeat 1.: nothin happens

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      It should show some preference such as
      the possibility to show the Java Web Start Console

      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      Java Web Start Console, started Wed Dec 19 19:02:58 CET 2001

      Java 2 Runtime Environment: Version 1.3.1 by Sun
      Microsystems Inc.

      Assert failure: should never return null

      java.lang.Throwable
      at com.sun.javaws.debug.Debug.dumpStack(Unknown Source)
      at com.sun.javaws.debug.Debug.assert(Unknown Source)
      at com.sun.javaws.cache.DiskCache.visitDiskCacheHelper(Unknown Source)
      at com.sun.javaws.cache.DiskCache.visitDiskCacheHelper(Unknown Source)
      at com.sun.javaws.cache.DiskCache.visitDiskCacheHelper(Unknown Source)
      at com.sun.javaws.cache.DiskCache.visitDiskCacheHelper(Unknown Source)
      at com.sun.javaws.cache.DiskCache.visitDiskCacheHelper(Unknown Source)
      at com.sun.javaws.cache.DiskCache.visitDiskCacheHelper(Unknown Source)
      at com.sun.javaws.cache.DiskCache.visitDiskCacheHelper(Unknown Source)
      at com.sun.javaws.cache.DiskCache.visitDiskCacheHelper(Unknown Source)
      at com.sun.javaws.cache.DiskCache.visitDiskCacheHelper(Unknown Source)
      at com.sun.javaws.cache.DiskCache.visitDiskCacheHelper(Unknown Source)
      at com.sun.javaws.cache.DiskCache.visitDiskCacheHelper(Unknown Source)
      at com.sun.javaws.cache.DiskCache.visitDiskCache(Unknown Source)
      at com.sun.javaws.cache.DiskCache.getCacheSize(Unknown Source)
      at com.sun.javaws.ui.prefs.AdvancedPanel.revert(Unknown Source)
      at com.sun.javaws.ui.prefs.AdvancedPanel.createPropertyControls(Unknown
      Source)
      at com.sun.javaws.ui.prefs.PrefsPanel$PropertyPanel.start(Unknown Source)
      at com.sun.javaws.ui.general.AbstractController.setActiveSubcontrollerIndex(Unknown
      Source)
      at com.sun.javaws.ui.prefs.PrefsPanel.setSelectedTab(Unknown Source)
      at com.sun.javaws.ui.prefs.PrefsPanel.stateChanged(Unknown Source)
      at javax.swing.JTabbedPane.fireStateChanged(Unknown Source)
      at javax.swing.JTabbedPane$ModelListener.stateChanged(Unknown Source)
      at javax.swing.DefaultSingleSelectionModel.fireStateChanged(Unknown Source)
      at javax.swing.DefaultSingleSelectionModel.setSelectedIndex(Unknown Source)
      at javax.swing.JTabbedPane.setSelectedIndex(Unknown Source)
      at javax.swing.plaf.basic.BasicTabbedPaneUI$MouseHandler.mousePressed(Unknown
      Source)
      at java.awt.Component.processMouseEvent(Unknown Source)
      at java.awt.Component.processEvent(Unknown Source)
      at java.awt.Container.processEvent(Unknown Source)
      at java.awt.Component.dispatchEventImpl(Unknown Source)
      at java.awt.Container.dispatchEventImpl(Unknown Source)
      at java.awt.Component.dispatchEvent(Unknown Source)
      at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
      at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
      at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
      at java.awt.Container.dispatchEventImpl(Unknown Source)
      at java.awt.Window.dispatchEventImpl(Unknown Source)
      at java.awt.Component.dispatchEvent(Unknown Source)
      at java.awt.EventQueue.dispatchEvent(Unknown Source)
      at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
      at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
      at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
      at java.awt.EventDispatchThread.run(Unknown Source)

      Exception occurred during event dispatching:

      java.lang.NullPointerException
      at com.sun.javaws.cache.DiskCache$SizeVisitor.visitEntry(Unknown Source)
      at com.sun.javaws.cache.DiskCache.visitDiskCacheHelper(Unknown Source)
      at com.sun.javaws.cache.DiskCache.visitDiskCacheHelper(Unknown Source)
      at com.sun.javaws.cache.DiskCache.visitDiskCacheHelper(Unknown Source)
      at com.sun.javaws.cache.DiskCache.visitDiskCacheHelper(Unknown Source)
      at com.sun.javaws.cache.DiskCache.visitDiskCacheHelper(Unknown Source)
      at com.sun.javaws.cache.DiskCache.visitDiskCacheHelper(Unknown Source)
      at com.sun.javaws.cache.DiskCache.visitDiskCacheHelper(Unknown Source)
      at com.sun.javaws.cache.DiskCache.visitDiskCacheHelper(Unknown Source)
      at com.sun.javaws.cache.DiskCache.visitDiskCacheHelper(Unknown Source)
      at com.sun.javaws.cache.DiskCache.visitDiskCacheHelper(Unknown Source)
      at com.sun.javaws.cache.DiskCache.visitDiskCacheHelper(Unknown Source)
      at com.sun.javaws.cache.DiskCache.visitDiskCache(Unknown Source)
      at com.sun.javaws.cache.DiskCache.getCacheSize(Unknown Source)
      at com.sun.javaws.ui.prefs.AdvancedPanel.revert(Unknown Source)
      at com.sun.javaws.ui.prefs.AdvancedPanel.createPropertyControls(Unknown
      Source)
      at com.sun.javaws.ui.prefs.PrefsPanel$PropertyPanel.start(Unknown Source)
      at
      com.sun.javaws.ui.general.AbstractController.setActiveSubcontrollerIndex(Unknown
      Source)
      at com.sun.javaws.ui.prefs.PrefsPanel.setSelectedTab(Unknown Source)
      at com.sun.javaws.ui.prefs.PrefsPanel.stateChanged(Unknown Source)
      at javax.swing.JTabbedPane.fireStateChanged(Unknown Source)
      at javax.swing.JTabbedPane$ModelListener.stateChanged(Unknown Source)
      at javax.swing.DefaultSingleSelectionModel.fireStateChanged(Unknown Source)
      at javax.swing.DefaultSingleSelectionModel.setSelectedIndex(Unknown Source)
      at javax.swing.JTabbedPane.setSelectedIndex(Unknown Source)
      at javax.swing.plaf.basic.BasicTabbedPaneUI$MouseHandler.mousePressed(Unknown
      Source)
      at java.awt.Component.processMouseEvent(Unknown Source)
      at java.awt.Component.processEvent(Unknown Source)
      at java.awt.Container.processEvent(Unknown Source)
      at java.awt.Component.dispatchEventImpl(Unknown Source)
      at java.awt.Container.dispatchEventImpl(Unknown Source)
      at java.awt.Component.dispatchEvent(Unknown Source)
      at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
      at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
      at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
      at java.awt.Container.dispatchEventImpl(Unknown Source)
      at java.awt.Window.dispatchEventImpl(Unknown Source)
      at java.awt.Component.dispatchEvent(Unknown Source)
      at java.awt.EventQueue.dispatchEvent(Unknown Source)
      at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
      at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
      at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
      at java.awt.EventDispatchThread.run(Unknown Source)

      Also this one:
      Java Web Start Console, started Tue Jan 29 14:10:37 CET 2002
      Java 2 Runtime Environment: Version 1.3.1 by Sun Microsystems Inc.
      Exception occurred during event dispatching:
      java.lang.StringIndexOutOfBoundsException: length must be >= 0
           at java.lang.String.<init>(Unknown Source)
           at java.lang.String.<init>(Unknown Source)
           at com.sun.javaws.WinRegistry$KeyValue.getValue(Unknown Source)
           at com.sun.javaws.WinRegistry.get(Unknown Source)
           at com.sun.javaws.WinRegistry.getString(Unknown Source)
           at com.sun.javaws.proxy.WinInternetProxy.getBrowserInfo(Unknown Source)
           at com.sun.javaws.ui.prefs.GeneralPanel.<init>(Unknown Source)
           at com.sun.javaws.ui.prefs.WinSubcontrollerCreator.getSubcontroller(Unknown Source)
           at com.sun.javaws.ui.prefs.PrefsPanel.createSubcontroller(Unknown Source)
           at com.sun.javaws.ui.prefs.PrefsPanel.access$0(Unknown Source)
           at com.sun.javaws.ui.prefs.PrefsPanel$1.createSubcontroller(Unknown Source)
           at com.sun.javaws.ui.general.AbstractController.setActiveSubcontrollerIndex(Unknown Source)
           at com.sun.javaws.ui.prefs.PrefsPanel.setSelectedTab(Unknown Source)
           at com.sun.javaws.ui.prefs.PrefsPanel.<init>(Unknown Source)
           at com.sun.javaws.ui.player.Player$4.actionPerformed(Unknown Source)
           at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
           at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Unknown Source)
           at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
           at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
           at javax.swing.AbstractButton.doClick(Unknown Source)
           at javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseReleased(Unknown Source)
           at java.awt.Component.processMouseEvent(Unknown Source)
           at java.awt.Component.processEvent(Unknown Source)
           at java.awt.Container.processEvent(Unknown Source)
           at java.awt.Component.dispatchEventImpl(Unknown Source)
           at java.awt.Container.dispatchEventImpl(Unknown Source)
           at java.awt.Component.dispatchEvent(Unknown Source)
           at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
           at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
           at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
           at java.awt.Container.dispatchEventImpl(Unknown Source)
           at java.awt.Window.dispatchEventImpl(Unknown Source)
           at java.awt.Component.dispatchEvent(Unknown Source)
           at java.awt.EventQueue.dispatchEvent(Unknown Source)
           at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
           at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
           at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
           at java.awt.EventDispatchThread.run(Unknown Source)

      This bug can be reproduced always.

      ------- BEGIN SOURCE -------------
      #
      #Wed Jan 30 10:22:25 CET 2002
      javaws.cfg.proxy.httpport=8080
      javaws.cfg.proxy.setting=MANUAL
      javaws.favorites.size=0
      javaws.cfg.logToFile=false
      javaws.player.manager=0
      javaws.whenInstall=0
      javaws.player.bounds=573,18,609,552
      javaws.cfg.logFileName=
      javaws.player.mode=1
      javaws.cfg.showConsole=true
      javaws.cfg.proxy.httpproxyoverride=localhost,gesun128.it.marconicomms.com,172.16.135.65,gesun128
      javaws.whatInstall=3
      javaws.cfg.proxy.http=proxy1
      --------- END SOURCE --------------

      CUSTOMER WORKAROUND :
      In order to enable Java Web Start Console
      I had to edit the javaws.cfg property file
      (Review ID: 137568)
      ======================================================================

            ngthomas Thomas Ng (Inactive)
            nthompsosunw Nathanael Thompson (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: