FIX: RegistryKey setValue() Fails for Terminating Character on NT

ID: Q223367


The information in this article applies to:


SYMPTOMS

RegistryKey.setValue might not set the value of a registry key correctly. This problem only occurs on Windows NT.


CAUSE

The setValue( ) method, when executed under NT, does not account for the terminating null character, which causes incorrect data to be written to the registry key.


STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article.

This bug was corrected in Visual Studio 6.0 Service Pack 3. For more information about Visual Studio service packs, please see the following articles in the Microsoft Knowledge Base:

Q194022 INFO: Visual Studio 6.0 Service Packs, What, Where, Why

Q194295 HOWTO: Tell That Visual Studio 6.0 Service Packs Are Installed


MORE INFORMATION

Steps to Reproduce Behavior

  1. Create a new "Console Application."


  2. Import com.ms.wfc.app.*


  3. Add the following code to main( ):


  4. RegistryKey r = Registry.CURRENT_USER.createSubKey("Software\\Microsoft\\VisualStudio\\6.0\\Debugger");
    		
    r.setValue("Test1","ABC");
    r.setValue("Test2","DEF");
    r.setValue("Test3","XYZ");
    
    r.setValue("Test2",""); 
  5. Compile and run the code.


  6. View the specified keys in REGEDIT.

    Without Visual Studio Service Pack 3, the key "Test2" will hold the value of one of its peer keys.


© Microsoft Corporation 1999, All Rights Reserved.
Contributions by Joseph B. Hall, Microsoft Corporation

Additional query words:


Keywords          : kbservicepack kbNTOS kbSDKJava150bug kbSDKJava200bug kbSDKJava201bug kbSDKJava300bug kbVJ600bug kbGrpJava kbVS600sp2 kbVS600SP1 kbVS600sp3fix kbSDKJava320bug 
Version           : WINDOWS:1.0,1.5,1.51,2.0,2.01,2.02,3.0,3.0 Preview 1,3.1,6.0
Platform          : WINDOWS 
Issue type        : kbbug 

Last Reviewed: July 9, 1999