src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/staxex/Base64Data.java

changeset 408
b0610cd08440
parent 368
0989ad8c0860
child 637
9c07ef4934dd
     1.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/staxex/Base64Data.java	Thu Sep 26 10:43:28 2013 -0700
     1.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/staxex/Base64Data.java	Fri Oct 04 16:21:34 2013 +0100
     1.3 @@ -287,10 +287,11 @@
     1.4       * @throws IOException if i/o error occurs
     1.5       */
     1.6      public InputStream getInputStream() throws IOException {
     1.7 -        if(dataHandler!=null)
     1.8 +        if(dataHandler!=null) {
     1.9              return dataHandler.getInputStream();
    1.10 -        else
    1.11 +        } else {
    1.12              return new ByteArrayInputStream(data,0,dataLen);
    1.13 +        }
    1.14      }
    1.15  
    1.16      /**
    1.17 @@ -342,8 +343,9 @@
    1.18      }
    1.19  
    1.20      public String getMimeType() {
    1.21 -        if(mimeType==null)
    1.22 +        if (mimeType==null) {
    1.23              return "application/octet-stream";
    1.24 +        }
    1.25          return mimeType;
    1.26      }
    1.27  
    1.28 @@ -376,31 +378,35 @@
    1.29          case 0:
    1.30              return Base64Encoder.encode(data[base]>>2);
    1.31          case 1:
    1.32 -            if(base+1<dataLen)
    1.33 +            if (base+1<dataLen) {
    1.34                  b1 = data[base+1];
    1.35 -            else
    1.36 +            } else {
    1.37                  b1 = 0;
    1.38 +            }
    1.39              return Base64Encoder.encode(
    1.40                          ((data[base]&0x3)<<4) |
    1.41                          ((b1>>4)&0xF));
    1.42          case 2:
    1.43 -            if(base+1<dataLen) {
    1.44 +            if (base+1<dataLen) {
    1.45                  b1 = data[base+1];
    1.46 -                if(base+2<dataLen)
    1.47 +                if (base+2<dataLen) {
    1.48                      b2 = data[base+2];
    1.49 -                else
    1.50 +                } else {
    1.51                      b2 = 0;
    1.52 +                }
    1.53  
    1.54                  return Base64Encoder.encode(
    1.55                              ((b1&0xF)<<2)|
    1.56                              ((b2>>6)&0x3));
    1.57 -            } else
    1.58 +            } else {
    1.59                  return '=';
    1.60 +            }
    1.61          case 3:
    1.62 -            if(base+2<dataLen)
    1.63 +            if(base+2<dataLen) {
    1.64                  return Base64Encoder.encode(data[base+2]&0x3F);
    1.65 -            else
    1.66 +            } else {
    1.67                  return '=';
    1.68 +            }
    1.69          }
    1.70  
    1.71          throw new IllegalStateException();
    1.72 @@ -414,8 +420,9 @@
    1.73      public CharSequence subSequence(int start, int end) {
    1.74          StringBuilder buf = new StringBuilder();
    1.75          get();  // fill in the buffer if we haven't done so
    1.76 -        for( int i=start; i<end; i++ )
    1.77 +        for (int i=start; i<end; i++ ) {
    1.78              buf.append(charAt(i));
    1.79 +        }
    1.80          return buf;
    1.81      }
    1.82  
    1.83 @@ -473,7 +480,25 @@
    1.84  
    1.85      @Override
    1.86      public Base64Data clone() {
    1.87 -        return new Base64Data(this);
    1.88 +        try {
    1.89 +            Base64Data clone = (Base64Data) super.clone();
    1.90 +            clone.get();
    1.91 +            if (clone.dataCloneByRef) {
    1.92 +                this.data = clone.data;
    1.93 +            } else {
    1.94 +                this.data = new byte[clone.dataLen];
    1.95 +                System.arraycopy(clone.data, 0, this.data, 0, clone.dataLen);
    1.96 +            }
    1.97 +
    1.98 +            this.dataCloneByRef = true;
    1.99 +            this.dataLen = clone.dataLen;
   1.100 +            this.dataHandler = null;
   1.101 +            this.mimeType = clone.mimeType;
   1.102 +            return clone;
   1.103 +        } catch (CloneNotSupportedException ex) {
   1.104 +            Logger.getLogger(Base64Data.class.getName()).log(Level.SEVERE, null, ex);
   1.105 +            return null;
   1.106 +        }
   1.107      }
   1.108  
   1.109      static String getProperty(final String propName) {

mercurial