[ 
https://issues.apache.org/jira/browse/FLINK-5891?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15883142#comment-15883142
 ] 

Greg Hogan commented on FLINK-5891:
-----------------------------------

The trouble with object reuse is that it is a global flag which is simplest to 
leave unset when composing code or using library methods. Better would be to 
mark object reuse enabled or disabled with annotations on each user defined 
{{Function}}.

> 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)

Reply via email to