[
https://issues.apache.org/jira/browse/TINKERPOP-2033?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16614931#comment-16614931
]
ASF GitHub Bot commented on TINKERPOP-2033:
-------------------------------------------
Github user robertdale commented on a diff in the pull request:
https://github.com/apache/tinkerpop/pull/932#discussion_r217736025
--- Diff:
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoSerializersV3d0.java
---
@@ -427,7 +428,12 @@ else if (1 == arguments)
output.writeString(object.getName());
output.writeDouble(object.getDuration(TimeUnit.NANOSECONDS) /
1000000d);
kryo.writeObject(output, object.getCounts());
- kryo.writeObject(output, object.getAnnotations());
+
+ // annotations is a synchronized LinkedHashMap - get rid of
the "synch" for serialization as gryo
+ // doesn't know how to deserialize that well and LinkedHashMap
should work with 3.3.x and previous
+ final Map<String, Object> annotations = new LinkedHashMap<>();
+ object.getAnnotations().forEach(annotations::put);
+ kryo.writeObject(output, annotations);
// kryo might have a problem with LinkedHashMap value
collections. can't recreate it independently but
--- End diff --
Do we not need to worry about this comment?
> Maintain order of profile() annotations
> ---------------------------------------
>
> Key: TINKERPOP-2033
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2033
> Project: TinkerPop
> Issue Type: Improvement
> Components: process
> Affects Versions: 3.4.0
> Reporter: stephen mallette
> Assignee: stephen mallette
> Priority: Minor
> Fix For: 3.4.0
>
>
> The {{annotations}} of {{ImmutableMetrics}} uses a {{ConcurrentHashMap}} but
> that of course loses the insertion order. Convert to a {{synchronizedMap}}
> that takes a {{LinkedHashMap}} to maintain that order as well as the ability
> to support concurrent access which is an issue for some graphs.
> There was some question as to whether or not this change was breaking to the
> Gryo format or not ,but it appears that it is not. Gryo 1.0 and 3.0 remain as
> intact as they were on previous releases, though it is worth noting that Gryo
> 1.0 broke on release on 3.3.0 when it comes to "metrics" serialization so
> that break is still intact. Therefore you can't use Gryo 1.0 between 3.2.x
> and 3.3.x/3.4.x. Not sure how that happened exactly.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)