[
https://issues.apache.org/jira/browse/LANG-459?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Niall Pemberton updated LANG-459:
---------------------------------
Fix Version/s: (was: Nightly Builds)
(was: 3.0)
2.5
> Issue in HashCodeBuilder which only shows up under high load multi-threaded
> usage.
> ----------------------------------------------------------------------------------
>
> Key: LANG-459
> URL: https://issues.apache.org/jira/browse/LANG-459
> Project: Commons Lang
> Issue Type: Bug
> Components: lang.builder.*
> Affects Versions: 2.4
> Environment: All
> Reporter: Andrew Wilson
> Fix For: 2.5
>
> Attachments: HashCodeBuilder.java, MyTest.java
>
> Original Estimate: 0.08h
> Remaining Estimate: 0.08h
>
> We found we were having problems with HashCodeBuilder under multi-threaded
> high load.
> I narrowed this down to the following attached test case.
> When I dug into the code, I found the problem was solved by commenting out
> the isRegistered method (though this would break the infinite loop problem).
> ( I did a lot of other digging that I wont bore you with).
> So instead I replaced the HashSet with an ArrayList and just added the
> object, rather than the toIdentityHashCodeInteger(object)
> This results in about 5 lines of change.
> My suspicion is that System.identityHashCode does not return unique values
> (it is after all a hashcode method). The code assumes it will return a
> unique value and this causes the problem at high loads.
> The downside is a List vs. a Set, but I believe this is necessary.
> I'd like to submit this fix and have it verified (and perhaps improved). I
> am convinced it is a necessary fix which we have seen show up under high
> loads.
> Kindest regards,
> Andrew.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.