Author: markt
Date: Sun Jan 28 21:33:53 2018
New Revision: 1822482
URL: http://svn.apache.org/viewvc?rev=1822482&view=rev
Log:
Ensure that the toString() method behaves consistently for ByteChunk and
CharChunk and that null is returned when toString() is called both on newly
created objects and immediately after a call to recycle().
This should not impact typical Tomcat users.
It may impact users who use these classes directly in their own code.
Modified:
tomcat/trunk/java/org/apache/tomcat/util/buf/ByteChunk.java
tomcat/trunk/java/org/apache/tomcat/util/buf/CharChunk.java
tomcat/trunk/test/org/apache/tomcat/util/buf/TestByteChunk.java
tomcat/trunk/test/org/apache/tomcat/util/buf/TestCharChunk.java
tomcat/trunk/test/org/apache/tomcat/util/net/TestCustomSsl.java
tomcat/trunk/webapps/docs/changelog.xml
Modified: tomcat/trunk/java/org/apache/tomcat/util/buf/ByteChunk.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/buf/ByteChunk.java?rev=1822482&r1=1822481&r2=1822482&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/buf/ByteChunk.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/buf/ByteChunk.java Sun Jan 28
21:33:53 2018
@@ -529,7 +529,7 @@ public final class ByteChunk extends Abs
@Override
public String toString() {
- if (null == buff) {
+ if (isNull()) {
return null;
} else if (end - start == 0) {
return "";
Modified: tomcat/trunk/java/org/apache/tomcat/util/buf/CharChunk.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/buf/CharChunk.java?rev=1822482&r1=1822481&r2=1822482&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/buf/CharChunk.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/buf/CharChunk.java Sun Jan 28
21:33:53 2018
@@ -396,7 +396,7 @@ public final class CharChunk extends Abs
@Override
public String toString() {
- if (null == buff) {
+ if (isNull()) {
return null;
} else if (end - start == 0) {
return "";
Modified: tomcat/trunk/test/org/apache/tomcat/util/buf/TestByteChunk.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/buf/TestByteChunk.java?rev=1822482&r1=1822481&r2=1822482&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/util/buf/TestByteChunk.java (original)
+++ tomcat/trunk/test/org/apache/tomcat/util/buf/TestByteChunk.java Sun Jan 28
21:33:53 2018
@@ -201,4 +201,18 @@ public class TestByteChunk {
// NO-OP
}
}
+
+
+ @Test
+ public void testToString() {
+ ByteChunk bc = new ByteChunk();
+ Assert.assertNull(bc.toString());
+ byte[] data = new byte[8];
+ bc.setBytes(data, 0, data.length);
+ Assert.assertNotNull(bc.toString());
+ bc.recycle();
+ // toString() should behave consistently for new ByteChunk and
+ // immediately after a call to recycle().
+ Assert.assertNull(bc.toString());
+ }
}
Modified: tomcat/trunk/test/org/apache/tomcat/util/buf/TestCharChunk.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/buf/TestCharChunk.java?rev=1822482&r1=1822481&r2=1822482&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/util/buf/TestCharChunk.java (original)
+++ tomcat/trunk/test/org/apache/tomcat/util/buf/TestCharChunk.java Sun Jan 28
21:33:53 2018
@@ -93,4 +93,19 @@ public class TestCharChunk {
// NO-OP
}
}
+
+
+ @Test
+ public void testToString() {
+ CharChunk cc = new CharChunk();
+ Assert.assertNull(cc.toString());
+ char[] data = new char[8];
+ cc.setChars(data, 0, data.length);
+ Assert.assertNotNull(cc.toString());
+ cc.recycle();
+ // toString() should behave consistently for new ByteChunk and
+ // immediately after a call to recycle().
+ Assert.assertNull(cc.toString());
+ }
+
}
Modified: tomcat/trunk/test/org/apache/tomcat/util/net/TestCustomSsl.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/net/TestCustomSsl.java?rev=1822482&r1=1822481&r2=1822482&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/util/net/TestCustomSsl.java (original)
+++ tomcat/trunk/test/org/apache/tomcat/util/net/TestCustomSsl.java Sun Jan 28
21:33:53 2018
@@ -172,7 +172,7 @@ public class TestCustomSsl extends Tomca
if (trustType.equals(TrustType.NONE)) {
Assert.assertTrue(rc != 200);
- Assert.assertEquals("", res.toString());
+ Assert.assertNull(res.toString());
} else {
Assert.assertEquals(200, rc);
Assert.assertEquals("OK-" + TesterSupport.ROLE, res.toString());
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1822482&r1=1822481&r2=1822482&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Sun Jan 28 21:33:53 2018
@@ -97,6 +97,15 @@
certificateFile is defined but the file does not exist for both
JKS and PEM file types.
</fix>
+ <fix>
+ Ensure that the <code>toString()</code> method behaves consistently for
+ <code>ByteChunk</code> and <code>CharChunk</code> and that
+ <code>null</code> is returned when <code>toString()</code> is called
+ both on newly created objects and immediately after a call to
+ <code>recycle()</code>. This should not impact typical Tomcat users. It
+ may impact users who use these classes directly in their own code.
+ (markt)
+ </fix>
</changelog>
</subsection>
<subsection name="Jasper">
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]