Checking Java Programs

Ian F. Darwin

March 30, 2007

Abstract

This Short Cut tells you about tools that will improve the quality of your Java code, using checking above and beyond what the standard tools do, including:

  • Using javac options, JUnit and assertions

  • Making your IDE work harder

  • Checking your source code with PMD

  • Checking your compiled code (.class files) with FindBugs

  • Checking your program's run-time behavior with Java PathFinder

Quick, is there anything wrong with this code and, if so, what is it? You can assume that the code is part of a class (it's actually in intro/Action.java) and that the whole class compiles without error:

1 public void actionPerformed(ActionEvent e) {
2      try {
3            if (fileName != null && !doingSaveAs) {
4                   doSave(fileName);
5                   return;
6            }
7            if (chooser == null) {
8                   chooser = new JFileChooser();
9            }
10           int returnVal = chooser.showOpenDialog(theFrame);
11           if (returnVal == JFileChooser.APPROVE_OPTION) {
12                  File file = chooser.getSelectedFile();
13                  if (file.exists() && doingSaveAs) {
14                         int ret = JOptionPane.showConfirmDialog(theFrame,
15                                "File already exists, overwrite?", "File Exists",
16                                JOptionPane.YES_NO_OPTION);
17                         System.err.println(ret);
18                         if (ret != 0);     // "Yes" is the 0th option...
19                                return;
20                  }
21                  doSave(file);
22           }
23     } catch (IOException e1) {
24            error("Can't save file", e1);
25     }
26 }

If you spotted the error in ...

Get Checking Java Programs now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.