Errata

Better, Faster, Lighter Java

Errata for Better, Faster, Lighter Java

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".

The following errata were submitted by our customers and approved as valid errors by the author or editor.

Color key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted By Date submitted Date corrected
Printed
Page xv
4th paragraph, 7th line

"Clinton Began"

NOW READS:
"Clinton Begin:

Anonymous    Apr 01, 2005
Printed
Page 3
function declarations

Replace "Long" with "long" in the following:

public abstract Long getID();
public abstract void setID(Long id);
public Object ejbCreate(Long id, int count)
public void ejbPostCreate(Long, int count)

Anonymous   
Printed
Page 5
function declarations

Replace "Long" with "long" in the following:

public abstract Long getId();
public abstract void setID(Long);
public CounterLocal findByPrimaryKey(Long ...)
Public CounterLocal create(Long ...

Anonymous   
Printed
Page 13
In code example 1-4

private string name;

NOW READS:
private String name;

Anonymous    Apr 01, 2005
Printed
Page 14
In code example 1-4

public void setName(long newName) {

NOW READS:
public void setName(String newName)

AND

public string getName() {

NOW READS:
public String getName() {

Anonymous    Apr 01, 2005
Printed
Page 18
Figure 2-1

The text lists 7 points that are supposed to correspond to the numbers in
Figure 2-1. However, there is no point 7 (corresponding to "Easier to
maintain") in the figure.

Anonymous   
Printed
Page 22
In "Over-specialization" paragraph, ending

"...programmers from testers, and code from the warning, healing light of day."

NOW READS:
"...programmers from testers, and code from the warming, healing light of day."

Anonymous    Apr 01, 2005
Printed
Page 25
1st code snippet, 2nd line

String prefix "This code is ";
should be:
String prefix = "This code is ";
^

Anonymous   
Printed
Page 32
Middle of Ant XML example (mid page)

<include name=.**/*Test.class. />
should be:
<include name=.**/Test*.class. />

Anonymous   
Printed
Page 34
1st paragraph in "Coupling"

Strike the last two sentences from this paragraph. They are
essentially repeated in the third bullet of the following list (on p.35)

Anonymous   
Printed
Page 44
block of method definitions after 1st paragraph

public void isValid(String accountNumber) {}

NOW READS::
public boolean isValid(String accountNumber) {}

Anonymous    Apr 01, 2005
Printed
Page 52
first bullet, second sentence

Text reads "If the coupling between your model and view are low..."
Should be:
"If the coupling between your model and view is low ..."

Anonymous   
Printed
Page 74
Annotation for 6

The annotation for "6" should end at "...appropriate XML."

Anonymous   
Printed
Page 77
towards the top of page

Here's the code to invoke a method called sum on class Adder that takes...

NOW READS:
Here's the code to invoke a method called add on class Adder that takes...

AND

// target object is called "target"
Class c = Class.forName("Adder");
Class parameterTypes[] = new Class[2];
parameterTypes[0] = Integer.TYPE;
parameterTypes[1] = Integer.TYPE;
Method m = c.getMethod("sum", parameterTypes);
Object parms[] = new Object[2];
parms[0] = new Integer(1);
parms[1] = new Integer(1);
Integer returnValue = (Integer)m.invoke(target, parms);

NOW READS:

// target object is called "target"
Class c = Class.forName("Adder");
Class parameterTypes[] = new Class[2];
parameterTypes[0] = Integer.TYPE;
parameterTypes[1] = Integer.TYPE;
Method m = c.getMethod("add", parameterTypes);
Object parms[] = new Object[2];
parms[0] = new Integer(1);
parms[1] = new Integer(1);
Integer returnValue = (Integer) m.invoke(null, parms);

Anonymous    Apr 01, 2005
Printed
Page 78
Text following figure 4-6

PersistenceCapible
should be:
PersistenceCapable

Anonymous   
Printed
Page 89
Figure 5.1

'Get Sponser' should be 'Get Sponsor'

Anonymous   
Printed
Page 132
2nd para from bottom,

Previously there was an extra period at the end of the sentence "existing code still use
them.." This HAS BEEN CORRECTED.

Anonymous    Apr 01, 2005
Printed
Page 134
setUser method

public void setUser(String u) {
user = u;
}

NOW READS:

public void setUser(User u) {
user = u;
}

Anonymous    Apr 01, 2005
Printed
Page 134
bottom of the page

Previously, the getBody and setBody methods were repeated.
The last 4 lines on page 134 and the first 3 lines on 135
HAVE BEEN DELETED to correct this.

Anonymous    Apr 01, 2005
Printed
Page 156
Bottom (the beans XML segment); 2nd to last line on the page

<property name="myField" ref local="MySecondBean"/>

NOW READS:
<property name="myField"><ref local="MySecondBean"/></property>

Anonymous    Apr 01, 2005
Printed
Page 157
Annotation line 1 at the bottom

Previously there was an extra blank line before the <bean id="accountValidator"...> after
the (1).
This HAS BEEN DELETED.

Anonymous    Apr 01, 2005
Printed
Page 161
Paragraph above "Adding Persistence" header

Line 3 of the paragraph that starts with "I call this model passive."

"object, although it does have private properties and public fields It has
business meth-"

NOW READS:
"object, although it does have private properties and public fields. It has
business meth-"

Anonymous    Apr 01, 2005
Printed
Page 162
Middle of the page: in the setProductId() method

public void setProductId(String productId) {this.productId =
productId.trim();}

NOW READS:
public void setProductId(String productId) {this.productId = productId;}

Anonymous    Apr 01, 2005
Printed
Page 163
Bottom of page: the numbered paragraph text

All of the annotation numbers are formatted with the regular font instead of the
number-against-filled-in-circle formatted numbers. it is confusing!

Anonymous   
Printed
Page 164
Top of the page, after the first paragraph,caption for Example 8.5

Example 8-5. ProductDAO.java

NOW READS:
Example 8-5. ProductDao.java

Anonymous    Apr 01, 2005
Printed
Page 166
Second Text paragraph before the Example 8-8 caption,last word of the paragraph

ProductDAO

NOW READS:
ProductDao

Anonymous    Apr 01, 2005
Printed
Page 167
After example 8-8, annotation explanations (for both 1 and 2)

"(includes the bold text)"
The phrase "(includes the bold text)" HAS BEEN REMOVED from both.

Anonymous    Apr 01, 2005
Printed
Page 167
Bottom of page: Example 8-9 caption

"dataAccessContext-local.xml"

NOW READS:
"dataAccessContext.xml"

Anonymous    Apr 01, 2005
Printed
Page 171
Example 8 -10. Excerpt from web.xml

The line that reades
"Example 8 -10. Excerpt from web.xml"
should read
"Example 8 -10. Excerpt from perstore-servlet.xml"

Anonymous   
Printed
Page 177
3rd paragraph, 3rd sentence after the semi-colon

'll walk you through the decision-making process.."

NOW READS:
I'll walk you through the decision-making process.."

Anonymous    Apr 01, 2005
Printed
Page 194
method execute()

String title = safeGetFieldString(d, "title");
can be left out because it is repeated after 2 lines (parameter of results.add(...))

Anonymous   
Printed
Page 197
method main(), 5th line from the bottom

QueryBean query = new QueryBean("contents", indexPath, line);
should be
QueryBean query = new QueryBean(indexPath, line, "contents");
or
QueryBean query = new QueryBean(indexPath, line);
according to the constructors on page 193f.

Anonymous   
Printed
Page 209
Last line

"First, create an instead of ConfigBean..."

NOW READS:
"First, create an instance of ConfigBean..."

Anonymous    Apr 01, 2005
Printed
Page 212
"Changes to the Original Code to fit the JSP" section

The statement "JSP reflects on fields to hook up properties to <out> display tags
instead of getters and setters" is absolutely not true. The JSTL expression language
(EL) can read from fields OR getter methods. Therefore, the entire section
discussing the modification of HitBean is unnecessary. HitBean need not change in
any way for JSP to read its properties. JSTL EL does work by using reflection, but
it CAN reflect on getter methods.

As an example, it translates the following syntax:

<c:out value="${page.url}"/>

to the equivalent of

page.getUrl()

Anonymous