Skip to content

Commit aff0095

Browse files
author
planetlevel
committed
Switch from StringBuffer to StringBuilder for performance in threadsafe locations
Commit change from old GUID generation algorithm to Java 5 UUID
1 parent cf2c357 commit aff0095

17 files changed

Lines changed: 36 additions & 84 deletions

src/main/java/org/owasp/esapi/StringUtilities.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public static String replaceLinearWhiteSpace( String input ) {
3939
* @return the stripped value
4040
*/
4141
public static String stripControls( String input ) {
42-
StringBuffer sb = new StringBuffer();
42+
StringBuilder sb = new StringBuilder();
4343
for ( int i=0; i<input.length(); i++ ) {
4444
char c = input.charAt( i );
4545
if ( c > 0x20 && c < 0x7f ) {
@@ -60,7 +60,7 @@ public static String stripControls( String input ) {
6060
* @return the char[]
6161
*/
6262
public static char[] union(char[] c1, char[] c2) {
63-
StringBuffer sb = new StringBuffer();
63+
StringBuilder sb = new StringBuilder();
6464
for (int i = 0; i < c1.length; i++) {
6565
if (!contains(sb, c1[i]))
6666
sb.append(c1[i]);
@@ -77,12 +77,12 @@ public static char[] union(char[] c1, char[] c2) {
7777

7878

7979
/**
80-
* Returns true if the character is contained in the provided StringBuffer.
80+
* Returns true if the character is contained in the provided StringBuilder.
8181
* @param input
8282
* @param c
8383
* @return
8484
*/
85-
public static boolean contains(StringBuffer input, char c) {
85+
public static boolean contains(StringBuilder input, char c) {
8686
for (int i = 0; i < input.length(); i++) {
8787
if (input.charAt(i) == c)
8888
return true;

src/main/java/org/owasp/esapi/codecs/CSSCodec.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public Character decodeCharacter(PushbackString input) {
8383
// look for \HHH format
8484
if (input.isHexDigit(second)) {
8585
// Search for up to 6 hex digits following until a space
86-
StringBuffer sb = new StringBuffer();
86+
StringBuilder sb = new StringBuilder();
8787
sb.append(second);
8888
for (int i = 0; i < 5; i++) {
8989
Character c = input.next();

src/main/java/org/owasp/esapi/codecs/Codec.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public Codec() {
6363
* @return the encoded String
6464
*/
6565
public String encode(char[] immune, String input) {
66-
StringBuffer sb = new StringBuffer();
66+
StringBuilder sb = new StringBuilder();
6767
for (int i = 0; i < input.length(); i++) {
6868
char c = input.charAt(i);
6969
sb.append(encodeCharacter(immune, new Character(c)));
@@ -99,7 +99,7 @@ public String encodeCharacter( char[] immune, Character c ) {
9999
* the decoded String
100100
*/
101101
public String decode(String input) {
102-
StringBuffer sb = new StringBuffer();
102+
StringBuilder sb = new StringBuilder();
103103
PushbackString pbs = new PushbackString(input);
104104
while (pbs.hasNext()) {
105105
Character c = decodeCharacter(pbs);

src/main/java/org/owasp/esapi/codecs/HTMLEntityCodec.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ private Character getNumericEntity( PushbackString input ) {
152152
* @throws NumberFormatException
153153
*/
154154
private Character parseNumber( PushbackString input ) {
155-
StringBuffer sb = new StringBuffer();
155+
StringBuilder sb = new StringBuilder();
156156
while( input.hasNext() ) {
157157
Character c = input.peek();
158158

@@ -192,7 +192,7 @@ private Character parseNumber( PushbackString input ) {
192192
* @throws NumberFormatException
193193
*/
194194
private Character parseHex( PushbackString input ) {
195-
StringBuffer sb = new StringBuffer();
195+
StringBuilder sb = new StringBuilder();
196196
while( input.hasNext() ) {
197197
Character c = input.peek();
198198

@@ -242,7 +242,7 @@ private Character parseHex( PushbackString input ) {
242242
*/
243243
private Character getNamedEntity( PushbackString input ) {
244244
// search through the rest of the string up to 6 characters
245-
StringBuffer possible = new StringBuffer();
245+
StringBuilder possible = new StringBuilder();
246246
int len = Math.min( input.remainder().length(), 7 );
247247
for ( int i=0; i<len; i++ ) {
248248
possible.append( Character.toLowerCase(input.next().charValue()) );

src/main/java/org/owasp/esapi/codecs/JavaScriptCodec.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ public Character decodeCharacter( PushbackString input ) {
133133
// look for \\xXX format
134134
} else if ( Character.toLowerCase( second.charValue() ) == 'x' ) {
135135
// Search for exactly 2 hex digits following
136-
StringBuffer sb = new StringBuffer();
136+
StringBuilder sb = new StringBuilder();
137137
for ( int i=0; i<2; i++ ) {
138138
Character c = input.nextHex();
139139
if ( c != null ) sb.append( c );
@@ -157,7 +157,7 @@ public Character decodeCharacter( PushbackString input ) {
157157
// look for \\uXXXX format
158158
} else if ( Character.toLowerCase( second.charValue() ) == 'u') {
159159
// Search for exactly 4 hex digits following
160-
StringBuffer sb = new StringBuffer();
160+
StringBuilder sb = new StringBuilder();
161161
for ( int i=0; i<4; i++ ) {
162162
Character c = input.nextHex();
163163
if ( c != null ) sb.append( c );
@@ -180,7 +180,7 @@ public Character decodeCharacter( PushbackString input ) {
180180

181181
// look for one, two, or three octal digits
182182
} else if ( input.isOctalDigit( second.charValue() ) ) {
183-
StringBuffer sb = new StringBuffer();
183+
StringBuilder sb = new StringBuilder();
184184
// get digit 1
185185
sb.append(second);
186186

src/main/java/org/owasp/esapi/codecs/PercentCodec.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public Character decodeCharacter( PushbackString input ) {
7878
}
7979

8080
// Search for exactly 2 hex digits following
81-
StringBuffer sb = new StringBuffer();
81+
StringBuilder sb = new StringBuilder();
8282
for ( int i=0; i<2; i++ ) {
8383
Character c = input.nextHex();
8484
if ( c != null ) sb.append( c );

src/main/java/org/owasp/esapi/codecs/VBScriptCodec.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public class VBScriptCodec extends Codec {
3737
* @return the encoded String
3838
*/
3939
public String encode(char[] immune, String input) {
40-
StringBuffer sb = new StringBuffer();
40+
StringBuilder sb = new StringBuilder();
4141
boolean encoding = false;
4242
boolean inquotes = false;
4343
for ( int i=0; i<input.length(); i++ ) {

src/main/java/org/owasp/esapi/reference/DefaultEncoder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ public String encodeForLDAP(String input) {
265265
return null;
266266
}
267267
// TODO: replace with LDAP codec
268-
StringBuffer sb = new StringBuffer();
268+
StringBuilder sb = new StringBuilder();
269269
for (int i = 0; i < input.length(); i++) {
270270
char c = input.charAt(i);
271271
switch (c) {
@@ -299,7 +299,7 @@ public String encodeForDN(String input) {
299299
return null;
300300
}
301301
// TODO: replace with DN codec
302-
StringBuffer sb = new StringBuffer();
302+
StringBuilder sb = new StringBuilder();
303303
if ((input.length() > 0) && ((input.charAt(0) == ' ') || (input.charAt(0) == '#'))) {
304304
sb.append('\\'); // add the leading backslash if needed
305305
}

src/main/java/org/owasp/esapi/reference/DefaultExecutor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ public String executeSystemCommand(File executable, List params, File workdir, C
157157
private String readStream( InputStream is ) throws IOException {
158158
InputStreamReader isr = new InputStreamReader(is);
159159
BufferedReader br = new BufferedReader(isr);
160-
StringBuffer sb = new StringBuffer();
160+
StringBuilder sb = new StringBuilder();
161161
String line;
162162
while ((line = br.readLine()) != null) {
163163
sb.append(line + "\n");

src/main/java/org/owasp/esapi/reference/DefaultHTTPUtilities.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,7 @@ public String encryptQueryString(String query) throws EncryptionException {
425425
* @throws EncryptionException
426426
*/
427427
public void encryptStateInCookie(HttpServletResponse response, Map cleartext) throws EncryptionException {
428-
StringBuffer sb = new StringBuffer();
428+
StringBuilder sb = new StringBuilder();
429429
Iterator i = cleartext.entrySet().iterator();
430430
while ( i.hasNext() ) {
431431
try {
@@ -752,7 +752,7 @@ public void logHTTPRequest(HttpServletRequest request, Logger logger) {
752752
* @param request
753753
*/
754754
public void logHTTPRequest(HttpServletRequest request, Logger logger, List parameterNamesToObfuscate) {
755-
StringBuffer params = new StringBuffer();
755+
StringBuilder params = new StringBuilder();
756756
Iterator i = request.getParameterMap().keySet().iterator();
757757
while (i.hasNext()) {
758758
String key = (String) i.next();

0 commit comments

Comments
 (0)