I vote for renaming to less common names like __count. The renaming breaks compatibility from 3.6.0 to 3.7.0 but seems to be the best option.
On Mon, May 15, 2017 at 9:53 AM, Vlad Rozov <v.ro...@datatorrent.com> wrote: > Hi All, > > There is a possible change in operators behavior caused by changes that > were introduced in the release 3.6.0 into DefaultInputPort and > DefaultOutputPort. Please see https://issues.apache.org/jira > /browse/APEXCORE-722. We need to agree how to proceed. > > 1. Break semantic versioning for the Default Input and Output Ports in the > next release (3.7.0), declare protected variables as private and provide > protected access method. Another option is to rename protected variables to > use less common names (for example __count). > 2. Keep protected variables with the risk that the following common > operator design pattern will be used accidentally by existing operators and > newly designed operators: > > public Operator extends BaseOperator { > private int count; > public DefaultInputPort in = new DefaultInputPort() { > @Override > public void process(Object tuple) > { > count++; // updates DefaultInputPort count, not Operator count! > } > } > } > > > Thank you, > > Vlad >