fromBuffer method fixed for arrays of zero length BLD200604301800
authordprusa@netbeans.org
Tue, 04 Apr 2006 12:33:07 +0000
changeset 17569fba71760525
parent 1755 e9d2c0491fcc
child 1757 ec3f66577d58
fromBuffer method fixed for arrays of zero length
mdr/src/org/netbeans/mdr/persistence/btreeimpl/btreeindex/StringInfo.java
     1.1 --- a/mdr/src/org/netbeans/mdr/persistence/btreeimpl/btreeindex/StringInfo.java	Tue Mar 28 14:54:43 2006 +0000
     1.2 +++ b/mdr/src/org/netbeans/mdr/persistence/btreeimpl/btreeindex/StringInfo.java	Tue Apr 04 12:33:07 2006 +0000
     1.3 @@ -71,22 +71,24 @@
     1.4          int length = buffer.length;
     1.5          int offset = 0;
     1.6          StringBuffer sb = new StringBuffer(length);
     1.7 -        do {
     1.8 -            int b = buffer[offset++] & 0xff;
     1.9 -            length--;
    1.10 -            if (b >= 0xe0) {
    1.11 -                b = (b & 0x0f) << 12;
    1.12 -                b |= (buffer[offset++] & 0x3f) << 6;
    1.13 -                b |= buffer[offset++] & 0x3f;
    1.14 +        if (length > 0) {
    1.15 +            do {
    1.16 +                int b = buffer[offset++] & 0xff;
    1.17                  length--;
    1.18 -                length--;
    1.19 -            } else if (b >= 0xc0) {
    1.20 -                b = (b & 0x1f) << 6;
    1.21 -                b |= buffer[offset++] & 0x3f;
    1.22 -                length--;
    1.23 -            }
    1.24 -            sb.append((char)b);
    1.25 -        } while (length > 0);
    1.26 +                if (b >= 0xe0) {
    1.27 +                    b = (b & 0x0f) << 12;
    1.28 +                    b |= (buffer[offset++] & 0x3f) << 6;
    1.29 +                    b |= buffer[offset++] & 0x3f;
    1.30 +                    length--;
    1.31 +                    length--;
    1.32 +                } else if (b >= 0xc0) {
    1.33 +                    b = (b & 0x1f) << 6;
    1.34 +                    b |= buffer[offset++] & 0x3f;
    1.35 +                    length--;
    1.36 +                }
    1.37 +                sb.append((char)b);
    1.38 +            } while (length > 0);
    1.39 +        }
    1.40          return new String(sb);
    1.41      }
    1.42