Program: 110260
Project: 110260
Buggy source:
/** 
 * @param uuid The UUID of the drm scheme.
 * @param mediaDrm An underlying {@link ExoMediaDrm} for use by the manager.
 * @param callback Performs key and provisioning requests.
 * @param optionalKeyRequestParameters An optional map of parameters to pass as the last argumentto  {@link ExoMediaDrm#getKeyRequest(byte[],byte[],String,int,HashMap)}. May be null.
 * @param eventHandler A handler to use when delivering events to {@code eventListener}. May be null if delivery of events is not required.
 * @param eventListener A listener of events. May be null if delivery of events is not required.
 * @param multiSession A boolean that specify whether multiple key session support is enabled.Default is false.
 */
public DefaultDrmSessionManager(UUID uuid,ExoMediaDrm<T> mediaDrm,MediaDrmCallback callback,HashMap<String,String> optionalKeyRequestParameters,Handler eventHandler,EventListener eventListener,boolean multiSession){
  Assertions.checkNotNull(uuid);
  Assertions.checkNotNull(mediaDrm);
  Assertions.checkArgument(!C.COMMON_PSSH_UUID.equals(uuid),"String_Node_Str");
  this.uuid=uuid;
  this.mediaDrm=mediaDrm;
  this.callback=callback;
  this.optionalKeyRequestParameters=optionalKeyRequestParameters;
  this.eventHandler=eventHandler;
  this.eventListener=eventListener;
  this.multiSession=multiSession;
  mode=MODE_PLAYBACK;
  sessions=new ArrayList<>();
  provisioningInProgress=new AtomicBoolean(false);
  if (multiSession) {
    mediaDrm.setPropertyString("String_Node_Str","String_Node_Str");
  }
  mediaDrm.setOnEventListener(new MediaDrmEventListener());
}

Fixed version (ground truth):
/** 
 * @param uuid The UUID of the drm scheme.
 * @param mediaDrm An underlying {@link ExoMediaDrm} for use by the manager.
 * @param callback Performs key and provisioning requests.
 * @param optionalKeyRequestParameters An optional map of parameters to pass as the last argumentto  {@link ExoMediaDrm#getKeyRequest(byte[],byte[],String,int,HashMap)}. May be null.
 * @param eventHandler A handler to use when delivering events to {@code eventListener}. May be null if delivery of events is not required.
 * @param eventListener A listener of events. May be null if delivery of events is not required.
 * @param multiSession A boolean that specify whether multiple key session support is enabled.Default is false.
 */
public DefaultDrmSessionManager(UUID uuid,ExoMediaDrm<T> mediaDrm,MediaDrmCallback callback,HashMap<String,String> optionalKeyRequestParameters,Handler eventHandler,EventListener eventListener,boolean multiSession){
  Assertions.checkNotNull(uuid);
  Assertions.checkNotNull(mediaDrm);
  Assertions.checkArgument(!C.COMMON_PSSH_UUID.equals(uuid),"String_Node_Str");
  this.uuid=uuid;
  this.mediaDrm=mediaDrm;
  this.callback=callback;
  this.optionalKeyRequestParameters=optionalKeyRequestParameters;
  this.eventHandler=eventHandler;
  this.eventListener=eventListener;
  this.multiSession=multiSession;
  mode=MODE_PLAYBACK;
  sessions=new ArrayList<>();
  provisioningSessions=new ArrayList<>();
  if (multiSession) {
    mediaDrm.setPropertyString("String_Node_Str","String_Node_Str");
  }
  mediaDrm.setOnEventListener(new MediaDrmEventListener());
}