[jira] [Updated] (LANG-786) StringUtils equals() relies on undefined behavior

2012-01-24 Thread Henri Yandell (Updated) (JIRA)

 [ 
https://issues.apache.org/jira/browse/LANG-786?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Henri Yandell updated LANG-786:
---

Fix Version/s: 3.2

> StringUtils equals() relies on undefined behavior
> -
>
> Key: LANG-786
> URL: https://issues.apache.org/jira/browse/LANG-786
> Project: Commons Lang
>  Issue Type: Bug
>  Components: lang.*
>Affects Versions: 3.x
> Environment: java version "1.7.0_02"
> Java(TM) SE Runtime Environment (build 1.7.0_02-b13)
> Java HotSpot(TM) 64-Bit Server VM (build 22.0-b10, mixed mode)
> Fedora 15 AMD64
>Reporter: Daniel Trebbien
>  Labels: StringUtils
> Fix For: 3.2
>
> Attachments: equals.patch
>
>
> Since the {{java.lang.CharSequence}} class was first introduced in 1.4, the 
> JavaDoc block has contained the following note:
> {quote}
> This interface does not refine the general contracts of the equals and 
> hashCode methods. The result of comparing two objects that implement 
> CharSequence is therefore, in general, undefined. Each object may be 
> implemented by a different class, and there is no guarantee that each class 
> will be capable of testing its instances for equality with those of the other.
> {quote}
> When the signature of the StringUtils equals() method was changed from 
> {{equals(String, String)}} to {{equals(CharSequence, CharSequence)}} in 
> R920543, the implementation still relied on calling 
> CharSequence#equals(Object) even though, in general, the result is undefined.
> One example where {{equals(Object)}} returns {{false}} even though, as 
> CharSequences, two objects represent equal sequences is when one object is an 
> instance of {{javax.lang.model.element.Name}} and the other object is a 
> String.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (LANG-786) StringUtils equals() relies on undefined behavior

2012-01-21 Thread Daniel Trebbien (Updated) (JIRA)

 [ 
https://issues.apache.org/jira/browse/LANG-786?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Daniel Trebbien updated LANG-786:
-

Affects Version/s: (was: 3.0)
   3.x

> StringUtils equals() relies on undefined behavior
> -
>
> Key: LANG-786
> URL: https://issues.apache.org/jira/browse/LANG-786
> Project: Commons Lang
>  Issue Type: Bug
>  Components: lang.*
>Affects Versions: 3.x
> Environment: java version "1.7.0_02"
> Java(TM) SE Runtime Environment (build 1.7.0_02-b13)
> Java HotSpot(TM) 64-Bit Server VM (build 22.0-b10, mixed mode)
> Fedora 15 AMD64
>Reporter: Daniel Trebbien
>  Labels: StringUtils
> Attachments: equals.patch
>
>
> Since the {{java.lang.CharSequence}} class was first introduced in 1.4, the 
> JavaDoc block has contained the following note:
> {quote}
> This interface does not refine the general contracts of the equals and 
> hashCode methods. The result of comparing two objects that implement 
> CharSequence is therefore, in general, undefined. Each object may be 
> implemented by a different class, and there is no guarantee that each class 
> will be capable of testing its instances for equality with those of the other.
> {quote}
> When the signature of the StringUtils equals() method was changed from 
> {{equals(String, String)}} to {{equals(CharSequence, CharSequence)}} in 
> R920543, the implementation still relied on calling 
> CharSequence#equals(Object) even though, in general, the result is undefined.
> One example where {{equals(Object)}} returns {{false}} even though, as 
> CharSequences, two objects represent equal sequences is when one object is an 
> instance of {{javax.lang.model.element.Name}} and the other object is a 
> String.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (LANG-786) StringUtils equals() relies on undefined behavior

2012-01-20 Thread Daniel Trebbien (Updated) (JIRA)

 [ 
https://issues.apache.org/jira/browse/LANG-786?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Daniel Trebbien updated LANG-786:
-

Attachment: equals.patch

Fix

This re-introduces StringUtils#equals(String, String) and changes 
StringUtils#equals(CharSequence, CharSequence) to compare chars individually.

> StringUtils equals() relies on undefined behavior
> -
>
> Key: LANG-786
> URL: https://issues.apache.org/jira/browse/LANG-786
> Project: Commons Lang
>  Issue Type: Bug
>  Components: lang.*
>Affects Versions: 3.0
> Environment: java version "1.7.0_02"
> Java(TM) SE Runtime Environment (build 1.7.0_02-b13)
> Java HotSpot(TM) 64-Bit Server VM (build 22.0-b10, mixed mode)
> Fedora 15 AMD64
>Reporter: Daniel Trebbien
>  Labels: StringUtils
> Attachments: equals.patch
>
>
> Since the {{java.lang.CharSequence}} class was first introduced in 1.4, the 
> JavaDoc block has contained the following note:
> {quote}
> This interface does not refine the general contracts of the equals and 
> hashCode methods. The result of comparing two objects that implement 
> CharSequence is therefore, in general, undefined. Each object may be 
> implemented by a different class, and there is no guarantee that each class 
> will be capable of testing its instances for equality with those of the other.
> {quote}
> When the signature of the StringUtils equals() method was changed from 
> {{equals(String, String)}} to {{equals(CharSequence, CharSequence)}} in 
> R920543, the implementation still relied on calling 
> CharSequence#equals(Object) even though, in general, the result is undefined.
> One example where {{equals(Object)}} returns {{false}} even though, as 
> CharSequences, two objects represent equal sequences is when one object is an 
> instance of {{javax.lang.model.element.Name}} and the other object is a 
> String.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira