Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37767753
en ru br
Репозитории ALT
S:2.3.8-alt1_15jpp11
www.altlinux.org/Changes

Группа :: Разработка/Java
Пакет: java-base64

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: java-base64-2.3.8-elasticsearch.patch
Скачать


--- src/main/java/net/iharder/Base64.java	2010-03-29 20:54:45.000000000 +0200
+++ src/main/java/net/iharder/Base64.java.elasticsearch	2015-02-18 23:43:01.174030315 +0100
@@ -1,5 +1,8 @@
 package net.iharder;
 
+import java.nio.charset.Charset;
+import java.util.Locale;
+
 /**
  * <p>Encodes and decodes to and from Base64 notation.</p>
  * <p>Homepage: <a href="http://iharder.net/base64">http://iharder.net/base64</a>.</p>
@@ -208,7 +211,7 @@
     
     
     /** Preferred encoding. */
-    private final static String PREFERRED_ENCODING = "US-ASCII";
+    public final static Charset PREFERRED_ENCODING = Charset.forName("US-ASCII");
     
 	
     private final static byte WHITE_SPACE_ENC = -5; // Indicates white space in encoding
@@ -690,13 +693,7 @@
         }   // end finally
         
         // Return value according to relevant encoding.
-        try {
-            return new String( baos.toByteArray(), PREFERRED_ENCODING );
-        }   // end try
-        catch (java.io.UnsupportedEncodingException uue){
-            // Fall back to some Java default
-            return new String( baos.toByteArray() );
-        }   // end catch
+        return new String(baos.toByteArray(), PREFERRED_ENCODING);
         
     }   // end encode
     
@@ -831,12 +828,7 @@
         byte[] encoded = encodeBytesToBytes( source, off, len, options );
 
         // Return value according to relevant encoding.
-        try {
-            return new String( encoded, PREFERRED_ENCODING );
-        }   // end try
-        catch (java.io.UnsupportedEncodingException uue) {
-            return new String( encoded );
-        }   // end catch
+        return new String(encoded, PREFERRED_ENCODING);
         
     }   // end encodeBytes
 
@@ -899,7 +891,7 @@
 
         if( off + len > source.length  ){
             throw new IllegalArgumentException(
-            String.format( "Cannot have offset of %d and length of %d with array of length %d", off,len,source.length));
+            String.format(Locale.ROOT, "Cannot have offset of %d and length of %d with array of length %d", off, len, source.length));
         }   // end if: off < 0
 
 
@@ -1039,12 +1031,12 @@
             throw new NullPointerException( "Destination array was null." );
         }   // end if
         if( srcOffset < 0 || srcOffset + 3 >= source.length ){
-            throw new IllegalArgumentException( String.format(
-            "Source array with length %d cannot have offset of %d and still process four bytes.", source.length, srcOffset ) );
+            throw new IllegalArgumentException(String.format(Locale.ROOT,
+                     "Source array with length %d cannot have offset of %d and still process four bytes.", source.length, srcOffset));
         }   // end if
         if( destOffset < 0 || destOffset +2 >= destination.length ){
-            throw new IllegalArgumentException( String.format(
-            "Destination array with length %d cannot have offset of %d and still store three bytes.", destination.length, destOffset ) );
+            throw new IllegalArgumentException(String.format(Locale.ROOT,
+                     "Destination array with length %d cannot have offset of %d and still store three bytes.", destination.length, destOffset));
         }   // end if
         
         
@@ -1153,8 +1145,8 @@
             throw new NullPointerException( "Cannot decode null source array." );
         }   // end if
         if( off < 0 || off + len > source.length ){
-            throw new IllegalArgumentException( String.format(
-            "Source array with length %d cannot have offset of %d and process %d bytes.", source.length, off, len ) );
+            throw new IllegalArgumentException(String.format(Locale.ROOT,
+                     "Source array with length %d cannot have offset of %d and process %d bytes.", source.length, off, len));
         }   // end if
         
         if( len == 0 ){
@@ -1191,15 +1183,26 @@
                         
                         // If that was the equals sign, break out of 'for' loop
                         if( source[i] == EQUALS_SIGN ) {
+                            // check if the equals sign is somewhere in between
+                            if (i + 1 < len + off) {
+                                throw new java.io.IOException(String.format(Locale.ROOT,
+                                        "Found equals sign at position %d of the base64 string, not at the end", i));
+                            }
                             break;
                         }   // end if: equals sign
                     }   // end if: quartet built
+                    else {
+                        if (source[i] == EQUALS_SIGN && len + off > i && source[i + 1] != EQUALS_SIGN) {
+                            throw new java.io.IOException(String.format(Locale.ROOT,
+                                    "Found equals sign at position %d of the base64 string, not at the end", i));
+                        } // enf if: equals sign and next character not as well
+                    } // end else:
                 }   // end if: equals sign or better
             }   // end if: white space, equals sign or better
             else {
                 // There's a bad input character in the Base64 stream.
-                throw new java.io.IOException( String.format(
-                "Bad Base64 input character decimal %d in array position %d", ((int)source[i])&0xFF, i ) );
+                throw new java.io.IOException(String.format(Locale.ROOT,
+                         "Bad Base64 input character decimal %d in array position %d", ((int) source[i]) & 0xFF, i));
             }   // end else: 
         }   // each input character
                                    
@@ -1243,13 +1246,7 @@
             throw new NullPointerException( "Input string was null." );
         }   // end if
         
-        byte[] bytes;
-        try {
-            bytes = s.getBytes( PREFERRED_ENCODING );
-        }   // end try
-        catch( java.io.UnsupportedEncodingException uee ) {
-            bytes = s.getBytes();
-        }   // end catch
+        byte[] bytes = s.getBytes(PREFERRED_ENCODING);
 		//</change>
         
         // Decode
@@ -1282,7 +1279,7 @@
 
                 }   // end try
                 catch( java.io.IOException e ) {
-                    e.printStackTrace();
+                    // e.printStackTrace();
                     // Just return originally-decoded bytes
                 }   // end catch
                 finally {
@@ -1359,7 +1356,7 @@
                     @Override
                     public Class<?> resolveClass(java.io.ObjectStreamClass streamClass)
                     throws java.io.IOException, ClassNotFoundException {
-                        Class c = Class.forName(streamClass.getName(), false, loader);
+                        Class<?> c = Class.forName(streamClass.getName(), false, loader);
                         if( c == null ){
                             return super.resolveClass(streamClass);
                         } else {
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin