Refactor: use StringBuilder instead of StringBuffer
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index f46e69e..19a0f2c 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -8,6 +8,9 @@
 	<body>

 	    <release version="1.6-SNAPSHOT" date="in Mercurial" description="development">

 	    	<action dev="py4fun" type="update">

+                Refactor: use StringBuilder instead of StringBuffer (2010-01-12)

+            </action>

+            <action dev="py4fun" type="update">

                 Refactor: introduce Constant class to share String constants (2010-01-12)

             </action>

             <action dev="py4fun" type="update">

diff --git a/src/main/java/org/yaml/snakeyaml/emitter/Emitter.java b/src/main/java/org/yaml/snakeyaml/emitter/Emitter.java
index 1ebfcf8..2513f21 100644
--- a/src/main/java/org/yaml/snakeyaml/emitter/Emitter.java
+++ b/src/main/java/org/yaml/snakeyaml/emitter/Emitter.java
@@ -828,7 +828,7 @@
         if (prefix == null || "".equals(prefix)) {
             throw new EmitterException("tag prefix must not be empty");
         }
-        StringBuffer chunks = new StringBuffer();
+        StringBuilder chunks = new StringBuilder();
         int start = 0;
         int end = 0;
         if (prefix.charAt(0) == '!') {
@@ -858,7 +858,7 @@
                 suffix = tag.substring(prefix.length());
             }
         }
-        StringBuffer chunks = new StringBuffer();
+        StringBuilder chunks = new StringBuilder();
         int start = 0;
         int end = 0;
         while (end < suffix.length()) {
@@ -1094,7 +1094,7 @@
 
         if (this.column < indent) {
             this.whitespace = true;
-            StringBuffer data = new StringBuffer();
+            StringBuilder data = new StringBuilder();
             for (int i = 0; i < indent - this.column; i++) {
                 data.append(" ");
             }
@@ -1249,7 +1249,7 @@
     }
 
     private String determineBlockHints(String text) {
-        StringBuffer hints = new StringBuffer();
+        StringBuilder hints = new StringBuilder();
         if (text != null && text.length() > 0) {
             if (Constant.LINEBR.has(" ", text.charAt(0))) {
                 hints.append(bestIndent);
diff --git a/src/main/java/org/yaml/snakeyaml/error/Mark.java b/src/main/java/org/yaml/snakeyaml/error/Mark.java
index e421185..9b5b5ae 100644
--- a/src/main/java/org/yaml/snakeyaml/error/Mark.java
+++ b/src/main/java/org/yaml/snakeyaml/error/Mark.java
@@ -69,7 +69,7 @@
             }

         }

         String snippet = buffer.substring(start, end);

-        StringBuffer result = new StringBuffer();

+        StringBuilder result = new StringBuilder();

         for (int i = 0; i < indent; i++) {

             result.append(" ");

         }

@@ -91,7 +91,7 @@
     @Override

     public String toString() {

         String snippet = get_snippet();

-        StringBuffer where = new StringBuffer(" in \"");

+        StringBuilder where = new StringBuilder(" in \"");

         where.append(name);

         where.append("\", line ");

         where.append(line + 1);

diff --git a/src/main/java/org/yaml/snakeyaml/error/MarkedYAMLException.java b/src/main/java/org/yaml/snakeyaml/error/MarkedYAMLException.java
index 4b4d0d6..50793aa 100644
--- a/src/main/java/org/yaml/snakeyaml/error/MarkedYAMLException.java
+++ b/src/main/java/org/yaml/snakeyaml/error/MarkedYAMLException.java
@@ -53,7 +53,7 @@
 

     @Override

     public String toString() {

-        StringBuffer lines = new StringBuffer();

+        StringBuilder lines = new StringBuilder();

         if (context != null) {

             lines.append(context);

             lines.append("\n");

diff --git a/src/main/java/org/yaml/snakeyaml/nodes/MappingNode.java b/src/main/java/org/yaml/snakeyaml/nodes/MappingNode.java
index 62f7475..a4b5fa0 100644
--- a/src/main/java/org/yaml/snakeyaml/nodes/MappingNode.java
+++ b/src/main/java/org/yaml/snakeyaml/nodes/MappingNode.java
@@ -79,7 +79,7 @@
     @Override
     public String toString() {
         String values;
-        StringBuffer buf = new StringBuffer();
+        StringBuilder buf = new StringBuilder();
         for (NodeTuple node : getValue()) {
             buf.append("{ key=");
             buf.append(node.getKeyNode());
diff --git a/src/main/java/org/yaml/snakeyaml/reader/Reader.java b/src/main/java/org/yaml/snakeyaml/reader/Reader.java
index abb0607..1e08eff 100644
--- a/src/main/java/org/yaml/snakeyaml/reader/Reader.java
+++ b/src/main/java/org/yaml/snakeyaml/reader/Reader.java
@@ -39,14 +39,14 @@
     private final java.io.Reader stream;

     private int pointer = 0;

     private boolean eof = true;

-    private final StringBuffer buffer;

+    private final StringBuilder buffer;

     private int index = 0;

     private int line = 0;

     private int column = 0;

 

     public Reader(String stream) {

         this.name = "<string>";

-        this.buffer = new StringBuffer();

+        this.buffer = new StringBuilder();

         checkPrintable(stream);

         this.buffer.append(stream);

         this.stream = null;

@@ -55,7 +55,7 @@
 

     public Reader(java.io.Reader reader) {

         this.name = "<reader>";

-        this.buffer = new StringBuffer();

+        this.buffer = new StringBuilder();

         this.stream = reader;

         this.eof = false;

     }

diff --git a/src/main/java/org/yaml/snakeyaml/representer/SafeRepresenter.java b/src/main/java/org/yaml/snakeyaml/representer/SafeRepresenter.java
index 50cf8ff..f7f8c38 100644
--- a/src/main/java/org/yaml/snakeyaml/representer/SafeRepresenter.java
+++ b/src/main/java/org/yaml/snakeyaml/representer/SafeRepresenter.java
@@ -210,7 +210,7 @@
             int minutes = calendar.get(Calendar.MINUTE); // 0..59

             int seconds = calendar.get(Calendar.SECOND); // 0..59

             int millis = calendar.get(Calendar.MILLISECOND);

-            StringBuffer buffer = new StringBuffer(String.valueOf(years));

+            StringBuilder buffer = new StringBuilder(String.valueOf(years));

             buffer.append("-");

             if (months < 10) {

                 buffer.append("0");

diff --git a/src/main/java/org/yaml/snakeyaml/scanner/ScannerImpl.java b/src/main/java/org/yaml/snakeyaml/scanner/ScannerImpl.java
index b142ea8..24023a7 100644
--- a/src/main/java/org/yaml/snakeyaml/scanner/ScannerImpl.java
+++ b/src/main/java/org/yaml/snakeyaml/scanner/ScannerImpl.java
@@ -1237,7 +1237,7 @@
         } else {
             folded = false;
         }
-        StringBuffer chunks = new StringBuffer();
+        StringBuilder chunks = new StringBuilder();
         Mark startMark = reader.getMark();
         // Scan the header.
         reader.forward();
@@ -1383,7 +1383,7 @@
 
     private Object[] scanBlockScalarIndentation() {
         // See the specification for details.
-        StringBuffer chunks = new StringBuffer();
+        StringBuilder chunks = new StringBuilder();
         int maxIndent = 0;
         Mark endMark = reader.getMark();
         while (Constant.LINEBR.has(" \r", reader.peek())) {
@@ -1402,7 +1402,7 @@
 
     private Object[] scanBlockScalarBreaks(int indent) {
         // See the specification for details.
-        StringBuffer chunks = new StringBuffer();
+        StringBuilder chunks = new StringBuilder();
         Mark endMark = reader.getMark();
         while (this.reader.getColumn() < indent && reader.peek() == ' ') {
             reader.forward();
@@ -1434,7 +1434,7 @@
         } else {
             _double = false;
         }
-        StringBuffer chunks = new StringBuffer();
+        StringBuilder chunks = new StringBuilder();
         Mark startMark = reader.getMark();
         char quote = reader.peek();
         reader.forward();
@@ -1450,7 +1450,7 @@
 
     private String scanFlowScalarNonSpaces(boolean _double, Mark startMark) {
         // See the specification for details.
-        StringBuffer chunks = new StringBuffer();
+        StringBuilder chunks = new StringBuilder();
         while (true) {
             int length = 0;
             while (!Constant.NULL_BL_T_LINEBR.has("\'\"\\", reader.peek(length))) {
@@ -1502,7 +1502,7 @@
 
     private String scanFlowScalarSpaces(Mark startMark) {
         // See the specification for details.
-        StringBuffer chunks = new StringBuffer();
+        StringBuilder chunks = new StringBuilder();
         int length = 0;
         while (" \t".indexOf(reader.peek(length)) != -1) {
             length++;
@@ -1530,7 +1530,7 @@
 
     private String scanFlowScalarBreaks(Mark startMark) {
         // See the specification for details.
-        StringBuffer chunks = new StringBuffer();
+        StringBuilder chunks = new StringBuilder();
         while (true) {
             // Instead of checking indentation, we check for document
             // separators.
@@ -1561,7 +1561,7 @@
      * </pre>
      */
     private Token scanPlain() {
-        StringBuffer chunks = new StringBuffer();
+        StringBuilder chunks = new StringBuilder();
         Mark startMark = reader.getMark();
         Mark endMark = startMark;
         int indent = this.indent + 1;
@@ -1615,7 +1615,7 @@
      * </pre>
      */
     private String scanPlainSpaces() {
-        StringBuffer chunks = new StringBuffer();
+        StringBuilder chunks = new StringBuilder();
         int length = 0;
         while (reader.peek(length) == ' ') {
             length++;
@@ -1631,7 +1631,7 @@
                     && Constant.NULL_BL_T_LINEBR.has(reader.peek(3))) {
                 return "";
             }
-            StringBuffer breaks = new StringBuffer();
+            StringBuilder breaks = new StringBuilder();
             while (Constant.LINEBR.has(" \r", reader.peek())) {
                 if (reader.peek() == ' ') {
                     reader.forward();
@@ -1691,7 +1691,7 @@
     private String scanTagUri(String name, Mark startMark) {
         // See the specification for details.
         // Note: we do not check if URI is well-formed.
-        StringBuffer chunks = new StringBuffer();
+        StringBuilder chunks = new StringBuilder();
         int length = 0;
         char ch = reader.peek(length);
         while (ALPHA.indexOf(ch) != -1 || "-;/?:@&=+$,_.!~*\'()[]%".indexOf(ch) != -1) {
@@ -1719,7 +1719,7 @@
 
     private String scanUriEscapes(String name, Mark startMark) {
         // See the specification for details.
-        StringBuffer bytes = new StringBuffer();
+        StringBuilder bytes = new StringBuilder();
         while (reader.peek() == '%') {
             reader.forward();
             try {
diff --git a/src/test/java/org/pyyaml/CanonicalLoader.java b/src/test/java/org/pyyaml/CanonicalLoader.java
index 3aaa820..f680dfc 100644
--- a/src/test/java/org/pyyaml/CanonicalLoader.java
+++ b/src/test/java/org/pyyaml/CanonicalLoader.java
@@ -27,7 +27,7 @@
     public Object load(java.io.Reader yaml) {

         try {

             int ch = yaml.read();

-            StringBuffer buffer = new StringBuffer();

+            StringBuilder buffer = new StringBuilder();

             while (ch != -1) {

                 buffer.append((char) ch);

                 ch = yaml.read();

@@ -43,7 +43,7 @@
     public Iterable<Object> loadAll(java.io.Reader yaml) {

         try {

             int ch = yaml.read();

-            StringBuffer buffer = new StringBuffer();

+            StringBuilder buffer = new StringBuilder();

             while (ch != -1) {

                 buffer.append((char) ch);

                 ch = yaml.read();

diff --git a/src/test/java/org/pyyaml/CanonicalScanner.java b/src/test/java/org/pyyaml/CanonicalScanner.java
index 12c0623..42a5034 100644
--- a/src/test/java/org/pyyaml/CanonicalScanner.java
+++ b/src/test/java/org/pyyaml/CanonicalScanner.java
@@ -248,7 +248,7 @@
 

     private Token scanScalar() {

         index++;

-        StringBuffer chunks = new StringBuffer();

+        StringBuilder chunks = new StringBuilder();

         int start = index;

         boolean ignoreSpaces = false;

         while (data.charAt(index) != '"') {

diff --git a/src/test/java/org/pyyaml/PyCanonicalTest.java b/src/test/java/org/pyyaml/PyCanonicalTest.java
index 94d3f06..72fb206 100644
--- a/src/test/java/org/pyyaml/PyCanonicalTest.java
+++ b/src/test/java/org/pyyaml/PyCanonicalTest.java
@@ -41,7 +41,7 @@
 

     private List<Token> canonicalScan(InputStream input) throws IOException {

         int ch = input.read();

-        StringBuffer buffer = new StringBuffer();

+        StringBuilder buffer = new StringBuilder();

         while (ch != -1) {

             buffer.append((char) ch);

             ch = input.read();

diff --git a/src/test/java/org/pyyaml/PyImportTest.java b/src/test/java/org/pyyaml/PyImportTest.java
index 8a44e3e..eafa5cd 100644
--- a/src/test/java/org/pyyaml/PyImportTest.java
+++ b/src/test/java/org/pyyaml/PyImportTest.java
@@ -87,7 +87,7 @@
 

     protected List<Event> canonicalParse(InputStream input2) throws IOException {

         Reader reader = new Reader(new UnicodeReader(input2));

-        StringBuffer buffer = new StringBuffer();

+        StringBuilder buffer = new StringBuilder();

         while (reader.peek() != '\0') {

             buffer.append(reader.peek());

             reader.forward();

diff --git a/src/test/java/org/pyyaml/PyStructureTest.java b/src/test/java/org/pyyaml/PyStructureTest.java
index 2384456..e9869f9 100644
--- a/src/test/java/org/pyyaml/PyStructureTest.java
+++ b/src/test/java/org/pyyaml/PyStructureTest.java
@@ -187,7 +187,7 @@
 

     private List<Node> canonical_compose_all(InputStream file) {

         Reader reader = new Reader(new UnicodeReader(file));

-        StringBuffer buffer = new StringBuffer();

+        StringBuilder buffer = new StringBuilder();

         while (reader.peek() != '\0') {

             buffer.append(reader.peek());

             reader.forward();

@@ -215,7 +215,7 @@
         @Override

         public Iterable<Object> loadAll(java.io.Reader yaml) {

             Reader reader = new Reader(yaml);

-            StringBuffer buffer = new StringBuffer();

+            StringBuilder buffer = new StringBuilder();

             while (reader.peek() != '\0') {

                 buffer.append(reader.peek());

                 reader.forward();

diff --git a/src/test/java/org/yaml/snakeyaml/Util.java b/src/test/java/org/yaml/snakeyaml/Util.java
index d200765..b4deaa6 100644
--- a/src/test/java/org/yaml/snakeyaml/Util.java
+++ b/src/test/java/org/yaml/snakeyaml/Util.java
@@ -29,7 +29,7 @@
                 throw new RuntimeException("Can not find " + theName);

             }

             BufferedInputStream is = new BufferedInputStream(input);

-            StringBuffer buf = new StringBuffer(3000);

+            StringBuilder buf = new StringBuilder(3000);

             int i;

             try {

                 while ((i = is.read()) != -1) {

@@ -41,7 +41,7 @@
             String resource = buf.toString();

             // convert EOLs

             String[] lines = resource.split("\\r?\\n");

-            StringBuffer buffer = new StringBuffer();

+            StringBuilder buffer = new StringBuilder();

             for (int j = 0; j < lines.length; j++) {

                 buffer.append(lines[j]);

                 buffer.append("\n");