[ 
https://issues.apache.org/jira/browse/IGNITE-602?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16162915#comment-16162915
 ] 

Ryabov Dmitrii commented on IGNITE-602:
---------------------------------------

[~agura], do we really need it? Object's hashcode can be changed between two 
toString() calls. I suppose different hashcodes for the same object will be 
look very bad in logs.

It is easy to insert hashcode in the middle of the buffer, but to do it I need 
to replace IdentityHashMap with List of key-value objects which contain Object 
as key and it's position as value (to insert hashcode if needed). But this way 
will create more objects and additional redundant pressure to GC, which we are 
trying to avoid. Or write something like IdentityLinkedHashMap by myself, cause 
there is no IdentityLinkedHashMap in JDK.

> [Test] GridToStringBuilder is vulnerable for StackOverflowError caused by 
> infinite recursion
> --------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-602
>                 URL: https://issues.apache.org/jira/browse/IGNITE-602
>             Project: Ignite
>          Issue Type: Bug
>          Components: general
>            Reporter: Artem Shutak
>            Assignee: Ryabov Dmitrii
>              Labels: MakeTeamcityGreenAgain, Muted_test
>             Fix For: 2.3
>
>
> See test 
> org.gridgain.grid.util.tostring.GridToStringBuilderSelfTest#_testToStringCheckAdvancedRecursionPrevention
>  and related TODO in same source file.
> Also take a look at 
> http://stackoverflow.com/questions/11300203/most-efficient-way-to-prevent-an-infinite-recursion-in-tostring
> Test should be unmuted on TC after fix.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to