OO Design & Patterns

Bug Report Page

{short description of image} 

How to Tell which Printing You Have

On the copyright page (facing the first page of the Preface), there is a printing history of the book. The printing history is a row of numbers that -- at the first printing -- looks like this:

10 9 8 7 6 5 4 3 2 1

At each subsequent printing, one number is removed from the end of this row of numbers to indicate which printing of the book you have. For example, the last number in the row of numbers in the second printing is 2

10 9 8 7 6 5 4 3 2

In the third printing, the last number is 3, and so on.

In the errata below, we indicate the edition in which the error has been fixed inside square brackets such as [3].

For example, suppose you have the third printing. Then you can ignore all reports that are prefixed with [3] or [2]. But you would want to pay attention to all reports that are prefixed with [4] or higher or that have no bracketed prefix at all.

[2] Page 5
In step 4, change "the constructor parameter "Hello, World!"" to "the constructor parameter "World""
[2] Page 17 line 15
Change "edu.cs.cs151.alice.Greeter" to "edu.sjsu.cs.cs151.alice.Greeter"
[3] Page 18
Figure 9 is potentially misleading. The arrow should point to the directory that contains the edu directory. Here is a better figure:
Replacement for Chapter 1 Figure 9
[2] Page 24
Change "int count" to "int age"
[3] Page 30 bottom and 31 top
There should be another ... just before the last closing } in the class, to indicate missing methods:
public class Greeter
   private String name;
      // Listing private features first is not a good idea
   public Greeter(String aName)

[3] Page 55
Change "In Chapter 9, you will learn more" to "In Chapter 8, you will learn more"
[3] Page 60
Change "Figure 11 illustrates the add method of the Mailbox class" to "Figure 11 illustrates the add method of the MessageQueue class"
[2] Page 95
Change "is the same as d1" to "is the same as d2" (2x)
[3] Page 118
In class Mailbox, change public addMessage to public void addMessage
[3] Page 121
In the last line, change compare to compareTo
[3] Page 137 Exercise 3.21
Change java.util.File to java.io.File
[3] Page 140
"Hello, World!", // message title
"Hello, World!", // message
[3] Page 142
In class MyIcon, change
public void paintIcon()
public void paintIcon(Component c, Graphics g, int x, int y)
[3] Page 146
In the first line, change icon.getIconWidth() to anIcon.getIconWidth()
Page 148
The edges in Figure 7 from Rectangle2D.Double, Eclipse2D.Double
and Line2D.Double to Shape should be "implements" edges and not inheritance edges.
[3] Page 163
In class ActionTest, change FIELD_SIZE to FIELD_WIDTH
[3] Page 191
Change "Have a look at the preferredSize computation" to "Have a look at the preferredLayoutSize computation"
[2] Page 272 Figure 3
Add a " after "Employee

[3] Page 276 3rd line from bottom
Change super.equals(other) to super.equals(otherObject)
[2] Page 319 Exercise 7.13
Change formatFields to spyFields (2x)
[2] Page 328
Change "Any concrete collection class must ... of these two classes" to "Any concrete collection class must ... of these two methods"
[2] Page 350 SimpleGraphEditor.java
Change "... for editing UML diagrams" to "... for editing simple graphs"
[2] Page 350 CircleNode.java
Remove the line @param size the size.
[3] Page 418 Ch10/visitor/VisitorTest.java line 7
DirectoryNode node = new DirectoryNode(new File(".."));
FileSystemNode node = new DirectoryNode(new File(".."));

Thanks to Marcello Dalpasso, Dale Feiste, Christopher Fuhrman, Laurie Hendren, Evelyn Obaid, Ned Okie, Peter D. Rosenbaum, Vern Sterba, Robert Stroud and (your name could go here...) for their bug reports and suggestions

Please report any remaining bugs in this edition on the bug report form.