[
https://issues.apache.org/jira/browse/FLINK-5891?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15880459#comment-15880459
]
Greg Hogan commented on FLINK-5891:
-----------------------------------
[~xccui] even when wrapping in another object both references will point to the
same object, and Flink will eventually overwrite the value with a later
deserialization. Elsewhere we have made use of {{CopyableValue}} but this
restricts the permitted types. One can also leave object reuse disabled or use
immutable types (effectively disabling object reuse).
> ConnectedComponents is broken when object reuse enabled
> -------------------------------------------------------
>
> Key: FLINK-5891
> URL: https://issues.apache.org/jira/browse/FLINK-5891
> Project: Flink
> Issue Type: Bug
> Components: Gelly
> Affects Versions: 1.3.0
> Reporter: Greg Hogan
>
> {{org.apache.flink.graph.library.ConnectedComponents.CCUpdater#updateVertex}}
> is storing a value from its iterator.
> {{GSAConnectedComponents}} does not have this limitation.
> {code}
> public static final class CCUpdater<K, VV extends Comparable<VV>>
> extends GatherFunction<K, VV, VV> {
> @Override
> public void updateVertex(Vertex<K, VV> vertex,
> MessageIterator<VV> messages) throws Exception {
> VV current = vertex.getValue();
> VV min = current;
> for (VV msg : messages) {
> if (msg.compareTo(min) < 0) {
> min = msg;
> }
> }
> if (!min.equals(current)) {
> setNewVertexValue(min);
> }
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)