In this lab, you will carry out an inspection of the source code for Ant. Download and uncompress the source from http://ant.apache.org/srcdownload.cgi.
You will work with your buddy. One of you writes up a Track+ issue summarizing your results. (Title: Lab 14 / name1 / name2). One or two groups will be randomly selected to present their result at the end of the class.
Use a development environment of your choice. I will write instructions for NetBeans since I know that's what most people use for their project. But you can equally well use Eclipse. Don't use Notepad.
Make a project from existing sources.

Give the project a name such as AntSource.

Then pick the src/main subdirectory of your Ant source.

You should now have a project tree with the Ant source.

Properties props = new Properties();
FileInputStream fis = null;
try {
fis = new FileInputStream(filename);
props.load(fis);
} catch (IOException e) {
System.out.println("Could not load property file "
+ filename + ": " + e.getMessage());
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
// ignore
}
}
}Many programmers are muddleheaded about try blocks, as evidenced by this discussion. This try{} catch{} finally { try{}catch } structure is a tangled mess.
The smart advice is to decouple the try/finally, whose job is resource cleanup, from try/catch, whose job is exception handling.
Rewrite this code segment so that it has the form try { try {} finally{} } catch {}. Explain why this form is superior.