PersonIdent: Document that name and email aren't trimmed
This might be somewhat surprising behavior to users who might naturally assume the following invariant: ident.equals(parseIdent(ident.toExternalString())) This invariant does not hold since whitespace is only trimmed during serialization. We don't want to mess with the strings during initialization, as this is called during the highly-optimized commit parsing codepath. Change-Id: I081a603f0ac0e33167462244779b0ff3ad51e80c
This commit is contained in:
parent
adff322a69
commit
773f9661d0
|
@ -92,8 +92,10 @@ public void testToExternalStringTrimsNameAndEmail() throws Exception {
|
|||
PersonIdent personIdent = new PersonIdent(" A U Thor ",
|
||||
" author@example.com ");
|
||||
|
||||
String externalString = personIdent.toExternalString();
|
||||
assertEquals(" A U Thor ", personIdent.getName());
|
||||
assertEquals(" author@example.com ", personIdent.getEmailAddress());
|
||||
|
||||
String externalString = personIdent.toExternalString();
|
||||
assertTrue(externalString.startsWith("A U Thor <author@example.com>"));
|
||||
}
|
||||
|
||||
|
|
|
@ -217,7 +217,12 @@ private PersonIdent(final UserConfig config) {
|
|||
}
|
||||
|
||||
/**
|
||||
* Construct a {@link PersonIdent}
|
||||
* Construct a {@link PersonIdent}.
|
||||
* <p>
|
||||
* Whitespace in the name and email is preserved for the lifetime of this
|
||||
* object, but are trimmed by {@link #toExternalString()}. This means that
|
||||
* parsing the result of {@link #toExternalString()} may not return an
|
||||
* equivalent instance.
|
||||
*
|
||||
* @param aName
|
||||
* @param aEmailAddress
|
||||
|
|
Loading…
Reference in New Issue