2014-02-18 17:10 GMT+01:00 Duncan Jones <dun...@wortharead.com>:

> On 18 February 2014 15:58, Benedikt Ritter <brit...@apache.org> wrote:
> > 2014-02-18 16:28 GMT+01:00 Duncan Jones <djo...@apache.org>:
> >
> >> On 15 February 2014 10:35,  <brit...@apache.org> wrote:
> >> > Author: britter
> >> > Date: Sat Feb 15 10:35:35 2014
> >> > New Revision: 1568612
> >> >
> >> > URL: http://svn.apache.org/r1568612
> >> > Log:
> >> > LANG-977: NumericEntityEscaper incorrectly encodes supplementary
> >> characters. Thanks to Chris Karcher.
> >>
> >>
> >> Chris isn't listed as a contributor in the POM file. Should we add him
> >> or is the "due-to" field replacing the need for that?
> >>
> >
> > Well there are no absolute rules about this. But in this case we could
> add
> > him, I guess. I'll take care of this.
> >
> > Thanks!
>
> Ah, ok. I wasn't sure whether a single committed patch equated to
> being a contributor.


> In your eyes, when should I add someone to the POM file? I like the
> idea of doing it relatively easily, since it's quite pleasing to see
> one's name listed as a contributor, but I don't want to fly in the
> face of what's normal on the project.
>

Depends. Technically speaking even creating a Jira ticket is a contribution
by itself. But we only document code contributions in the contributors
section of pom.xml. And in this area people seem to do it by gut feeling.
Clearly only creating a patch that fixes a JavaDoc typo won't bring you
into the contributors section. But you're right, Chris Karchers
contribution justifies adding him to the list of contributors.


>
> >>
> >> - Duncan
> >>
> >>
> >>
> >> >
> >> > Modified:
> >> >     commons/proper/lang/trunk/src/changes/changes.xml
> >> >
> >>
> commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/StringEscapeUtils.java
> >> >
> >>
> commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/text/translate/CharSequenceTranslator.java
> >> >
> >>
> commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/StringEscapeUtilsTest.java
> >> >
> >> > Modified: commons/proper/lang/trunk/src/changes/changes.xml
> >> > URL:
> >>
> http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/changes/changes.xml?rev=1568612&r1=1568611&r2=1568612&view=diff
> >> >
> >>
> ==============================================================================
> >> > --- commons/proper/lang/trunk/src/changes/changes.xml [utf-8]
> (original)
> >> > +++ commons/proper/lang/trunk/src/changes/changes.xml [utf-8] Sat Feb
> 15
> >> 10:35:35 2014
> >> > @@ -22,6 +22,7 @@
> >> >    <body>
> >> >
> >> >    <release version="3.3" date="TBA" description="Bugfix and Feature
> >> release">
> >> > +    <action issue="LANG-977" type="fix" dev="britter" due-to="Chris
> >> Karcher">NumericEntityEscaper incorrectly encodes supplementary
> >> characters</action>
> >> >      <action issue="LANG-973" type="fix" dev="sebb">Make some private
> >> fields final</action>
> >> >      <action issue="LANG-971" type="fix"
> >> dev="sebb">NumberUtils#isNumber(String) fails to reject invalid Octal
> >> numbers</action>
> >> >      <action issue="LANG-972" type="fix"
> dev="sebb">NumberUtils#isNumber
> >> does not allow for hex 0XABCD</action>
> >> >
> >> > Modified:
> >>
> commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/StringEscapeUtils.java
> >> > URL:
> >>
> http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/StringEscapeUtils.java?rev=1568612&r1=1568611&r2=1568612&view=diff
> >> >
> >>
> ==============================================================================
> >> > ---
> >>
> commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/StringEscapeUtils.java
> >> (original)
> >> > +++
> >>
> commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/StringEscapeUtils.java
> >> Sat Feb 15 10:35:35 2014
> >> > @@ -185,7 +185,7 @@ public class StringEscapeUtils {
> >> >                  out.write(StringUtils.replace(input.toString(),
> >> CSV_QUOTE_STR, CSV_QUOTE_STR + CSV_QUOTE_STR));
> >> >                  out.write(CSV_QUOTE);
> >> >              }
> >> > -            return input.length();
> >> > +            return Character.codePointCount(input, 0,
> input.length());
> >> >          }
> >> >      }
> >> >
> >> > @@ -314,7 +314,7 @@ public class StringEscapeUtils {
> >> >
> >> >              if ( input.charAt(0) != CSV_QUOTE ||
> >> input.charAt(input.length() - 1) != CSV_QUOTE ) {
> >> >                  out.write(input.toString());
> >> > -                return input.length();
> >> > +                return Character.codePointCount(input, 0,
> >> input.length());
> >> >              }
> >> >
> >> >              // strip quotes
> >> > @@ -326,7 +326,7 @@ public class StringEscapeUtils {
> >> >              } else {
> >> >                  out.write(input.toString());
> >> >              }
> >> > -            return input.length();
> >> > +            return Character.codePointCount(input, 0,
> input.length());
> >> >          }
> >> >      }
> >> >
> >> >
> >> > Modified:
> >>
> commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/text/translate/CharSequenceTranslator.java
> >> > URL:
> >>
> http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/text/translate/CharSequenceTranslator.java?rev=1568612&r1=1568611&r2=1568612&view=diff
> >> >
> >>
> ==============================================================================
> >> > ---
> >>
> commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/text/translate/CharSequenceTranslator.java
> >> (original)
> >> > +++
> >>
> commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/text/translate/CharSequenceTranslator.java
> >> Sat Feb 15 10:35:35 2014
> >> > @@ -89,10 +89,10 @@ public abstract class CharSequenceTransl
> >> >                  pos+= c.length;
> >> >                  continue;
> >> >              }
> >> > -//          // contract with translators is that they have to
> >> understand codepoints
> >> > -//          // and they just took care of a surrogate pair
> >> > +            // contract with translators is that they have to
> >> understand codepoints
> >> > +            // and they just took care of a surrogate pair
> >> >              for (int pt = 0; pt < consumed; pt++) {
> >> > -                pos +=
> Character.charCount(Character.codePointAt(input,
> >> pt));
> >> > +                pos +=
> Character.charCount(Character.codePointAt(input,
> >> pos));
> >> >              }
> >> >          }
> >> >      }
> >> >
> >> > Modified:
> >>
> commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/StringEscapeUtilsTest.java
> >> > URL:
> >>
> http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/StringEscapeUtilsTest.java?rev=1568612&r1=1568611&r2=1568612&view=diff
> >> >
> >>
> ==============================================================================
> >> > ---
> >>
> commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/StringEscapeUtilsTest.java
> >> (original)
> >> > +++
> >>
> commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/StringEscapeUtilsTest.java
> >> Sat Feb 15 10:35:35 2014
> >> > @@ -348,6 +348,9 @@ public class StringEscapeUtilsTest {
> >> >
> >> >          assertEquals("Supplementary character must be represented
> using
> >> a single escape", "&#144308;",
> >> >                  escapeXml.translate("\uD84C\uDFB4"));
> >> > +
> >> > +        assertEquals("Supplementary characters mixed with basic
> >> characters should be encoded correctly", "a b c &#144308;",
> >> > +                        escapeXml.translate("a b c \uD84C\uDFB4"));
> >> >      }
> >> >
> >> >      @Test
> >> > @@ -377,6 +380,9 @@ public class StringEscapeUtilsTest {
> >> >      public void testUnescapeXmlSupplementaryCharacters() {
> >> >          assertEquals("Supplementary character must be represented
> using
> >> a single escape", "\uD84C\uDFB4",
> >> >                  StringEscapeUtils.unescapeXml("&#144308;") );
> >> > +
> >> > +        assertEquals("Supplementary characters mixed with basic
> >> characters should be decoded correctly", "a b c \uD84C\uDFB4",
> >> > +                StringEscapeUtils.unescapeXml("a b c &#144308;") );
> >> >      }
> >> >
> >> >      // Tests issue #38569
> >> > @@ -396,22 +402,24 @@ public class StringEscapeUtilsTest {
> >> >
> >> >      @Test
> >> >      public void testEscapeCsvString() throws Exception {
> >> > -        assertEquals("foo.bar",
> >>  StringEscapeUtils.escapeCsv("foo.bar"));
> >> > -        assertEquals("\"foo,bar\"",
> >>  StringEscapeUtils.escapeCsv("foo,bar"));
> >> > -        assertEquals("\"foo\nbar\"",
> >> StringEscapeUtils.escapeCsv("foo\nbar"));
> >> > -        assertEquals("\"foo\rbar\"",
> >> StringEscapeUtils.escapeCsv("foo\rbar"));
> >> > -        assertEquals("\"foo\"\"bar\"",
> >> StringEscapeUtils.escapeCsv("foo\"bar"));
> >> > +        assertEquals("foo.bar",
> >>  StringEscapeUtils.escapeCsv("foo.bar"));
> >> > +        assertEquals("\"foo,bar\"",
> >>  StringEscapeUtils.escapeCsv("foo,bar"));
> >> > +        assertEquals("\"foo\nbar\"",
> >> StringEscapeUtils.escapeCsv("foo\nbar"));
> >> > +        assertEquals("\"foo\rbar\"",
> >> StringEscapeUtils.escapeCsv("foo\rbar"));
> >> > +        assertEquals("\"foo\"\"bar\"",
> >> StringEscapeUtils.escapeCsv("foo\"bar"));
> >> > +        assertEquals("foo\uD84C\uDFB4bar",
> >> StringEscapeUtils.escapeCsv("foo\uD84C\uDFB4bar"));
> >> >          assertEquals("",   StringEscapeUtils.escapeCsv(""));
> >> >          assertEquals(null, StringEscapeUtils.escapeCsv(null));
> >> >      }
> >> >
> >> >      @Test
> >> >      public void testEscapeCsvWriter() throws Exception {
> >> > -        checkCsvEscapeWriter("foo.bar",        "foo.bar");
> >> > -        checkCsvEscapeWriter("\"foo,bar\"",    "foo,bar");
> >> > -        checkCsvEscapeWriter("\"foo\nbar\"",   "foo\nbar");
> >> > -        checkCsvEscapeWriter("\"foo\rbar\"",   "foo\rbar");
> >> > -        checkCsvEscapeWriter("\"foo\"\"bar\"", "foo\"bar");
> >> > +        checkCsvEscapeWriter("foo.bar",            "foo.bar");
> >> > +        checkCsvEscapeWriter("\"foo,bar\"",        "foo,bar");
> >> > +        checkCsvEscapeWriter("\"foo\nbar\"",       "foo\nbar");
> >> > +        checkCsvEscapeWriter("\"foo\rbar\"",       "foo\rbar");
> >> > +        checkCsvEscapeWriter("\"foo\"\"bar\"",     "foo\"bar");
> >> > +        checkCsvEscapeWriter("foo\uD84C\uDFB4bar",
> >> "foo\uD84C\uDFB4bar");
> >> >          checkCsvEscapeWriter("", null);
> >> >          checkCsvEscapeWriter("", "");
> >> >      }
> >> > @@ -428,11 +436,12 @@ public class StringEscapeUtilsTest {
> >> >
> >> >      @Test
> >> >      public void testUnescapeCsvString() throws Exception {
> >> > -        assertEquals("foo.bar",
> >>  StringEscapeUtils.unescapeCsv("foo.bar"));
> >> > -        assertEquals("foo,bar",
> >>  StringEscapeUtils.unescapeCsv("\"foo,bar\""));
> >> > -        assertEquals("foo\nbar",
> >> StringEscapeUtils.unescapeCsv("\"foo\nbar\""));
> >> > -        assertEquals("foo\rbar",
> >> StringEscapeUtils.unescapeCsv("\"foo\rbar\""));
> >> > -        assertEquals("foo\"bar",
> >> StringEscapeUtils.unescapeCsv("\"foo\"\"bar\""));
> >> > +        assertEquals("foo.bar",
> >>  StringEscapeUtils.unescapeCsv("foo.bar"));
> >> > +        assertEquals("foo,bar",
> >>  StringEscapeUtils.unescapeCsv("\"foo,bar\""));
> >> > +        assertEquals("foo\nbar",
> >> StringEscapeUtils.unescapeCsv("\"foo\nbar\""));
> >> > +        assertEquals("foo\rbar",
> >> StringEscapeUtils.unescapeCsv("\"foo\rbar\""));
> >> > +        assertEquals("foo\"bar",
> >> StringEscapeUtils.unescapeCsv("\"foo\"\"bar\""));
> >> > +        assertEquals("foo\uD84C\uDFB4bar",
> >> StringEscapeUtils.unescapeCsv("foo\uD84C\uDFB4bar"));
> >> >          assertEquals("",   StringEscapeUtils.unescapeCsv(""));
> >> >          assertEquals(null, StringEscapeUtils.unescapeCsv(null));
> >> >
> >> > @@ -441,11 +450,12 @@ public class StringEscapeUtilsTest {
> >> >
> >> >      @Test
> >> >      public void testUnescapeCsvWriter() throws Exception {
> >> > -        checkCsvUnescapeWriter("foo.bar",        "foo.bar");
> >> > -        checkCsvUnescapeWriter("foo,bar",    "\"foo,bar\"");
> >> > -        checkCsvUnescapeWriter("foo\nbar",   "\"foo\nbar\"");
> >> > -        checkCsvUnescapeWriter("foo\rbar",   "\"foo\rbar\"");
> >> > -        checkCsvUnescapeWriter("foo\"bar", "\"foo\"\"bar\"");
> >> > +        checkCsvUnescapeWriter("foo.bar",            "foo.bar");
> >> > +        checkCsvUnescapeWriter("foo,bar",            "\"foo,bar\"");
> >> > +        checkCsvUnescapeWriter("foo\nbar",           "\"foo\nbar\"");
> >> > +        checkCsvUnescapeWriter("foo\rbar",           "\"foo\rbar\"");
> >> > +        checkCsvUnescapeWriter("foo\"bar",
> "\"foo\"\"bar\"");
> >> > +        checkCsvUnescapeWriter("foo\uD84C\uDFB4bar",
> >> "foo\uD84C\uDFB4bar");
> >> >          checkCsvUnescapeWriter("", null);
> >> >          checkCsvUnescapeWriter("", "");
> >> >
> >> >
> >> >
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> >> For additional commands, e-mail: dev-h...@commons.apache.org
> >>
> >>
> >
> >
> > --
> > http://people.apache.org/~britter/
> > http://www.systemoutprintln.de/
> > http://twitter.com/BenediktRitter
> > http://github.com/britter
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>


-- 
http://people.apache.org/~britter/
http://www.systemoutprintln.de/
http://twitter.com/BenediktRitter
http://github.com/britter

Reply via email to