[
https://issues.apache.org/jira/browse/STANBOL-659?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rupert Westenthaler resolved STANBOL-659.
-----------------------------------------
Resolution: Fixed
fixed with revision #1352034 for Java 7. This might eventually hit us
again with Java 8.
> Adapt Unit test to work independend of Hashing algorithm used by
> HashSets/-Maps
> -------------------------------------------------------------------------------
>
> Key: STANBOL-659
> URL: https://issues.apache.org/jira/browse/STANBOL-659
> Project: Stanbol
> Issue Type: Test
> Reporter: Rupert Westenthaler
> Assignee: Rupert Westenthaler
>
> With Java SE 7u6 and all current SE 8 build the hash algorithm used by the
> HashSet/HashMap based Set implementation will change (see [1] for details).
> It is important to note that the iteration order of hash based set
> implementations relays on the used hash algorithm. Therefore with this change
> the iteration order of will change - something that has not happened since
> JDK1.2 if I remember correctly.
> Related to Stanbol this has the following affects:
> * ordering of Triples in serialize RDF graphs changes
> * ordering of Roles for the Factstore changes -> resulting in different
> sorted SQL queries (e.g. such as ordering of selected fields will change)
> while this does not have any effect for normal operation it does affect a lot
> of unit tests as those do often check against String patterns that will no
> longer match if the ordering in the serialization changes.
> Validate compatibility of the Tests:
> * ensure that the new hashing algorith is used for all HashSet/-Maps under
> Java7u6 by setting "jdk.map.althashing.threshold=0" (see also [1])
> * check build with JDK 1.6 (old hashing)
> * check build with JDK 1.7u6+ (new hashing)
> Adapting Tests/Components:
> * For the JSON-LD serializer I suggest to use TreeMaps. This has the
> advantage that properties will be sorted alphabetically - what will the
> serialized RDF made much easier to read for users. This is also important
> because all JSON-LD specific properties start with '@' and will therefore be
> in the beginning of an JSON object.
> * Adapt unit tests for JSON-LD to validate the alphabetically ordered JSON
> properties.
> * For Roles of the FactStore I also suggest to use a TreeMap to ensure that
> the created SQL queries are independend of the used JDK version.
> * All other unit tests affected by this need to be adapted to be independent
> of this (e.g. changed serialization order of triples.
> [1] http://mail.openjdk.java.net/pipermail/jdk7u-dev/2012-May/003118.html
--
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