Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJayaprakash Arthanareeswaran2014-01-27 07:57:36 +0000
committerssankaran2014-01-27 07:57:36 +0000
commit252534b1e3dad1831e3abff323be8258609f736d (patch)
treeabacc2a74729269629753093900fbefefba0f9c0 /org.eclipse.jdt.compiler.apt.tests
parent039347d7e4ee8e1deb95513f2bd485f15185146e (diff)
downloadeclipse.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.java47
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());
+ }
}

Back to the top