Program: 2782
Project: 2782
Buggy source:
/** 
 * Called by a client to open a read-only stream containing data of a particular MIME type.  This is like   {@link #openAssetFile(Uri,String)}, except the file can only be read-only and the content provider may perform data conversions to generate data of the desired type. <p>The default implementation compares the given mimeType against the result of   {@link #getType(Uri)} and, if the match, simple calls{@link #openAssetFile(Uri,String)}. <p>See   {@link ClipData} for examples of the use and implementationof this method.
 * @param uri The data in the content provider being queried.
 * @param mimeTypeFilter The type of data the client desires.  May bea pattern, such as *\/*, if the caller does not have specific type requirements; in this case the content provider will pick its best type matching the pattern.
 * @param opts Additional options from the client.  The definitions ofthese are specific to the content provider being called.
 * @return Returns a new AssetFileDescriptor from which the client canread data of the desired type.
 * @throws FileNotFoundException Throws FileNotFoundException if there isno file associated with the given URI or the mode is invalid.
 * @throws SecurityException Throws SecurityException if the caller doesnot have permission to access the data.
 * @throws IllegalArgumentException Throws IllegalArgumentException if thecontent provider does not support the requested MIME type.
 * @see #getStreamTypes(Uri,String)
 * @see #openAssetFile(Uri,String)
 * @see ClipDescription#compareMimeTypes(String,String)
 */
public AssetFileDescriptor openTypedAssetFile(Uri uri,String mimeTypeFilter,Bundle opts) throws FileNotFoundException {
  if ("String_Node_Str".equals(mimeTypeFilter)) {
    return openAssetFile(uri,"String_Node_Str");
  }
  String baseType=getType(uri);
  if (baseType != null && ClipDescription.compareMimeTypes(baseType,mimeTypeFilter)) {
    return openAssetFile(uri,"String_Node_Str");
  }
  throw new FileNotFoundException("String_Node_Str" + uri + "String_Node_Str"+ mimeTypeFilter);
}

Fixed version (ground truth):
/** 
 * Called by a client to open a read-only stream containing data of a particular MIME type.  This is like   {@link #openAssetFile(Uri,String)}, except the file can only be read-only and the content provider may perform data conversions to generate data of the desired type. <p>The default implementation compares the given mimeType against the result of   {@link #getType(Uri)} and, if they match, simply calls{@link #openAssetFile(Uri,String)}. <p>See   {@link ClipData} for examples of the use and implementationof this method. <p class="note">For better interoperability with other applications, it is recommended that for any URIs that can be opened, you also support queries on them containing at least the columns specified by  {@link android.provider.OpenableColumns}. You may also want to support other common columns if you have additional meta-data to supply, such as   {@link android.provider.MediaStore.MediaColumns#DATE_ADDED}in   {@link android.provider.MediaStore.MediaColumns}.</p>
 * @param uri The data in the content provider being queried.
 * @param mimeTypeFilter The type of data the client desires.  May bea pattern, such as *\/*, if the caller does not have specific type requirements; in this case the content provider will pick its best type matching the pattern.
 * @param opts Additional options from the client.  The definitions ofthese are specific to the content provider being called.
 * @return Returns a new AssetFileDescriptor from which the client canread data of the desired type.
 * @throws FileNotFoundException Throws FileNotFoundException if there isno file associated with the given URI or the mode is invalid.
 * @throws SecurityException Throws SecurityException if the caller doesnot have permission to access the data.
 * @throws IllegalArgumentException Throws IllegalArgumentException if thecontent provider does not support the requested MIME type.
 * @see #getStreamTypes(Uri,String)
 * @see #openAssetFile(Uri,String)
 * @see ClipDescription#compareMimeTypes(String,String)
 */
public AssetFileDescriptor openTypedAssetFile(Uri uri,String mimeTypeFilter,Bundle opts) throws FileNotFoundException {
  if ("String_Node_Str".equals(mimeTypeFilter)) {
    return openAssetFile(uri,"String_Node_Str");
  }
  String baseType=getType(uri);
  if (baseType != null && ClipDescription.compareMimeTypes(baseType,mimeTypeFilter)) {
    return openAssetFile(uri,"String_Node_Str");
  }
  throw new FileNotFoundException("String_Node_Str" + uri + "String_Node_Str"+ mimeTypeFilter);
}