public <KeyIn, ValueIn, ValueOut> Reducer<ValueIn, ValueOut> getReducerByKey(Object key) { Reducer reducer = reducers.get(key); if (reducer == null && configuration.getReducerFactory() != null) { reducer = configuration.getReducerFactory().newReducer(key); Reducer oldReducer = reducers.putIfAbsent(key, reducer); if (oldReducer != null) { reducer = oldReducer; } else { reducer.beginReduce(); } } return reducer; }
public <KeyIn, ValueIn, ValueOut> Reducer<ValueIn, ValueOut> getReducerByKey(Object key) { Reducer reducer = reducers.get(key); if (reducer == null && configuration.getReducerFactory() != null) { reducer = configuration.getReducerFactory().newReducer(key); Reducer oldReducer = reducers.putIfAbsent(key, reducer); if (oldReducer != null) { reducer = oldReducer; } else { reducer.beginReduce(); } } return reducer; }