Program: 13563
Project: 13563
Buggy source:
/** 
 * @return upgrader for activating stacklets. Subclasses may override. 
 */
protected MuxConnector createConnector(){
  LoggerBundle logger=LoggerBundle.NOP_IMPL;
  LoggerContext loggers=new LoggerContext(logger,logger,logger,logger);
  IdURIEncoderDecoder uriCodec=new IdURIEncoderDecoder(new ClientPercentEncoderDecoder());
  HashedVersionFactory hashFactory=new HashedVersionZeroFactoryImpl(uriCodec);
  Scheduler scheduler=new FuzzingBackOffScheduler.Builder(getRpcScheduler()).setInitialBackOffMs(ClientFlags.get().initialRpcBackoffMs()).setMaxBackOffMs(ClientFlags.get().maxRpcBackoffMs()).setRandomisationFactor(0.5).build();
  ViewChannelFactory viewFactory=ViewChannelImpl.factory(createWaveViewService(),logger);
  UnsavedDataListenerFactory unsyncedListeners=new UnsavedDataListenerFactory(){
    private final UnsavedDataListener listener=new SavedStateIndicator(unsavedIndicatorElement);
    @Override public UnsavedDataListener create(    WaveletId waveletId){
      return listener;
    }
    @Override public void destroy(    WaveletId waveletId){
    }
  }
;
  WaveletId udwId=getIdGenerator().newUserDataWaveletId(getSignedInUser().getAddress());
  final IdFilter filter=IdFilter.of(Collections.singleton(udwId),Collections.singleton(IdConstants.CONVERSATION_WAVELET_PREFIX));
  WaveletDataImpl.Factory snapshotFactory=WaveletDataImpl.Factory.create(getDocumentRegistry());
  final OperationChannelMultiplexer mux=new OperationChannelMultiplexerImpl(getWave().getWaveId(),viewFactory,snapshotFactory,loggers,unsyncedListeners,scheduler,hashFactory);
  final WaveViewImpl<OpBasedWavelet> wave=getWave();
  return new MuxConnector(){
    @Override public void connect(    Command onOpened){
      LiveChannelBinder.openAndBind(getWavelets(),wave,getDocumentRegistry(),mux,filter,onOpened);
    }
    @Override public void close(){
      mux.close();
    }
  }
;
}

Fixed version (ground truth):
/** 
 * @return upgrader for activating stacklets. Subclasses may override. 
 */
protected MuxConnector createConnector(){
  LoggerBundle logger=LoggerBundle.NOP_IMPL;
  LoggerContext loggers=new LoggerContext(logger,logger,logger,logger);
  IdURIEncoderDecoder uriCodec=new IdURIEncoderDecoder(new ClientPercentEncoderDecoder());
  HashedVersionFactory hashFactory=new HashedVersionZeroFactoryImpl(uriCodec);
  Scheduler scheduler=new FuzzingBackOffScheduler.Builder(getRpcScheduler()).setInitialBackOffMs(ClientFlags.get().initialRpcBackoffMs()).setMaxBackOffMs(ClientFlags.get().maxRpcBackoffMs()).setRandomisationFactor(0.5).build();
  ViewChannelFactory viewFactory=ViewChannelImpl.factory(createWaveViewService(),logger);
  UnsavedDataListenerFactory unsyncedListeners=new UnsavedDataListenerFactory(){
    private final UnsavedDataListener listener=unsavedDataListener;
    @Override public UnsavedDataListener create(    WaveletId waveletId){
      return listener;
    }
    @Override public void destroy(    WaveletId waveletId){
    }
  }
;
  WaveletId udwId=getIdGenerator().newUserDataWaveletId(getSignedInUser().getAddress());
  final IdFilter filter=IdFilter.of(Collections.singleton(udwId),Collections.singleton(IdConstants.CONVERSATION_WAVELET_PREFIX));
  WaveletDataImpl.Factory snapshotFactory=WaveletDataImpl.Factory.create(getDocumentRegistry());
  final OperationChannelMultiplexer mux=new OperationChannelMultiplexerImpl(getWave().getWaveId(),viewFactory,snapshotFactory,loggers,unsyncedListeners,scheduler,hashFactory);
  final WaveViewImpl<OpBasedWavelet> wave=getWave();
  return new MuxConnector(){
    @Override public void connect(    Command onOpened){
      LiveChannelBinder.openAndBind(getWavelets(),wave,getDocumentRegistry(),mux,filter,onOpened);
    }
    @Override public void close(){
      mux.close();
    }
  }
;
}