changeset 10769:edcc8fb4c0e3

8074657: Missing space on a boundary of concatenated strings Summary: Added missing spaces, fixed indentation, replaced StringBuffer with StringBuilder Reviewed-by: martin, rriggs
author igerasim
date Mon, 18 May 2015 23:42:58 +0300
parents a6fc98719c47
children 02ada5401636
files src/share/classes/javax/sql/rowset/serial/SerialBlob.java src/windows/classes/java/util/prefs/WindowsPreferences.java
diffstat 2 files changed, 268 insertions(+), 246 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/classes/javax/sql/rowset/serial/SerialBlob.java	Thu Apr 23 18:01:38 2015 +0300
+++ b/src/share/classes/javax/sql/rowset/serial/SerialBlob.java	Mon May 18 23:42:58 2015 +0300
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -66,7 +66,7 @@
      * value of this <code>SerialBlob</code> object.
      * @serial
      */
-    private byte buf[];
+    private byte[] buf;
 
     /**
      * The internal representation of the <code>Blob</code> object on which this
@@ -102,12 +102,13 @@
      * @throws SerialException if an error occurs during serialization
      * @throws SQLException if a SQL errors occurs
      */
-    public SerialBlob(byte[] b) throws SerialException, SQLException {
+    public SerialBlob(byte[] b)
+            throws SerialException, SQLException {
 
         len = b.length;
         buf = new byte[(int)len];
         for(int i = 0; i < len; i++) {
-           buf[i] = b[i];
+            buf[i] = b[i];
         }
         origLen = len;
     }
@@ -132,19 +133,17 @@
      *     to this constructor is a <code>null</code>.
      * @see java.sql.Blob
      */
-    public SerialBlob (Blob blob) throws SerialException, SQLException {
+    public SerialBlob (Blob blob)
+            throws SerialException, SQLException {
 
         if (blob == null) {
-            throw new SQLException("Cannot instantiate a SerialBlob " +
-                 "object with a null Blob object");
+            throw new SQLException(
+                    "Cannot instantiate a SerialBlob object with a null Blob object");
         }
 
         len = blob.length();
         buf = blob.getBytes(1, (int)len );
         this.blob = blob;
-
-         //if ( len < 10240000)
-         // len = 10240000;
         origLen = len;
     }
 
@@ -245,7 +244,8 @@
      *         value from the database
      */
     public long position(byte[] pattern, long start)
-                throws SerialException, SQLException {
+            throws SerialException, SQLException {
+
         isValid();
         if (start < 1 || start > len) {
             return -1;
@@ -290,7 +290,7 @@
      *         value from the database
      */
     public long position(Blob pattern, long start)
-       throws SerialException, SQLException {
+            throws SerialException, SQLException {
         isValid();
         return position(pattern.getBytes(1, (int)(pattern.length())), start);
     }
@@ -316,8 +316,8 @@
      * @see #getBytes
      */
     public int setBytes(long pos, byte[] bytes)
-        throws SerialException, SQLException {
-        return (setBytes(pos, bytes, 0, bytes.length));
+            throws SerialException, SQLException {
+        return setBytes(pos, bytes, 0, bytes.length);
     }
 
     /**
@@ -352,7 +352,7 @@
      * @see #getBytes
      */
     public int setBytes(long pos, byte[] bytes, int offset, int length)
-        throws SerialException, SQLException {
+            throws SerialException, SQLException {
 
         isValid();
         if (offset < 0 || offset > bytes.length) {
@@ -369,7 +369,7 @@
 
         if ((length + offset) > bytes.length) {
             throw new SerialException("Invalid OffSet. Cannot have combined offset " +
-                "and length that is greater that the Blob buffer");
+                    "and length that is greater that the Blob buffer");
         }
 
         int i = 0;
@@ -402,7 +402,8 @@
      * @see #getBinaryStream
      */
     public java.io.OutputStream setBinaryStream(long pos)
-        throws SerialException, SQLException {
+            throws SerialException, SQLException {
+
         isValid();
         if (this.blob != null) {
             return this.blob.setBinaryStream(pos);
@@ -425,17 +426,16 @@
      * if {@code free} had previously been called on this object
      */
     public void truncate(long length) throws SerialException {
-
         isValid();
         if (length > len) {
-           throw new SerialException
-              ("Length more than what can be truncated");
+            throw new SerialException(
+                    "Length more than what can be truncated");
         } else if((int)length == 0) {
-             buf = new byte[0];
-             len = length;
+            buf = new byte[0];
+            len = length;
         } else {
-             len = length;
-             buf = this.getBytes(1, (int)len);
+            len = length;
+            buf = this.getBytes(1, (int)len);
         }
     }
 
@@ -466,8 +466,8 @@
             throw new SerialException("Invalid position in BLOB object set");
         }
         if (length < 1 || length > len - pos + 1) {
-            throw new SerialException("length is < 1 or pos + length >"
-                    + "total number of bytes");
+            throw new SerialException(
+                    "length is < 1 or pos + length > total number of bytes");
         }
         return new ByteArrayInputStream(buf, (int) pos - 1, (int) length);
     }
@@ -536,14 +536,13 @@
     public Object clone() {
         try {
             SerialBlob sb = (SerialBlob) super.clone();
-            sb.buf =  (buf != null) ? Arrays.copyOf(buf, (int)len) : null;
+            sb.buf = (buf != null) ? Arrays.copyOf(buf, (int)len) : null;
             sb.blob = null;
             return sb;
         } catch (CloneNotSupportedException ex) {
             // this shouldn't happen, since we are Cloneable
             throw new InternalError();
         }
-
     }
 
     /**
@@ -554,15 +553,15 @@
             throws IOException, ClassNotFoundException {
 
         ObjectInputStream.GetField fields = s.readFields();
-       byte[] tmp = (byte[])fields.get("buf", null);
-       if (tmp == null)
-           throw new InvalidObjectException("buf is null and should not be!");
-       buf = tmp.clone();
-       len = fields.get("len", 0L);
-       if (buf.length != len)
-           throw new InvalidObjectException("buf is not the expected size");
-       origLen = fields.get("origLen", 0L);
-       blob = (Blob) fields.get("blob", null);
+        byte[] tmp = (byte[])fields.get("buf", null);
+        if (tmp == null)
+            throw new InvalidObjectException("buf is null and should not be!");
+        buf = tmp.clone();
+        len = fields.get("len", 0L);
+        if (buf.length != len)
+            throw new InvalidObjectException("buf is not the expected size");
+        origLen = fields.get("origLen", 0L);
+        blob = (Blob) fields.get("blob", null);
     }
 
     /**
@@ -590,8 +589,8 @@
      */
     private void isValid() throws SerialException {
         if (buf == null) {
-            throw new SerialException("Error: You cannot call a method on a "
-                    + "SerialBlob instance once free() has been called.");
+            throw new SerialException("Error: You cannot call a method on a " +
+                    "SerialBlob instance once free() has been called.");
         }
     }
 
--- a/src/windows/classes/java/util/prefs/WindowsPreferences.java	Thu Apr 23 18:01:38 2015 +0300
+++ b/src/windows/classes/java/util/prefs/WindowsPreferences.java	Mon May 18 23:42:58 2015 +0300
@@ -53,8 +53,8 @@
     /**
      * Windows registry path to <tt>Preferences</tt>'s root nodes.
      */
-    private static final byte[] WINDOWS_ROOT_PATH
-                               = stringToByteArray("Software\\JavaSoft\\Prefs");
+    private static final byte[] WINDOWS_ROOT_PATH =
+        stringToByteArray("Software\\JavaSoft\\Prefs");
 
     /**
      * Windows handles to <tt>HKEY_CURRENT_USER</tt> and
@@ -138,12 +138,12 @@
      * Java wrapper for Windows registry API RegOpenKey()
      */
     private static native int[] WindowsRegOpenKey(int hKey, byte[] subKey,
-                                                         int securityMask);
+                                                  int securityMask);
     /**
      * Retries RegOpenKey() MAX_ATTEMPTS times before giving up.
      */
     private static int[] WindowsRegOpenKey1(int hKey, byte[] subKey,
-                                                      int securityMask) {
+                                            int securityMask) {
         int[] result = WindowsRegOpenKey(hKey, subKey, securityMask);
         if (result[ERROR_CODE] == ERROR_SUCCESS) {
             return result;
@@ -158,16 +158,16 @@
         } else if (result[ERROR_CODE] != ERROR_ACCESS_DENIED) {
             long sleepTime = INIT_SLEEP_TIME;
             for (int i = 0; i < MAX_ATTEMPTS; i++) {
-            try {
-                Thread.sleep(sleepTime);
-            } catch(InterruptedException e) {
-                return result;
-            }
-            sleepTime *= 2;
-            result = WindowsRegOpenKey(hKey, subKey, securityMask);
-            if (result[ERROR_CODE] == ERROR_SUCCESS) {
-                return result;
-            }
+                try {
+                    Thread.sleep(sleepTime);
+                } catch(InterruptedException e) {
+                    return result;
+                }
+                sleepTime *= 2;
+                result = WindowsRegOpenKey(hKey, subKey, securityMask);
+                if (result[ERROR_CODE] == ERROR_SUCCESS) {
+                    return result;
+                }
             }
         }
         return result;
@@ -189,10 +189,10 @@
     private static int[] WindowsRegCreateKeyEx1(int hKey, byte[] subKey) {
         int[] result = WindowsRegCreateKeyEx(hKey, subKey);
         if (result[ERROR_CODE] == ERROR_SUCCESS) {
-                return result;
-            } else {
-                long sleepTime = INIT_SLEEP_TIME;
-                for (int i = 0; i < MAX_ATTEMPTS; i++) {
+            return result;
+        } else {
+            long sleepTime = INIT_SLEEP_TIME;
+            for (int i = 0; i < MAX_ATTEMPTS; i++) {
                 try {
                     Thread.sleep(sleepTime);
                 } catch(InterruptedException e) {
@@ -201,7 +201,7 @@
                 sleepTime *= 2;
                 result = WindowsRegCreateKeyEx(hKey, subKey);
                 if (result[ERROR_CODE] == ERROR_SUCCESS) {
-                return result;
+                    return result;
                 }
             }
         }
@@ -223,10 +223,10 @@
     private static int WindowsRegFlushKey1(int hKey) {
         int result = WindowsRegFlushKey(hKey);
         if (result == ERROR_SUCCESS) {
-                return result;
-            } else {
-                long sleepTime = INIT_SLEEP_TIME;
-                for (int i = 0; i < MAX_ATTEMPTS; i++) {
+            return result;
+        } else {
+            long sleepTime = INIT_SLEEP_TIME;
+            for (int i = 0; i < MAX_ATTEMPTS; i++) {
                 try {
                     Thread.sleep(sleepTime);
                 } catch(InterruptedException e) {
@@ -235,7 +235,7 @@
                 sleepTime *= 2;
                 result = WindowsRegFlushKey(hKey);
                 if (result == ERROR_SUCCESS) {
-                return result;
+                    return result;
                 }
             }
         }
@@ -246,23 +246,23 @@
      * Java wrapper for Windows registry API RegQueryValueEx()
      */
     private static native byte[] WindowsRegQueryValueEx(int hKey,
-                                                              byte[] valueName);
+                                                        byte[] valueName);
     /**
      * Java wrapper for Windows registry API RegSetValueEx()
      */
     private static native int WindowsRegSetValueEx(int hKey, byte[] valueName,
-                                                         byte[] value);
+                                                   byte[] value);
     /**
      * Retries RegSetValueEx() MAX_ATTEMPTS times before giving up.
      */
     private static int WindowsRegSetValueEx1(int hKey, byte[] valueName,
-                                                         byte[] value) {
+                                             byte[] value) {
         int result = WindowsRegSetValueEx(hKey, valueName, value);
         if (result == ERROR_SUCCESS) {
-                return result;
-            } else {
-                long sleepTime = INIT_SLEEP_TIME;
-                for (int i = 0; i < MAX_ATTEMPTS; i++) {
+            return result;
+        } else {
+            long sleepTime = INIT_SLEEP_TIME;
+            for (int i = 0; i < MAX_ATTEMPTS; i++) {
                 try {
                     Thread.sleep(sleepTime);
                 } catch(InterruptedException e) {
@@ -271,7 +271,7 @@
                 sleepTime *= 2;
                 result = WindowsRegSetValueEx(hKey, valueName, value);
                 if (result == ERROR_SUCCESS) {
-                return result;
+                    return result;
                 }
             }
         }
@@ -294,10 +294,10 @@
     private static int[] WindowsRegQueryInfoKey1(int hKey) {
         int[] result = WindowsRegQueryInfoKey(hKey);
         if (result[ERROR_CODE] == ERROR_SUCCESS) {
-                return result;
-            } else {
-                long sleepTime = INIT_SLEEP_TIME;
-                for (int i = 0; i < MAX_ATTEMPTS; i++) {
+            return result;
+        } else {
+            long sleepTime = INIT_SLEEP_TIME;
+            for (int i = 0; i < MAX_ATTEMPTS; i++) {
                 try {
                     Thread.sleep(sleepTime);
                 } catch(InterruptedException e) {
@@ -306,7 +306,7 @@
                 sleepTime *= 2;
                 result = WindowsRegQueryInfoKey(hKey);
                 if (result[ERROR_CODE] == ERROR_SUCCESS) {
-                return result;
+                    return result;
                 }
             }
         }
@@ -317,19 +317,19 @@
      * Java wrapper for Windows registry API RegEnumKeyEx()
      */
     private static native byte[] WindowsRegEnumKeyEx(int hKey, int subKeyIndex,
-                                      int maxKeyLength);
+                                                     int maxKeyLength);
 
     /**
      * Retries RegEnumKeyEx() MAX_ATTEMPTS times before giving up.
      */
     private static byte[] WindowsRegEnumKeyEx1(int hKey, int subKeyIndex,
-                                      int maxKeyLength) {
+                                               int maxKeyLength) {
         byte[] result = WindowsRegEnumKeyEx(hKey, subKeyIndex, maxKeyLength);
         if (result != null) {
-                return result;
-            } else {
-                long sleepTime = INIT_SLEEP_TIME;
-                for (int i = 0; i < MAX_ATTEMPTS; i++) {
+            return result;
+        } else {
+            long sleepTime = INIT_SLEEP_TIME;
+            for (int i = 0; i < MAX_ATTEMPTS; i++) {
                 try {
                     Thread.sleep(sleepTime);
                 } catch(InterruptedException e) {
@@ -338,7 +338,7 @@
                 sleepTime *= 2;
                 result = WindowsRegEnumKeyEx(hKey, subKeyIndex, maxKeyLength);
                 if (result != null) {
-                return result;
+                    return result;
                 }
             }
         }
@@ -349,19 +349,19 @@
      * Java wrapper for Windows registry API RegEnumValue()
      */
     private static native byte[] WindowsRegEnumValue(int hKey, int valueIndex,
-                                      int maxValueNameLength);
+                                                     int maxValueNameLength);
     /**
      * Retries RegEnumValueEx() MAX_ATTEMPTS times before giving up.
      */
     private static byte[] WindowsRegEnumValue1(int hKey, int valueIndex,
-                                      int maxValueNameLength) {
+                                               int maxValueNameLength) {
         byte[] result = WindowsRegEnumValue(hKey, valueIndex,
-                                                            maxValueNameLength);
+                                            maxValueNameLength);
         if (result != null) {
-                return result;
-            } else {
-                long sleepTime = INIT_SLEEP_TIME;
-                for (int i = 0; i < MAX_ATTEMPTS; i++) {
+            return result;
+        } else {
+            long sleepTime = INIT_SLEEP_TIME;
+            for (int i = 0; i < MAX_ATTEMPTS; i++) {
                 try {
                     Thread.sleep(sleepTime);
                 } catch(InterruptedException e) {
@@ -369,9 +369,9 @@
                 }
                 sleepTime *= 2;
                 result = WindowsRegEnumValue(hKey, valueIndex,
-                                                            maxValueNameLength);
+                                             maxValueNameLength);
                 if (result != null) {
-                return result;
+                    return result;
                 }
             }
         }
@@ -395,11 +395,11 @@
         int[] result =
                WindowsRegCreateKeyEx1(parentNativeHandle, toWindowsName(name));
         if (result[ERROR_CODE] != ERROR_SUCCESS) {
-            logger().warning("Could not create windows registry "
-            + "node " + byteArrayToString(windowsAbsolutePath()) +
-            " at root 0x" + Integer.toHexString(rootNativeHandle()) +
-            ". Windows RegCreateKeyEx(...) returned error code " +
-            result[ERROR_CODE] + ".");
+            logger().warning("Could not create windows registry node " +
+                    byteArrayToString(windowsAbsolutePath()) +
+                    " at root 0x" + Integer.toHexString(rootNativeHandle()) +
+                    ". Windows RegCreateKeyEx(...) returned error code " +
+                    result[ERROR_CODE] + ".");
             isBackingStoreAvailable = false;
             return;
         }
@@ -417,15 +417,15 @@
      * @param rootDirectory Path to root directory, as a byte-encoded string.
      */
     private  WindowsPreferences(int rootNativeHandle, byte[] rootDirectory) {
-        super(null,"");
+        super(null, "");
         int[] result =
                 WindowsRegCreateKeyEx1(rootNativeHandle, rootDirectory);
         if (result[ERROR_CODE] != ERROR_SUCCESS) {
             logger().warning("Could not open/create prefs root node " +
-            byteArrayToString(windowsAbsolutePath()) + " at root 0x" +
-            Integer.toHexString(rootNativeHandle()) +
-            ". Windows RegCreateKeyEx(...) returned error code " +
-            result[ERROR_CODE] + ".");
+                    byteArrayToString(windowsAbsolutePath()) +
+                    " at root 0x" + Integer.toHexString(rootNativeHandle()) +
+                    ". Windows RegCreateKeyEx(...) returned error code " +
+                    result[ERROR_CODE] + ".");
             isBackingStoreAvailable = false;
             return;
         }
@@ -442,7 +442,7 @@
     private byte[] windowsAbsolutePath() {
         ByteArrayOutputStream bstream = new ByteArrayOutputStream();
         bstream.write(WINDOWS_ROOT_PATH, 0, WINDOWS_ROOT_PATH.length-1);
-        StringTokenizer tokenizer = new StringTokenizer(absolutePath(),"/");
+        StringTokenizer tokenizer = new StringTokenizer(absolutePath(), "/");
         while (tokenizer.hasMoreTokens()) {
             bstream.write((byte)'\\');
             String nextName = tokenizer.nextToken();
@@ -496,27 +496,30 @@
         /*  Check if key's path is short enough be opened at once
             otherwise use a path-splitting procedure */
         if (windowsAbsolutePath.length <= MAX_WINDOWS_PATH_LENGTH + 1) {
-             int[] result = WindowsRegOpenKey1(rootNativeHandle(),
-                                               windowsAbsolutePath, mask1);
-             if (result[ERROR_CODE] == ERROR_ACCESS_DENIED && mask2 != mask1)
-                 result = WindowsRegOpenKey1(rootNativeHandle(),
-                                             windowsAbsolutePath, mask2);
+            int[] result = WindowsRegOpenKey1(rootNativeHandle(),
+                                              windowsAbsolutePath, mask1);
+            if (result[ERROR_CODE] == ERROR_ACCESS_DENIED && mask2 != mask1)
+                result = WindowsRegOpenKey1(rootNativeHandle(),
+                                            windowsAbsolutePath, mask2);
 
-             if (result[ERROR_CODE] != ERROR_SUCCESS) {
-                logger().warning("Could not open windows "
-                + "registry node " + byteArrayToString(windowsAbsolutePath()) +
-                " at root 0x" + Integer.toHexString(rootNativeHandle()) +
-                ". Windows RegOpenKey(...) returned error code " +
-                result[ERROR_CODE] + ".");
+            if (result[ERROR_CODE] != ERROR_SUCCESS) {
+                logger().warning("Could not open windows registry node " +
+                        byteArrayToString(windowsAbsolutePath()) +
+                        " at root 0x" +
+                        Integer.toHexString(rootNativeHandle()) +
+                        ". Windows RegOpenKey(...) returned error code " +
+                        result[ERROR_CODE] + ".");
                 result[NATIVE_HANDLE] = NULL_NATIVE_HANDLE;
                 if (result[ERROR_CODE] == ERROR_ACCESS_DENIED) {
-                    throw new SecurityException("Could not open windows "
-                + "registry node " + byteArrayToString(windowsAbsolutePath()) +
-                " at root 0x" + Integer.toHexString(rootNativeHandle()) +
-                ": Access denied");
+                    throw new SecurityException(
+                            "Could not open windows registry node " +
+                            byteArrayToString(windowsAbsolutePath()) +
+                            " at root 0x" +
+                            Integer.toHexString(rootNativeHandle()) +
+                            ": Access denied");
                 }
-             }
-             return result[NATIVE_HANDLE];
+            }
+            return result[NATIVE_HANDLE];
         } else {
             return openKey(rootNativeHandle(), windowsAbsolutePath, mask1, mask2);
         }
@@ -539,21 +542,21 @@
                         int mask1, int mask2) {
     /* If the path is short enough open at once. Otherwise split the path */
         if (windowsRelativePath.length <= MAX_WINDOWS_PATH_LENGTH + 1 ) {
-             int[] result = WindowsRegOpenKey1(nativeHandle,
-                                               windowsRelativePath, mask1);
-             if (result[ERROR_CODE] == ERROR_ACCESS_DENIED && mask2 != mask1)
-                 result = WindowsRegOpenKey1(nativeHandle,
-                                             windowsRelativePath, mask2);
+            int[] result = WindowsRegOpenKey1(nativeHandle,
+                                              windowsRelativePath, mask1);
+            if (result[ERROR_CODE] == ERROR_ACCESS_DENIED && mask2 != mask1)
+                result = WindowsRegOpenKey1(nativeHandle,
+                                            windowsRelativePath, mask2);
 
-             if (result[ERROR_CODE] != ERROR_SUCCESS) {
-                logger().warning("Could not open windows "
-                + "registry node " + byteArrayToString(windowsAbsolutePath()) +
-                " at root 0x" + Integer.toHexString(nativeHandle) +
-                ". Windows RegOpenKey(...) returned error code " +
-                result[ERROR_CODE] + ".");
+            if (result[ERROR_CODE] != ERROR_SUCCESS) {
+                logger().warning("Could not open windows registry node " +
+                        byteArrayToString(windowsAbsolutePath()) +
+                        " at root 0x" + Integer.toHexString(nativeHandle) +
+                        ". Windows RegOpenKey(...) returned error code " +
+                        result[ERROR_CODE] + ".");
                 result[NATIVE_HANDLE] = NULL_NATIVE_HANDLE;
-             }
-             return result[NATIVE_HANDLE];
+            }
+            return result[NATIVE_HANDLE];
         } else {
             int separatorPosition = -1;
             // Be greedy - open the longest possible path
@@ -595,10 +598,12 @@
     private void closeKey(int nativeHandle) {
         int result = WindowsRegCloseKey(nativeHandle);
         if (result != ERROR_SUCCESS) {
-            logger().warning("Could not close windows "
-            + "registry node " + byteArrayToString(windowsAbsolutePath()) +
-            " at root 0x" + Integer.toHexString(rootNativeHandle()) +
-            ". Windows RegCloseKey(...) returned error code " + result + ".");
+            logger().warning("Could not close windows registry node " +
+                    byteArrayToString(windowsAbsolutePath()) +
+                    " at root 0x" +
+                    Integer.toHexString(rootNativeHandle()) +
+                    ". Windows RegCloseKey(...) returned error code " +
+                    result + ".");
         }
     }
 
@@ -609,22 +614,25 @@
      * @see #getSpi(String)
      */
     protected void putSpi(String javaName, String value) {
-    int nativeHandle = openKey(KEY_SET_VALUE);
-    if (nativeHandle == NULL_NATIVE_HANDLE) {
-        isBackingStoreAvailable = false;
-        return;
-    }
-    int result =  WindowsRegSetValueEx1(nativeHandle,
-                          toWindowsName(javaName), toWindowsValueString(value));
-    if (result != ERROR_SUCCESS) {
-        logger().warning("Could not assign value to key " +
-        byteArrayToString(toWindowsName(javaName))+ " at Windows registry node "
-       + byteArrayToString(windowsAbsolutePath()) + " at root 0x"
-       + Integer.toHexString(rootNativeHandle()) +
-       ". Windows RegSetValueEx(...) returned error code " + result + ".");
-        isBackingStoreAvailable = false;
+        int nativeHandle = openKey(KEY_SET_VALUE);
+        if (nativeHandle == NULL_NATIVE_HANDLE) {
+            isBackingStoreAvailable = false;
+            return;
         }
-    closeKey(nativeHandle);
+        int result = WindowsRegSetValueEx1(nativeHandle,
+                toWindowsName(javaName), toWindowsValueString(value));
+        if (result != ERROR_SUCCESS) {
+            logger().warning("Could not assign value to key " +
+                    byteArrayToString(toWindowsName(javaName)) +
+                    " at Windows registry node " +
+                    byteArrayToString(windowsAbsolutePath()) +
+                    " at root 0x" +
+                    Integer.toHexString(rootNativeHandle()) +
+                    ". Windows RegSetValueEx(...) returned error code " +
+                    result + ".");
+            isBackingStoreAvailable = false;
+        }
+        closeKey(nativeHandle);
     }
 
     /**
@@ -663,12 +671,12 @@
         int result =
             WindowsRegDeleteValue(nativeHandle, toWindowsName(key));
         if (result != ERROR_SUCCESS && result != ERROR_FILE_NOT_FOUND) {
-            logger().warning("Could not delete windows registry "
-            + "value " + byteArrayToString(windowsAbsolutePath())+ "\\" +
-            toWindowsName(key) + " at root 0x" +
-            Integer.toHexString(rootNativeHandle()) +
-            ". Windows RegDeleteValue(...) returned error code " +
-            result + ".");
+            logger().warning("Could not delete windows registry value " +
+                    byteArrayToString(windowsAbsolutePath()) + "\\" +
+                    toWindowsName(key) + " at root 0x" +
+                    Integer.toHexString(rootNativeHandle()) +
+                    ". Windows RegDeleteValue(...) returned error code " +
+                    result + ".");
             isBackingStoreAvailable = false;
         }
         closeKey(nativeHandle);
@@ -684,17 +692,20 @@
         // Find out the number of values
         int nativeHandle = openKey(KEY_QUERY_VALUE);
         if (nativeHandle == NULL_NATIVE_HANDLE) {
-            throw new BackingStoreException("Could not open windows"
-            + "registry node " + byteArrayToString(windowsAbsolutePath()) +
-            " at root 0x" + Integer.toHexString(rootNativeHandle()) + ".");
+            throw new BackingStoreException(
+                    "Could not open windows registry node " +
+                    byteArrayToString(windowsAbsolutePath()) +
+                    " at root 0x" +
+                    Integer.toHexString(rootNativeHandle()) + ".");
         }
         int[] result =  WindowsRegQueryInfoKey1(nativeHandle);
         if (result[ERROR_CODE] != ERROR_SUCCESS) {
-            String info = "Could not query windows"
-            + "registry node " + byteArrayToString(windowsAbsolutePath()) +
-            " at root 0x" + Integer.toHexString(rootNativeHandle()) +
-            ". Windows RegQueryInfoKeyEx(...) returned error code " +
-            result[ERROR_CODE] + ".";
+            String info = "Could not query windows registry node " +
+                    byteArrayToString(windowsAbsolutePath()) +
+                    " at root 0x" +
+                    Integer.toHexString(rootNativeHandle()) +
+                    ". Windows RegQueryInfoKeyEx(...) returned error code " +
+                    result[ERROR_CODE] + ".";
             logger().warning(info);
             throw new BackingStoreException(info);
         }
@@ -703,17 +714,17 @@
         if (valuesNumber == 0) {
             closeKey(nativeHandle);
             return new String[0];
-       }
-       // Get the values
-       String[] valueNames = new String[valuesNumber];
-       for (int i = 0; i < valuesNumber; i++) {
+        }
+        // Get the values
+        String[] valueNames = new String[valuesNumber];
+        for (int i = 0; i < valuesNumber; i++) {
             byte[] windowsName = WindowsRegEnumValue1(nativeHandle, i,
-                                                        maxValueNameLength+1);
+                                                      maxValueNameLength+1);
             if (windowsName == null) {
                 String info =
-                "Could not enumerate value #" + i + "  of windows node " +
-                byteArrayToString(windowsAbsolutePath()) + " at root 0x" +
-                Integer.toHexString(rootNativeHandle()) + ".";
+                    "Could not enumerate value #" + i + "  of windows node " +
+                    byteArrayToString(windowsAbsolutePath()) + " at root 0x" +
+                    Integer.toHexString(rootNativeHandle()) + ".";
                 logger().warning(info);
                 throw new BackingStoreException(info);
             }
@@ -731,20 +742,22 @@
      */
     protected String[] childrenNamesSpi() throws BackingStoreException {
         // Open key
-        int nativeHandle = openKey(KEY_ENUMERATE_SUB_KEYS| KEY_QUERY_VALUE);
+        int nativeHandle = openKey(KEY_ENUMERATE_SUB_KEYS | KEY_QUERY_VALUE);
         if (nativeHandle == NULL_NATIVE_HANDLE) {
-            throw new BackingStoreException("Could not open windows"
-            + "registry node " + byteArrayToString(windowsAbsolutePath()) +
-            " at root 0x" + Integer.toHexString(rootNativeHandle()) + ".");
+            throw new BackingStoreException(
+                    "Could not open windows registry node " +
+                    byteArrayToString(windowsAbsolutePath()) +
+                    " at root 0x" +
+                    Integer.toHexString(rootNativeHandle()) + ".");
         }
         // Get number of children
         int[] result =  WindowsRegQueryInfoKey1(nativeHandle);
         if (result[ERROR_CODE] != ERROR_SUCCESS) {
-            String info = "Could not query windows"
-            + "registry node " + byteArrayToString(windowsAbsolutePath()) +
-            " at root 0x" + Integer.toHexString(rootNativeHandle()) +
-            ". Windows RegQueryInfoKeyEx(...) returned error code " +
-            result[ERROR_CODE] + ".";
+            String info = "Could not query windows registry node " +
+                    byteArrayToString(windowsAbsolutePath()) +
+                    " at root 0x" + Integer.toHexString(rootNativeHandle()) +
+                    ". Windows RegQueryInfoKeyEx(...) returned error code " +
+                    result[ERROR_CODE] + ".";
             logger().warning(info);
             throw new BackingStoreException(info);
         }
@@ -759,12 +772,12 @@
         // Get children
         for (int i = 0; i < subKeysNumber; i++) {
             byte[] windowsName = WindowsRegEnumKeyEx1(nativeHandle, i,
-                                                                maxKeyLength+1);
+                                                      maxKeyLength+1);
             if (windowsName == null) {
                 String info =
-                "Could not enumerate key #" + i + "  of windows node " +
-                byteArrayToString(windowsAbsolutePath()) + " at root 0x" +
-                Integer.toHexString(rootNativeHandle()) + ". ";
+                    "Could not enumerate key #" + i + "  of windows node " +
+                    byteArrayToString(windowsAbsolutePath()) + " at root 0x" +
+                    Integer.toHexString(rootNativeHandle()) + ". ";
                 logger().warning(info);
                 throw new BackingStoreException(info);
             }
@@ -789,20 +802,24 @@
         }
         if (!isBackingStoreAvailable) {
             throw new BackingStoreException(
-                                       "flush(): Backing store not available.");
+                    "flush(): Backing store not available.");
         }
         int nativeHandle = openKey(KEY_READ);
         if (nativeHandle == NULL_NATIVE_HANDLE) {
-            throw new BackingStoreException("Could not open windows"
-            + "registry node " + byteArrayToString(windowsAbsolutePath()) +
-            " at root 0x" + Integer.toHexString(rootNativeHandle()) + ".");
+            throw new BackingStoreException(
+                    "Could not open windows registry node " +
+                    byteArrayToString(windowsAbsolutePath()) +
+                    " at root 0x" +
+                    Integer.toHexString(rootNativeHandle()) + ".");
         }
         int result = WindowsRegFlushKey1(nativeHandle);
         if (result != ERROR_SUCCESS) {
-            String info = "Could not flush windows "
-            + "registry node " + byteArrayToString(windowsAbsolutePath())
-            + " at root 0x" + Integer.toHexString(rootNativeHandle()) +
-            ". Windows RegFlushKey(...) returned error code " + result + ".";
+            String info = "Could not flush windows registry node " +
+                    byteArrayToString(windowsAbsolutePath()) +
+                    " at root 0x" +
+                    Integer.toHexString(rootNativeHandle()) +
+                    ". Windows RegFlushKey(...) returned error code " +
+                    result + ".";
             logger().warning(info);
             throw new BackingStoreException(info);
         }
@@ -829,7 +846,7 @@
      * Logs a warning message, if Windows Registry is unavailable.
      */
     protected AbstractPreferences childSpi(String name) {
-            return new WindowsPreferences(this, name);
+        return new WindowsPreferences(this, name);
     }
 
     /**
@@ -840,20 +857,22 @@
      */
     public void removeNodeSpi() throws BackingStoreException {
         int parentNativeHandle =
-                         ((WindowsPreferences)parent()).openKey(DELETE);
+                ((WindowsPreferences)parent()).openKey(DELETE);
         if (parentNativeHandle == NULL_NATIVE_HANDLE) {
-            throw new BackingStoreException("Could not open parent windows"
-            + "registry node of " + byteArrayToString(windowsAbsolutePath()) +
-            " at root 0x" + Integer.toHexString(rootNativeHandle()) + ".");
+            throw new BackingStoreException(
+                    "Could not open parent windows registry node of " +
+                    byteArrayToString(windowsAbsolutePath()) +
+                    " at root 0x" +
+                    Integer.toHexString(rootNativeHandle()) + ".");
         }
         int result =
                 WindowsRegDeleteKey(parentNativeHandle, toWindowsName(name()));
         if (result != ERROR_SUCCESS) {
-            String info = "Could not delete windows "
-            + "registry node " + byteArrayToString(windowsAbsolutePath()) +
-            " at root 0x" + Integer.toHexString(rootNativeHandle()) +
-            ". Windows RegDeleteKeyEx(...) returned error code " +
-            result + ".";
+            String info = "Could not delete windows registry node " +
+                    byteArrayToString(windowsAbsolutePath()) +
+                    " at root 0x" + Integer.toHexString(rootNativeHandle()) +
+                    ". Windows RegDeleteKeyEx(...) returned error code " +
+                    result + ".";
             logger().warning(info);
             throw new BackingStoreException(info);
         }
@@ -870,23 +889,25 @@
     private static String toJavaName(byte[] windowsNameArray) {
         String windowsName = byteArrayToString(windowsNameArray);
         // check if Alt64
-        if ((windowsName.length()>1) &&
-                                   (windowsName.substring(0,2).equals("/!"))) {
+        if ((windowsName.length() > 1) &&
+                (windowsName.substring(0, 2).equals("/!"))) {
             return toJavaAlt64Name(windowsName);
         }
-        StringBuffer javaName = new StringBuffer();
+        StringBuilder javaName = new StringBuilder();
         char ch;
         // Decode from simple encoding
-        for (int i = 0; i < windowsName.length(); i++){
+        for (int i = 0; i < windowsName.length(); i++) {
             if ((ch = windowsName.charAt(i)) == '/') {
                 char next = ' ';
                 if ((windowsName.length() > i + 1) &&
-                   ((next = windowsName.charAt(i+1)) >= 'A') && (next <= 'Z')) {
-                ch = next;
-                i++;
-                } else  if ((windowsName.length() > i + 1) && (next == '/')) {
-                ch = '\\';
-                i++;
+                        ((next = windowsName.charAt(i+1)) >= 'A') &&
+                        (next <= 'Z')) {
+                    ch = next;
+                    i++;
+                } else if ((windowsName.length() > i + 1) &&
+                           (next == '/')) {
+                    ch = '\\';
+                    i++;
                 }
             } else if (ch == '\\') {
                 ch = '/';
@@ -905,8 +926,8 @@
 
     private static String toJavaAlt64Name(String windowsName) {
         byte[] byteBuffer =
-                          Base64.altBase64ToByteArray(windowsName.substring(2));
-        StringBuffer result = new StringBuffer();
+                Base64.altBase64ToByteArray(windowsName.substring(2));
+        StringBuilder result = new StringBuilder();
         for (int i = 0; i < byteBuffer.length; i++) {
             int firstbyte = (byteBuffer[i++] & 0xff);
             int secondbyte =  (byteBuffer[i] & 0xff);
@@ -936,10 +957,10 @@
      * Base64 class.
      */
     private static byte[] toWindowsName(String javaName) {
-        StringBuffer windowsName = new StringBuffer();
+        StringBuilder windowsName = new StringBuilder();
         for (int i = 0; i < javaName.length(); i++) {
-            char ch =javaName.charAt(i);
-            if ((ch < 0x0020)||(ch > 0x007f)) {
+            char ch = javaName.charAt(i);
+            if ((ch < 0x0020) || (ch > 0x007f)) {
                 // If a non-trivial character encountered, use altBase64
                 return toWindowsAlt64Name(javaName);
             }
@@ -948,7 +969,7 @@
             } else if (ch == '/') {
                 windowsName.append('\\');
             } else if ((ch >= 'A') && (ch <='Z')) {
-                windowsName.append("/" + ch);
+                windowsName.append('/').append(ch);
             } else {
                 windowsName.append(ch);
             }
@@ -967,13 +988,13 @@
         // Convert to byte pairs
         int counter = 0;
         for (int i = 0; i < javaName.length();i++) {
-                int ch = javaName.charAt(i);
-                javaNameArray[counter++] = (byte)(ch >>> 8);
-                javaNameArray[counter++] = (byte)ch;
+            int ch = javaName.charAt(i);
+            javaNameArray[counter++] = (byte)(ch >>> 8);
+            javaNameArray[counter++] = (byte)ch;
         }
 
-        return stringToByteArray(
-                           "/!" + Base64.byteArrayToAltBase64(javaNameArray));
+        return stringToByteArray("/!" +
+                Base64.byteArrayToAltBase64(javaNameArray));
     }
 
     /**
@@ -985,30 +1006,31 @@
      private static String toJavaValueString(byte[] windowsNameArray) {
         // Use modified native2ascii algorithm
         String windowsName = byteArrayToString(windowsNameArray);
-        StringBuffer javaName = new StringBuffer();
+        StringBuilder javaName = new StringBuilder();
         char ch;
         for (int i = 0; i < windowsName.length(); i++){
             if ((ch = windowsName.charAt(i)) == '/') {
                 char next = ' ';
 
                 if (windowsName.length() > i + 1 &&
-                                    (next = windowsName.charAt(i + 1)) == 'u') {
-                    if (windowsName.length() < i + 6){
+                        (next = windowsName.charAt(i + 1)) == 'u') {
+                    if (windowsName.length() < i + 6) {
                         break;
                     } else {
-                        ch = (char)Integer.parseInt
-                                      (windowsName.substring(i + 2, i + 6), 16);
+                        ch = (char)Integer.parseInt(
+                                windowsName.substring(i + 2, i + 6), 16);
                         i += 5;
                     }
                 } else
                 if ((windowsName.length() > i + 1) &&
-                          ((windowsName.charAt(i+1)) >= 'A') && (next <= 'Z')) {
-                ch = next;
-                i++;
-                } else  if ((windowsName.length() > i + 1) &&
-                                               (next == '/')) {
-                ch = '\\';
-                i++;
+                        ((windowsName.charAt(i+1)) >= 'A') &&
+                        (next <= 'Z')) {
+                    ch = next;
+                    i++;
+                } else if ((windowsName.length() > i + 1) &&
+                        (next == '/')) {
+                    ch = '\\';
+                    i++;
                 }
             } else if (ch == '\\') {
                 ch = '/';
@@ -1028,14 +1050,14 @@
      * to convert java string to a byte array of ASCII characters.
      */
     private static byte[] toWindowsValueString(String javaName) {
-        StringBuffer windowsName = new StringBuffer();
+        StringBuilder windowsName = new StringBuilder();
         for (int i = 0; i < javaName.length(); i++) {
-            char ch =javaName.charAt(i);
-            if ((ch < 0x0020)||(ch > 0x007f)){
+            char ch = javaName.charAt(i);
+            if ((ch < 0x0020) || (ch > 0x007f)){
                 // write \udddd
                 windowsName.append("/u");
                 String hex = Integer.toHexString(javaName.charAt(i));
-                StringBuffer hex4 = new StringBuffer(hex);
+                StringBuilder hex4 = new StringBuilder(hex);
                 hex4.reverse();
                 int len = 4 - hex4.length();
                 for (int j = 0; j < len; j++){
@@ -1049,7 +1071,7 @@
             } else if (ch == '/') {
                 windowsName.append('\\');
             } else if ((ch >= 'A') && (ch <='Z')) {
-                windowsName.append("/" + ch);
+                windowsName.append('/').append(ch);
             } else {
                 windowsName.append(ch);
             }
@@ -1061,8 +1083,9 @@
      * Returns native handle for the top Windows node for this node.
      */
     private int rootNativeHandle() {
-        return (isUserNode()? USER_ROOT_NATIVE_HANDLE :
-                              SYSTEM_ROOT_NATIVE_HANDLE);
+        return (isUserNode()
+                ? USER_ROOT_NATIVE_HANDLE
+                : SYSTEM_ROOT_NATIVE_HANDLE);
     }
 
     /**
@@ -1081,7 +1104,7 @@
      * Converts a null-terminated byte array to java string
      */
     private static String byteArrayToString(byte[] array) {
-        StringBuffer result = new StringBuffer();
+        StringBuilder result = new StringBuilder();
         for (int i = 0; i < array.length - 1; i++) {
             result.append((char)array[i]);
         }