diff options
author | Jayaprakash Arthanareeswaran | 2014-01-27 07:57:36 +0000 |
---|---|---|
committer | ssankaran | 2014-01-27 07:57:36 +0000 |
commit | 252534b1e3dad1831e3abff323be8258609f736d (patch) | |
tree | abacc2a74729269629753093900fbefefba0f9c0 /org.eclipse.jdt.compiler.apt.tests | |
parent | 039347d7e4ee8e1deb95513f2bd485f15185146e (diff) | |
download | eclipse.jdt.core-252534b1e3dad1831e3abff323be8258609f736d.tar.gz eclipse.jdt.core-252534b1e3dad1831e3abff323be8258609f736d.tar.xz eclipse.jdt.core-252534b1e3dad1831e3abff323be8258609f736d.zip |
Fixed Bug 426447 - JDT's implementation of
JavaFilerManager#inferBinaryName() throws IAE
Diffstat (limited to 'org.eclipse.jdt.compiler.apt.tests')
-rw-r--r-- | org.eclipse.jdt.compiler.apt.tests/src/org/eclipse/jdt/compiler/apt/tests/FileManagerTests.java | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/org.eclipse.jdt.compiler.apt.tests/src/org/eclipse/jdt/compiler/apt/tests/FileManagerTests.java b/org.eclipse.jdt.compiler.apt.tests/src/org/eclipse/jdt/compiler/apt/tests/FileManagerTests.java index 5a26c43608..1a5d4b0797 100644 --- a/org.eclipse.jdt.compiler.apt.tests/src/org/eclipse/jdt/compiler/apt/tests/FileManagerTests.java +++ b/org.eclipse.jdt.compiler.apt.tests/src/org/eclipse/jdt/compiler/apt/tests/FileManagerTests.java @@ -121,4 +121,51 @@ public class FileManagerTests extends TestCase { assertTrue("delete failed", inputFile.delete()); assertTrue("delete failed", dir.delete()); } + // Test that JavaFileManager#inferBinaryName returns null for invalid file + public void testInferBinaryName() { + String tmpFolder = System.getProperty("java.io.tmpdir"); + File dir = new File(tmpFolder, "src" + System.currentTimeMillis()); + dir.mkdirs(); + File inputFile = new File(dir, "test.txt"); + BufferedWriter writer = null; + try { + writer = new BufferedWriter(new FileWriter(inputFile)); + writer.write("This is not a valid Java file"); + writer.flush(); + writer.close(); + } catch (IOException e) { + } finally { + if (writer != null) { + try { + writer.close(); + } catch (IOException e) { + } + } + } + try { + StandardJavaFileManager fileManager = new EclipseFileManager(Locale.getDefault(), Charset.defaultCharset()); + + List<File> fins = new ArrayList<File>(); + fins.add(dir); + JavaFileManager.Location sourceLoc = javax.tools.StandardLocation.SOURCE_PATH; + fileManager.setLocation(sourceLoc, fins); + + Set<JavaFileObject.Kind> fileTypes = new HashSet<JavaFileObject.Kind>(); + fileTypes.add(JavaFileObject.Kind.OTHER); + + Iterable<? extends JavaFileObject> compilationUnits = fileManager.list(sourceLoc, "", fileTypes, true); + JavaFileObject invalid = null; + for (JavaFileObject javaFileObject : compilationUnits) { + invalid = javaFileObject; + break; + } + String inferredName = fileManager.inferBinaryName(sourceLoc, invalid); + fileManager.close(); + assertNull("Should return null for invalid file", inferredName); + } catch (IOException e) { + e.printStackTrace(); + } + assertTrue("delete failed", inputFile.delete()); + assertTrue("delete failed", dir.delete()); + } } |