O'Reilly logo

Checking Java Programs by Ian F. Darwin

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required