[ https://issues.apache.org/jira/browse/SIS-349?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Martin Desruisseaux resolved SIS-349. ------------------------------------- Resolution: Fixed > Dead-lock between ContextualParameters and WeakHashSet > ------------------------------------------------------ > > Key: SIS-349 > URL: https://issues.apache.org/jira/browse/SIS-349 > Project: Spatial Information Systems > Issue Type: Bug > Components: Referencing > Affects Versions: 0.6, 0.7 > Reporter: Johann Sorel > Assignee: Martin Desruisseaux > Fix For: 0.8 > > > Below are thread-dump of relevant parts. The first parts is in the thread > that verifies if an existing map projection exists in the {{WeakHashSet}}. > This verification implies {{NormalizedProjection}} comparisons, which > themselves imply {{ContextualParameters}} comparisons: > {noformat} > "Thread-3407" #3588 daemon prio=5 os_prio=0 tid=0x00007f7951adf000 nid=0x5836 > waiting for monitor entry [0x00007f78744ef000] > java.lang.Thread.State: BLOCKED (on object monitor) > at > org.apache.sis.referencing.operation.transform.ContextualParameters.equals(ContextualParameters.java:720) > - waiting to lock <0x00000007818ef028> (a > org.apache.sis.referencing.operation.transform.ContextualParameters) > at java.util.Arrays.deepEquals0(Arrays.java:4299) > at java.util.Objects.deepEquals(Objects.java:85) > at org.apache.sis.util.Utilities.deepEquals(Utilities.java:200) > at > org.apache.sis.referencing.operation.transform.AbstractMathTransform.equals(AbstractMathTransform.java:921) > at > org.apache.sis.referencing.operation.projection.NormalizedProjection.equals(NormalizedProjection.java:797) > at org.apache.sis.util.Utilities.deepEquals(Utilities.java:143) > at org.apache.sis.util.Utilities.equals(Utilities.java:238) > at org.apache.sis.util.Utilities.deepEquals(Utilities.java:168) > at > org.apache.sis.referencing.operation.transform.ConcatenatedTransform.equals(ConcatenatedTransform.java:934) > at > org.apache.sis.referencing.operation.transform.AbstractMathTransform.equals(AbstractMathTransform.java:867) > at org.apache.sis.util.collection.WeakHashSet.intern(WeakHashSet.java:315) > at org.apache.sis.util.collection.WeakHashSet.unique(WeakHashSet.java:290) > - locked <0x0000000704b65b40> (a > org.apache.sis.util.collection.WeakHashSet) > at > org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.unique(DefaultMathTransformFactory.java:1372) > {noformat} > The second part is in the thread that creates a new map projection, which > implies operations on {{ContextualParameters}}. > {noformat} > "Thread-3409" #3590 daemon prio=5 os_prio=0 tid=0x00007f7824cfd000 nid=0x5838 > waiting for monitor entry [0x00007f7819e6e000] > java.lang.Thread.State: BLOCKED (on object monitor) > at org.apache.sis.util.collection.WeakHashSet.unique(WeakHashSet.java:290) > - waiting to lock <0x0000000704b65b40> (a > org.apache.sis.util.collection.WeakHashSet) > at > org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.unique(DefaultMathTransformFactory.java:1372) > at > org.apache.sis.referencing.operation.transform.DefaultMathTransformFactory.createConcatenatedTransform(DefaultMathTransformFactory.java:1256) > at > org.apache.sis.referencing.operation.transform.ContextualParameters.completeTransform(ContextualParameters.java:522) > - locked <0x00000007818ef028> (a > org.apache.sis.referencing.operation.transform.ContextualParameters) > at > org.apache.sis.referencing.operation.projection.TransverseMercator.createMapProjection(TransverseMercator.java:301) > at > org.apache.sis.internal.referencing.provider.MapProjection.createMathTransform(MapProjection.java:199) > {noformat} -- This message was sent by Atlassian JIRA (v6.3.15#6346)