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

Konstantin Knauf reopened FLINK-16230:
--------------------------------------

Re-opening in accordance with https://issues.apache.org/jira/browse/FLINK-23206.

> Use LinkedHashSet instead of HashSet for a deterministic order when testing 
> serialization
> -----------------------------------------------------------------------------------------
>
>                 Key: FLINK-16230
>                 URL: https://issues.apache.org/jira/browse/FLINK-16230
>             Project: Flink
>          Issue Type: Bug
>          Components: API / Type Serialization System, Tests
>         Environment: TEST: 
> org.apache.flink.api.java.typeutils.runtime.kryo.KryoGenericTypeSerializerTest#testJavaSet
> StackTrace:
> java.util.HashMap$HashIterator$HashIteratorShuffler.<init>
> java.util.HashMap$HashIterator.<init>(HashMap.java:1435)
> java.util.HashMap$KeyIterator.<init>(HashMap.java:1467)
> java.util.HashMap$KeySet.iterator(HashMap.java:917)
> java.util.HashSet.iterator(HashSet.java:173)
> org.apache.flink.testutils.DeeplyEqualsChecker.deepEqualsIterable(DeeplyEqualsChecker.java:107)
> org.apache.flink.testutils.DeeplyEqualsChecker.deepEquals0(DeeplyEqualsChecker.java:94)
> org.apache.flink.testutils.DeeplyEqualsChecker.lambda$deepEquals$0(DeeplyEqualsChecker.java:79)
> java.util.Optional.orElseGet(Optional.java:267)
> org.apache.flink.testutils.DeeplyEqualsChecker.deepEquals(DeeplyEqualsChecker.java:79)
> org.apache.flink.testutils.CustomEqualityMatcher.matches(CustomEqualityMatcher.java:63)
> org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:12)
> org.junit.Assert.assertThat(Assert.java:956)
> org.apache.flink.api.common.typeutils.SerializerTestBase.deepEquals(SerializerTestBase.java:493)
> org.apache.flink.api.common.typeutils.SerializerTestBase.testSerializedCopyIndividually(SerializerTestBase.java:379)
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> java.lang.reflect.Method.invoke(Method.java:498)
> org.apache.flink.api.common.typeutils.SerializerTestInstance.testAll(SerializerTestInstance.java:92)
> org.apache.flink.api.java.typeutils.runtime.AbstractGenericTypeSerializerTest.runTests(AbstractGenericTypeSerializerTest.java:155)
> org.apache.flink.api.java.typeutils.runtime.kryo.KryoGenericTypeSerializerTest.testJavaSet(KryoGenericTypeSerializerTest.java:59)
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> java.lang.reflect.Method.invoke(Method.java:498)
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
> org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
> org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
> org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
> org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
> org.junit.runners.ParentRunner.run(ParentRunner.java:363)
> org.junit.runners.Suite.runChild(Suite.java:128)
> org.junit.runners.Suite.runChild(Suite.java:27)
> org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
> org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
> org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
> org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
> org.junit.runners.ParentRunner.run(ParentRunner.java:363)
> org.apache.maven.surefire.junitcore.JUnitCore.run(JUnitCore.java:55)
> org.apache.maven.surefire.junitcore.JUnitCoreWrapper.createRequestAndRun(JUnitCoreWrapper.java:137)
> org.apache.maven.surefire.junitcore.JUnitCoreWrapper.executeEager(JUnitCoreWrapper.java:107)
> org.apache.maven.surefire.junitcore.JUnitCoreWrapper.execute(JUnitCoreWrapper.java:83)
> org.apache.maven.surefire.junitcore.JUnitCoreWrapper.execute(JUnitCoreWrapper.java:75)
> org.apache.maven.surefire.junitcore.JUnitCoreProvider.invoke(JUnitCoreProvider.java:158)
> org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
> org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)
> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)
>            Reporter: cpugputpu
>            Priority: Minor
>              Labels: auto-closed, pull-request-available
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> The test in 
> org.apache.flink.api.java.typeutils.runtime.kryo.KryoGenericTypeSerializerTest.testJavaSet(KryoGenericTypeSerializerTest.java:59)
>  may fail due to a different iteration order of HashSet. The test aims to 
> check the serializer of HashSet. It will invokeĀ 
> org.apache.flink.testutils.DeeplyEqualsChecker.deepEqualsIterable(DeeplyEqualsChecker.java:107),
>  where theĀ iterator of HashSet is called. However, the HashSet makes no 
> guarantee about the order it iterates, finally causing an assertion failure. 
> The fix is to use LinkedHashSet to make the test more stable.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to