Program: 2771
Project: 2771
Buggy source:
/** 
 * Override this to handle requests to open a file blob. The default implementation always throws   {@link FileNotFoundException}. This method can be called from multiple threads, as described in <a href="  {@docRoot}guide/topics/fundamentals/processes-and-threads.html#Threads">Processes and Threads</a>. <p>This method returns a ParcelFileDescriptor, which is returned directly to the caller.  This way large data (such as images and documents) can be returned without copying the content. <p>The returned ParcelFileDescriptor is owned by the caller, so it is their responsibility to close it when done.  That is, the implementation of this method should create a new ParcelFileDescriptor for each call.
 * @param uri The URI whose file is to be opened.
 * @param mode Access mode for the file.  May be "r" for read-only access,"rw" for read and write access, or "rwt" for read and write access that truncates any existing file.
 * @return Returns a new ParcelFileDescriptor which you can use to accessthe file.
 * @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 file.
 * @see #openAssetFile(Uri,String)
 * @see #openFileHelper(Uri,String)
 */
public ParcelFileDescriptor openFile(Uri uri,String mode) throws FileNotFoundException {
  throw new FileNotFoundException("String_Node_Str" + uri);
}

Fixed version (ground truth):
/** 
 * Override this to handle requests to open a file blob. The default implementation always throws   {@link FileNotFoundException}. This method can be called from multiple threads, as described in <a href="  {@docRoot}guide/topics/fundamentals/processes-and-threads.html#Threads">Processes and Threads</a>. <p>This method returns a ParcelFileDescriptor, which is returned directly to the caller.  This way large data (such as images and documents) can be returned without copying the content. <p>The returned ParcelFileDescriptor is owned by the caller, so it is their responsibility to close it when done.  That is, the implementation of this method should create a new ParcelFileDescriptor for each call. <p class="note">For use in Intents, you will want to implement   {@link #getType}to return the appropriate MIME type for the data returned here with the same URI.  This will allow intent resolution to automatically determine the data MIME type and select the appropriate matching targets as part of its operation.</p> <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 URI whose file is to be opened.
 * @param mode Access mode for the file.  May be "r" for read-only access,"rw" for read and write access, or "rwt" for read and write access that truncates any existing file.
 * @return Returns a new ParcelFileDescriptor which you can use to accessthe file.
 * @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 file.
 * @see #openAssetFile(Uri,String)
 * @see #openFileHelper(Uri,String)
 * @see #getType(android.net.Uri)
 */
public ParcelFileDescriptor openFile(Uri uri,String mode) throws FileNotFoundException {
  throw new FileNotFoundException("String_Node_Str" + uri);
}