Program: 192803
Project: 192803
Buggy source:
protected boolean inflateViews(Entry entry,ViewGroup parent){
  PackageManager pmUser=getPackageManagerForUser(mContext,entry.notification.getUser().getIdentifier());
  final StatusBarNotification sbn=entry.notification;
  entry.cacheContentViews(mContext,null);
  final RemoteViews contentView=entry.cachedContentView;
  final RemoteViews bigContentView=entry.cachedBigContentView;
  final RemoteViews headsUpContentView=entry.cachedHeadsUpContentView;
  final RemoteViews publicContentView=entry.cachedPublicContentView;
  if (contentView == null) {
    Log.v(TAG,"String_Node_Str" + sbn.getNotification());
    return false;
  }
  if (DEBUG) {
    Log.v(TAG,"String_Node_Str" + publicContentView);
  }
  ExpandableNotificationRow row;
  boolean hasUserChangedExpansion=false;
  boolean userExpanded=false;
  boolean userLocked=false;
  if (entry.row != null) {
    row=entry.row;
    hasUserChangedExpansion=row.hasUserChangedExpansion();
    userExpanded=row.isUserExpanded();
    userLocked=row.isUserLocked();
    entry.reset();
    if (hasUserChangedExpansion) {
      row.setUserExpanded(userExpanded);
    }
  }
 else {
    LayoutInflater inflater=(LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    row=(ExpandableNotificationRow)inflater.inflate(R.layout.status_bar_notification_row,parent,false);
    row.setExpansionLogger(this,entry.notification.getKey());
    row.setGroupManager(mGroupManager);
    row.setHeadsUpManager(mHeadsUpManager);
    row.setRemoteInputController(mRemoteInputController);
    row.setOnExpandClickListener(this);
  }
  workAroundBadLayerDrawableOpacity(row);
  View vetoButton=updateNotificationVetoButton(row,sbn);
  vetoButton.setContentDescription(mContext.getString(R.string.accessibility_remove_notification));
  NotificationContentView contentContainer=row.getPrivateLayout();
  NotificationContentView contentContainerPublic=row.getPublicLayout();
  row.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
  if (ENABLE_REMOTE_INPUT) {
    row.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);
  }
  mNotificationClicker.register(row,sbn);
  View contentViewLocal=null;
  View bigContentViewLocal=null;
  View headsUpContentViewLocal=null;
  View publicViewLocal=null;
  try {
    contentViewLocal=contentView.apply(sbn.getPackageContext(mContext),contentContainer,mOnClickHandler);
    if (bigContentView != null) {
      bigContentViewLocal=bigContentView.apply(sbn.getPackageContext(mContext),contentContainer,mOnClickHandler);
    }
    if (headsUpContentView != null) {
      headsUpContentViewLocal=headsUpContentView.apply(sbn.getPackageContext(mContext),contentContainer,mOnClickHandler);
    }
    if (publicContentView != null) {
      publicViewLocal=publicContentView.apply(sbn.getPackageContext(mContext),contentContainerPublic,mOnClickHandler);
    }
  }
 catch (  RuntimeException e) {
    final String ident=sbn.getPackageName() + "String_Node_Str" + Integer.toHexString(sbn.getId());
    Log.e(TAG,"String_Node_Str" + ident,e);
    return false;
  }
  if (contentViewLocal != null) {
    contentViewLocal.setIsRootNamespace(true);
    contentContainer.setContractedChild(contentViewLocal);
  }
  if (bigContentViewLocal != null) {
    bigContentViewLocal.setIsRootNamespace(true);
    contentContainer.setExpandedChild(bigContentViewLocal);
  }
  if (headsUpContentViewLocal != null) {
    headsUpContentViewLocal.setIsRootNamespace(true);
    contentContainer.setHeadsUpChild(headsUpContentViewLocal);
  }
  if (publicViewLocal != null) {
    publicViewLocal.setIsRootNamespace(true);
    contentContainerPublic.setContractedChild(publicViewLocal);
  }
  try {
    ApplicationInfo info=pmUser.getApplicationInfo(sbn.getPackageName(),0);
    entry.targetSdk=info.targetSdkVersion;
  }
 catch (  NameNotFoundException ex) {
    Log.e(TAG,"String_Node_Str" + sbn.getPackageName(),ex);
  }
  entry.autoRedacted=entry.notification.getNotification().publicVersion == null;
  if (MULTIUSER_DEBUG) {
    TextView debug=(TextView)row.findViewById(R.id.debug_info);
    if (debug != null) {
      debug.setVisibility(View.VISIBLE);
      debug.setText("String_Node_Str" + mCurrentUserId + "String_Node_Str"+ entry.notification.getUserId());
    }
  }
  entry.row=row;
  entry.row.setOnActivatedListener(this);
  entry.row.setExpandable(bigContentViewLocal != null);
  applyColorsAndBackgrounds(sbn,entry);
  if (hasUserChangedExpansion) {
    row.setUserExpanded(userExpanded);
  }
  row.setUserLocked(userLocked);
  row.onNotificationUpdated(entry);
  return true;
}

Fixed version (ground truth):
protected boolean inflateViews(Entry entry,ViewGroup parent){
  PackageManager pmUser=getPackageManagerForUser(mContext,entry.notification.getUser().getIdentifier());
  final StatusBarNotification sbn=entry.notification;
  entry.cacheContentViews(mContext,null);
  final RemoteViews contentView=entry.cachedContentView;
  final RemoteViews bigContentView=entry.cachedBigContentView;
  final RemoteViews headsUpContentView=entry.cachedHeadsUpContentView;
  final RemoteViews publicContentView=entry.cachedPublicContentView;
  if (contentView == null) {
    Log.v(TAG,"String_Node_Str" + sbn.getNotification());
    return false;
  }
  if (DEBUG) {
    Log.v(TAG,"String_Node_Str" + publicContentView);
  }
  ExpandableNotificationRow row;
  boolean hasUserChangedExpansion=false;
  boolean userExpanded=false;
  boolean userLocked=false;
  if (entry.row != null) {
    row=entry.row;
    hasUserChangedExpansion=row.hasUserChangedExpansion();
    userExpanded=row.isUserExpanded();
    userLocked=row.isUserLocked();
    entry.reset();
    if (hasUserChangedExpansion) {
      row.setUserExpanded(userExpanded);
    }
  }
 else {
    LayoutInflater inflater=(LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    row=(ExpandableNotificationRow)inflater.inflate(R.layout.status_bar_notification_row,parent,false);
    row.setExpansionLogger(this,entry.notification.getKey());
    row.setGroupManager(mGroupManager);
    row.setHeadsUpManager(mHeadsUpManager);
    row.setRemoteInputController(mRemoteInputController);
    row.setOnExpandClickListener(this);
  }
  workAroundBadLayerDrawableOpacity(row);
  View vetoButton=bindVetoButtonClickListener(row,sbn);
  vetoButton.setContentDescription(mContext.getString(R.string.accessibility_remove_notification));
  NotificationContentView contentContainer=row.getPrivateLayout();
  NotificationContentView contentContainerPublic=row.getPublicLayout();
  row.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
  if (ENABLE_REMOTE_INPUT) {
    row.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);
  }
  mNotificationClicker.register(row,sbn);
  View contentViewLocal=null;
  View bigContentViewLocal=null;
  View headsUpContentViewLocal=null;
  View publicViewLocal=null;
  try {
    contentViewLocal=contentView.apply(sbn.getPackageContext(mContext),contentContainer,mOnClickHandler);
    if (bigContentView != null) {
      bigContentViewLocal=bigContentView.apply(sbn.getPackageContext(mContext),contentContainer,mOnClickHandler);
    }
    if (headsUpContentView != null) {
      headsUpContentViewLocal=headsUpContentView.apply(sbn.getPackageContext(mContext),contentContainer,mOnClickHandler);
    }
    if (publicContentView != null) {
      publicViewLocal=publicContentView.apply(sbn.getPackageContext(mContext),contentContainerPublic,mOnClickHandler);
    }
  }
 catch (  RuntimeException e) {
    final String ident=sbn.getPackageName() + "String_Node_Str" + Integer.toHexString(sbn.getId());
    Log.e(TAG,"String_Node_Str" + ident,e);
    return false;
  }
  if (contentViewLocal != null) {
    contentViewLocal.setIsRootNamespace(true);
    contentContainer.setContractedChild(contentViewLocal);
  }
  if (bigContentViewLocal != null) {
    bigContentViewLocal.setIsRootNamespace(true);
    contentContainer.setExpandedChild(bigContentViewLocal);
  }
  if (headsUpContentViewLocal != null) {
    headsUpContentViewLocal.setIsRootNamespace(true);
    contentContainer.setHeadsUpChild(headsUpContentViewLocal);
  }
  if (publicViewLocal != null) {
    publicViewLocal.setIsRootNamespace(true);
    contentContainerPublic.setContractedChild(publicViewLocal);
  }
  try {
    ApplicationInfo info=pmUser.getApplicationInfo(sbn.getPackageName(),0);
    entry.targetSdk=info.targetSdkVersion;
  }
 catch (  NameNotFoundException ex) {
    Log.e(TAG,"String_Node_Str" + sbn.getPackageName(),ex);
  }
  entry.autoRedacted=entry.notification.getNotification().publicVersion == null;
  if (MULTIUSER_DEBUG) {
    TextView debug=(TextView)row.findViewById(R.id.debug_info);
    if (debug != null) {
      debug.setVisibility(View.VISIBLE);
      debug.setText("String_Node_Str" + mCurrentUserId + "String_Node_Str"+ entry.notification.getUserId());
    }
  }
  entry.row=row;
  entry.row.setOnActivatedListener(this);
  entry.row.setExpandable(bigContentViewLocal != null);
  applyColorsAndBackgrounds(sbn,entry);
  if (hasUserChangedExpansion) {
    row.setUserExpanded(userExpanded);
  }
  row.setUserLocked(userLocked);
  row.onNotificationUpdated(entry);
  return true;
}