Bug 45983

GemBuilder for Smalltalk/VA

5.4.6, 5.4.5, 5.4.4, 5.4.3

VA 8.6.2

Recursive dictionary replication problem under VA Smalltalk 8.6.2

Replication of an example like:
                                |dict nestedDict |
                                dict := Dictionary new.
                                nestedDict := Dictionary new.
                                nestedDict at: dict put: (Array with: 'dict').
                                dict at: nestedDict put: (Array with: 'nestedDict').
                                dict

does not work properly. VA Smalltalk 8.6.2 introduced a new hash calculation for Dictionary which is dependent on the size of the dictionary.

During replication, the nested dictionary is empty when it is added as a key inside the outer dictionary. Subsequent addition of the outer dictionary inside the nested dictionary changes its size, resulting in its previously hashed position becoming incorrect.

Workaround

Customers encountering this issue should adjust their application to send #rehash to such dictionaries following replication.


Last updated: 2/2/16