Program: 110254
Project: 110254
Buggy source:
/** 
 * Instantiates a new DRM session.
 * @param uuid The UUID of the drm scheme.
 * @param mediaDrm The media DRM.
 * @param initData The DRM init data.
 * @param mode The DRM mode.
 * @param offlineLicenseKeySetId The offlineLicense KeySetId.
 * @param optionalKeyRequestParameters The optional key request parameters.
 * @param callback The media DRM callback.
 * @param playbackLooper The playback looper.
 * @param eventHandler The handler to post listener events.
 * @param eventListener The DRM session manager event listener.
 */
public DefaultDrmSession(UUID uuid,ExoMediaDrm<T> mediaDrm,byte[] initData,String mimeType,@DefaultDrmSessionManager.Mode int mode,byte[] offlineLicenseKeySetId,HashMap<String,String> optionalKeyRequestParameters,MediaDrmCallback callback,Looper playbackLooper,Handler eventHandler,DefaultDrmSessionManager.EventListener eventListener,AtomicBoolean provisioningInProgress,EventListener sessionEventListener){
  this.uuid=uuid;
  this.mediaDrm=mediaDrm;
  this.mode=mode;
  this.offlineLicenseKeySetId=offlineLicenseKeySetId;
  this.optionalKeyRequestParameters=optionalKeyRequestParameters;
  this.callback=callback;
  this.eventHandler=eventHandler;
  this.eventListener=eventListener;
  this.provisioningInProgress=provisioningInProgress;
  this.sessionEventListener=sessionEventListener;
  state=STATE_OPENING;
  postResponseHandler=new PostResponseHandler(playbackLooper);
  requestHandlerThread=new HandlerThread("String_Node_Str");
  requestHandlerThread.start();
  postRequestHandler=new PostRequestHandler(requestHandlerThread.getLooper());
  if (offlineLicenseKeySetId == null) {
    this.initData=initData;
    this.mimeType=mimeType;
  }
 else {
    this.initData=null;
    this.mimeType=null;
  }
}

Fixed version (ground truth):
/** 
 * Instantiates a new DRM session.
 * @param uuid The UUID of the drm scheme.
 * @param mediaDrm The media DRM.
 * @param provisioningManager The manager for provisioning.
 * @param initData The DRM init data.
 * @param mode The DRM mode.
 * @param offlineLicenseKeySetId The offlineLicense KeySetId.
 * @param optionalKeyRequestParameters The optional key request parameters.
 * @param callback The media DRM callback.
 * @param playbackLooper The playback looper.
 * @param eventHandler The handler to post listener events.
 * @param eventListener The DRM session manager event listener.
 */
public DefaultDrmSession(UUID uuid,ExoMediaDrm<T> mediaDrm,ProvisioningManager<T> provisioningManager,byte[] initData,String mimeType,@DefaultDrmSessionManager.Mode int mode,byte[] offlineLicenseKeySetId,HashMap<String,String> optionalKeyRequestParameters,MediaDrmCallback callback,Looper playbackLooper,Handler eventHandler,DefaultDrmSessionManager.EventListener eventListener){
  this.uuid=uuid;
  this.provisioningManager=provisioningManager;
  this.mediaDrm=mediaDrm;
  this.mode=mode;
  this.offlineLicenseKeySetId=offlineLicenseKeySetId;
  this.optionalKeyRequestParameters=optionalKeyRequestParameters;
  this.callback=callback;
  this.eventHandler=eventHandler;
  this.eventListener=eventListener;
  state=STATE_OPENING;
  postResponseHandler=new PostResponseHandler(playbackLooper);
  requestHandlerThread=new HandlerThread("String_Node_Str");
  requestHandlerThread.start();
  postRequestHandler=new PostRequestHandler(requestHandlerThread.getLooper());
  if (offlineLicenseKeySetId == null) {
    this.initData=initData;
    this.mimeType=mimeType;
  }
 else {
    this.initData=null;
    this.mimeType=null;
  }
}