Errata
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.
The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.
Color Key: Serious Technical Mistake Minor Technical Mistake Language or formatting error Typo Question
| Version | Location | Description | Submitted By |
|---|---|---|---|
| Printed | Page xxii Line below "Chapter 18,..." |
The line reads as follows: |
Anonymous |
| Printed | Page xxii Line below "Chapter 18,..." |
The line reads as follows: |
Anonymous |
| Other Digital Version | ex07_* build.xml |
Ant build.xml files have unneeded reference to ${jboss.home}/server/default/deploy/jbossweb-tomcat55.sar/jsf-libs commons-collections.jar. This is not needed for the build. Also since this is not a standard files with JBoss 4.x, the build will fail as a result. A work-around is to comment out this classpath requirement. |
Dan Becker |
| Other Digital Version | ex0* All build.xml scripts |
Ant build.xml scripts only work with JBoss 4.x. They fail with JBoss 5.x. A work-around is to change paths from server/default/deploy/ to server/default/deployer/. |
Dan Becker |
| Printed | Page 11 and 12 page 11 paragraph 4 conflicts with page 12 paragraph 3 |
Page 11 paragraph 4 states "... entities can be ... serialized ...". |
Anonymous |
| Printed | Page 24 Bottom of page, setCustomer() method |
entityManager.create(cust) |
Anonymous |
| Printed | Page 27 in the example at the bottom |
Variables cruisePk and cabinPk are referenced as cruisePK and cabinPK, respectively, on the following page (28). |
Anonymous |
| Printed | Page 28 Code example |
entityManager.create(reservation); |
Anonymous |
| Printed | Page 28 top of page, source code |
In the "Message-Driven Beans" section that starts on page 27, the example code, which continues through the top of page 28, contains an error. |
Anonymous |
| Printed | Page 28 Code example on the top of the page |
The line |
Szabolcs Andrasi |
| Printed | Page 54 First paragraph |
"The <name> element represents the set of classes" ... |
Anonymous |
| Printed | Page 57 Figure 4-2 |
The titan.jar content is wrong. It should contain TravelAgentBean.class instead of |
Anonymous |
| Printed | Page 57 Figure 4-2 |
There is no "dev" directory of titan.jar, so the first box should be removed or |
Anonymous |
| Printed | Page 60 second-to-last paragraph |
p. 58: |
Anonymous |
| Printed | Page 60 Code snippet near bottom of page |
Object ref = jndiContext.lookup("TravelAgentRemote"); |
Anonymous |
| Printed | Page 68 Figure 5-1 |
There is no "dev" directory of titan-persistence.jar, so the first box should be |
Anonymous |
| Printed | Page 69 4rd paragraph, mid-page |
javax.persistence.PersistenceProvider |
Anonymous |
| Printed | Page 76 2nd code example |
Custom cust = new Customer(); |
Anonymous |
| Printed | Page 77 top paragraph |
the second sentence, "TransactionRequiredException is thrown if this method |
Anonymous |
| Printed | Page 77 5th paragraph, above last code example |
Replace colon with a period at the end of the sentence "So, the constant 2 is converted |
Anonymous |
| Printed | Page 77 2nd to last paragraph |
The sentence "and there is no guarantee that the entity's state will be initialized" |
Anonymous |
| Printed | Page 78 4th paragraph |
There hasn't been introduced any methods named "getResource()", so what the author probably |
Anonymous |
| Printed | Page 79 Second paragraph |
It's stated that "the persistence context ends when the findCabin() method finishes, |
Anonymous |
| Printed | Page 80 2nd paragraph, 2nd sentence |
Should be "The TransactionRequiredException is thrown if this method is NOT invoked |
Anonymous |
| Printed | Page 81 Top of page first line |
"removeCabin(int id)" |
Anonymous |
| Printed | Page 81 2nd paragraph, 2nd sentence |
Should be "The TransactionRequiredException is thrown if this method is NOT invoked |
Anonymous |
| Printed | Page 82 Bottom of page |
The getTransaction() method is not listed on page 75-76. |
Anonymous |
| Printed | Page 90 Second paragraph |
Change: |
Anonymous |
| Printed | Page 100 Middle of page in XML |
<id-class> doesn't use embedded text to set the class name. It uses the class attribute |
Anonymous |
| Printed | Page 102 Middle of page - code for Customer class |
public PK getPk()... |
Anonymous |
| Printed | Page 103 Top of page - @AttributeOverrides code |
There is probably a ")" missing in |
Anonymous |
| Printed | Page 103 Middle of page - line above xml listing |
Let us now look at .... @IdClass: |
Anonymous |
| Printed | Page 104 Bottom of page - code example |
public PK getPk()... |
Anonymous |
| Printed | Page 112 Second Paragraph |
"The @PrimaryKeyJoinColumn specifies the column in the ADDRESS_TABLE that you will join |
Anonymous |
| Printed | Page 114 Last paragraph |
The paragraph states that "The embedded Address class has the @Column mappings defined |
Anonymous |
| Printed | Page 115 bottom - xml mapping |
embeddable class description doesn't have list of attributes. |
Anonymous |
| Printed | Page 120 Top of page - Customer entity code listing |
private Address address; |
Anonymous |
| Printed | Page 121 Bottom of page - xml listing |
<cascade>ALL</cascade> |
Anonymous |
| Printed | Page 127 Java code at end of page |
In the method getCreditCard(), "return homeAddress;" should be "return creditCard;". |
Anonymous |
| Printed | Page 129 First paragraph |
I believe the use a foreign-key column to implement a one-to-many unidirectional relationship |
Anonymous |
| Printed | Page 129 Figure 7.5 |
PHONE table foreign key should be CUSTOMER_ID rather than CREDIT_CARD_ID |
Anonymous |
| Printed | Page 129 Figure 7.5 |
RDBMS PHONE model should have field CUSTOMER_ID INT rather than CREDIT_CARD_ID INT, in order to allow many phone entities to be related to a customer (not credit card). |
Dan Becker |
| Printed | Page 133 one-to-many element in Xml at bottom of page |
attribute targetEntity should be target-entity. |
Anonymous |
| Printed | Page 133 top of page - customer entity code listing |
@JoinTable(name="CUSTOMER_PHONE"), |
Anonymous |
| Printed | Page 137 Code snippets and text |
The code snippets and text on this and other pages throughout the book refer to a |
Anonymous |
| Printed | Page 141 First code sample |
The "date" property should be annotated with the |
Anonymous |
| Printed | Page 142 middle of page - cruise entity xml listing |
<one-to-many name="ship" |
Anonymous |
| Printed | Page 144 2nd section of code |
@JoinTable(name="Reservation_Customer"), |
Anonymous |
| Printed | Page 144 Middle of page, code sample |
The method "public void setCustomers(Set customers);" should be |
Anonymous |
| Printed | Page 146 top of page - customer entity xml listing |
<many-to-many name="cruise" |
Anonymous |
| Printed | Page 148 Source middle |
Set<Cabin> should read as Map<Cabin> |
Anonymous |
| Printed | Page 148 in unconfirmed errata |
I disagree with the unconfirmed errata. |
Anonymous |
| Printed | Page 151 middle of page - reservation entity code listing |
public void setCustomers(Set Customers); |
Anonymous |
| Printed | Page 151 Middle of page |
The method |
Anonymous |
| Printed | Page 151 code example, middle of page (same place as previous errata) |
should setCustomers(Set customers) |
Anonymous |
| Printed | Page 153 Bottom of page |
According to the EJB3 specification, FetchType.LAZY is only a hint |
Anonymous |
| Printed | Page 154 bottom code example |
Customer cust is defined but Customer customer is used instead. |
Anonymous |
| Printed | Page 161 code example, middle of page |
declaration needs opening brace |
Anonymous |
| Printed | Page 168 middle of page - Customer entity listing |
@AttributeOverride(name="lastname",... |
Anonymous |
| Printed | Page 171 Code sample, bottom of page |
entityManager.creatQuery( should be entityManager.createQuery( |
Anonymous |
| Printed | Page 171 last codeblock |
The query "from Customer c" is incorrect. |
Anonymous |
| Printed | Page 172 first paragraph line 4 |
I have noticed a typo in this book at page number 172 in chapter 9. It says Query#getSingleResult() throws javax.persistence.EntityNotFoundException If no result returned. But this is not true, Query.getSingleResult() throws javax.persistence.NoResultException if there is no result. This is as per the Docs given by Sun. |
Anonymous |
| Printed | Page 172 3rd paragraph |
In the first line of the first code example on page 172 it should read |
Anonymous |
| Printed | Page 172 1st paragraph |
3rd & 4th line: If no result is returned then javax.persistence.NoResultException is thrown, |
Anonymous |
| Printed | Page 172 first paragraph line 4 |
I have noticed a typo in this book at page number 172 in chapter 9. It says Query#getSingleResult() throws javax.persistence.EntityNotFoundException If no result returned. But this is not true, Query.getSingleResult() throws javax.persistence.NoResultException if there is no result. This is as per the Docs given by Sun. |
Anonymous |
| Printed | Page 184 top of page - section "Using DISTINCT" |
SELECT res FROM ... |
Anonymous |
| Printed | Page 185 Third-to-last paragraph |
Change "Reservation EJBs" to "Reservation entities". |
Anonymous |
| Printed | Page 194 Third paragraph |
The paragraph mentions CMR fields and CMP fields which don't exist in EJB3. |
Anonymous |
| Printed | Page 195 Middle of page |
In the code example, replace "SELECT DISTINCT COUNT(c.address.zip)" with |
Anonymous |
| Printed | Page 200 middle of page; Section: EXISTS; query listing |
...(SELECT res FROM cr.reservations WHERE ... |
Anonymous |
| Printed | Page 203 Middle of page; XML listing |
<entity-result entity-class="com.titan.domain.CreditCard"/> |
Anonymous |
| Printed | Page 203 Bottom of page; Java example |
@SqlResultSetMapping(name="reservationCount", |
Anonymous |
| Printed | Page 205 Top of page query example |
FROM Cruise As c, JOIN c.reservations r |
Anonymous |
| Printed | Page 205 Middle of page |
Change |
Anonymous |
| Printed | Page 206 Bottom of page; XML listing |
result-set-mapping="customerAndCCNumMapping"/> |
Anonymous |
| Printed | Page 209 Bottom, Code |
afterInsert() should read as beforeInsert() |
Anonymous |
| Printed | Page 210 Bottom |
beforeInsert() should read as afterInsert() |
Anonymous |
| Printed | Page 220 Middle of page |
Add the word "annotation" after "@javax.ejb.ApplicationException". |
Anonymous |
| Printed | Page 222 Middle of page |
In the code sample, change "Package javax.ejb;" to "package javax.ejb;" |
Anonymous |
| Printed | Page 222 Third paragraph |
Change: |
Anonymous |
| Printed | Page 225 Top of page xml listing |
In the xml listing on pages 224 and 225, |
Anonymous |
| Printed | Page 225 xml-file |
There is an errata that says: |
Anonymous |
| Printed | Page 226 bottom code snippet |
The camel notation for the veriable myself is spelled "mySelf" implying myself |
Anonymous |
| Printed | Page 227 Middle of page |
In the code sample, the last two lines should be changed from: |
Anonymous |
| Printed | Page 251 Bottom, Code |
ticketDescription should read as ticket.discription |
Anonymous |
| Printed | Page 253 Bottom, Code |
ticketDescription should read as ticket.discription |
Anonymous |
| Printed | Page 254 Top of page |
In the first code sample, change: |
Anonymous |
| Printed | Page 254 Middle of page, objectMsg example |
The lines |
Anonymous |
| Printed | Page 256 Top of page |
Change: |
Anonymous |
| Printed | Page 262 Top of page |
Change "A message-driven bean is a complete enterprise bean, just like a |
Anonymous |
| Printed | Page 262 Middle of page |
Change "it creates a new Reservation EJB" to "it creates a new Reservation entity". |
Anonymous |
| Printed | Page 263 code fragment |
The @ActivationConfigProperty(propertyName="destination", propertyValue="queue/titan- |
Anonymous |
| Printed | Page 264 Bottom of page |
The listing showing EJBContext doesn't correspond to the listing on page 227. |
Anonymous |
| Printed | Page 265 Middle of page |
Change "javax.jta.UserTransaction" to "javax.transaction.UserTransaction". |
Anonymous |
| Printed | Page 269 4th Paragraph |
The statement |
Anonymous |
| Printed | Page 272 Top of page xml listing |
There seem to be a lot of mistakes with the xml listing: |
Anonymous |
| Printed | Page 283 Middle of page; XML listing |
<injection-target-class> should be com.titan.travelagent.TravelAgentBean and not |
Anonymous |
| Printed | Page 284 first paragraph, line 2, top of page |
on the 2nd line of first paragraph, where is written |
Rafael Fontoura |
| Printed | Page 287 Bottom, Code |
implements ShipMaintenanceRemote implements javax.ejb.TimedObject |
Anonymous |
| Printed | Page 287 Bottom of page |
In the second code sample, replace the second occurrence of "implements" with a comma. |
Anonymous |
| Printed | Page 287 Bottom of page |
Replace "implement" with "implements" |
Anonymous |
| Printed | Page 288 Middle of page |
Change |
Anonymous |
| Printed | Page 288 4th line from bottom of the page |
3rd parameter of scheduleMaintenance method, |
Anonymous |
| Printed | Page 288 Bottom of page |
Remove non-relevant "@PersistenceContext(unitName="titanDB") entityManager;" |
Anonymous |
| Printed | Page 288 Bottom of page |
Change: |
Anonymous |
| Printed | Page 288 bottom of page |
wrong parameter names. |
Dirk Dühr |
| Printed | Page 289 middle of page code listing |
line: |
Anonymous |
| Printed | Page 289 3rd parameter of scheduleMaintenance method |
Date dateOfTest |
Anonymous |
| Printed | Page 289 2nd code segment |
Body of the "scheduleMaintenance(String ship, String description, Date dateOfTest)" method: |
Dirk Dühr |
| Printed | Page 289 2nd code segment |
2nd "@Resource" annotation without type specified. |
Dirk Dühr |
| Printed | Page 292 First paragraph |
Replace the paragraph |
Anonymous |
| Printed | Page 294 Middle of page |
Replace the paragraph |
Anonymous |
| Printed | Page 295 Bottom of page |
replace: |
Anonymous |
| Printed | Page 295 Bottom, Code |
javax.ejb.Timer timer = (javax.ejb.Timer) obj; |
Anonymous |
| Printed | Page 296 The section "Retrieving other information from timers" |
Contrary to the contents of the section, the Timer.getNextTimeout() method |
Anonymous |
| Printed | Page 296 Middle of page |
The javax.ejb.Handle and javax.ejb.HomeHandle are not discussed in chapter 5. |
Anonymous |
| Printed | Page 296 Bottom of page |
Replace "javax.ejb.NoSuchObjectException" with "javax.ejb.NoSuchLocalObjectException". |
Anonymous |
| Printed | Page 298 3rd line from bottom |
@PostCreate |
Anonymous |
| Printed | Page 299 1st line |
@PostCreate |
Anonymous |
| Printed | Page 299 last line of 2nd paragraph |
using "@PreDestroy method..." |
Anonymous |
| Printed | Page 299 & 301 Figures 13.1 and 13.2 |
Figures 13.1 and 13.2 are the same. Is it right? |
Anonymous |
| Printed | Page 305 1st paragraph |
"enterprise naming context" should be "environment naming context" |
Anonymous |
| Printed | Page 305 2nd paragraph (also on other pages / paragraphs) |
@javax.annotation.EJB must be @javax.ejb.EJB |
Anonymous |
| Printed | Page 306 2nd paragraph |
The given xml code for the ejb-jar.xml is not valid. The <session> tag is not closed. |
Anonymous |
| Printed | Page 308 paragraph after first code segment |
"You do not append the 'java:comp/env' string to the name..." |
Anonymous |
| Printed | Page 309 last paragraph (xml listing) |
The xml tag <ejb-local-ref> is opened but the xml tag </ejb-ref> is closed. This is |
Anonymous |
| Printed | Page 315 XML-based remote EJB references XML snippet |
The opening <session> tag misses a closing </session> tag |
Anonymous |
| Printed | Page 316 Last XML snippet on page folding to next page |
Opening <session> tag misses a closing </session> tag. |
Anonymous |
| Printed | Page 317 Second XML snippet on page |
Opening <session> tag misses a closing </session> tag. |
Anonymous |
| Printed | Page 317 Middle of page |
Remove the word "remote" from the paragraph "The <ejb-local-ref> defines a |
Anonymous |
| Printed | Page 317 Middle of page |
Change: |
Anonymous |
| Printed | Page 317 Bottom of page |
Change |
Anonymous |
| Printed | Page 317 Bottom of page |
Change |
Anonymous |
| Printed | Page 317 last |
The <ejb-ref> element can be ... |
Anonymous |
| Printed | Page 318 Middle of page |
Change |
Anonymous |
| Printed | Page 318 Last XML snippet on page |
Opening <session> tag misses a closing </session> tag. |
Anonymous |
| Printed | Page 319 Middle of page |
Replace "inventory.jar" with "inventory-ejb.jar". |
Anonymous |
| Printed | Page 322 First XML snippet |
Opening <session> tag misses a closing </session> tag. |
Anonymous |
| Printed | Page 325 Top of page |
In the code sample, replace |
Anonymous |
| Printed | Page 326 Middle of page |
Add missing "</persistence-context-ref>" closing element to XML. |
Anonymous |
| Printed | Page 329 Top of page |
Change: |
Anonymous |
| Printed | Page 329 Bottom of page |
Change: |
Anonymous |
| Printed | Page 331 First XML snippet |
Opening <session> tag misses a closing </session> tag. |
Anonymous |
| Printed | Page 332 First XML snippet |
Opening <session> tag misses a closing </session> tag. |
Anonymous |
| Printed | Page 333 All XML snippets |
Opening <session> tag misses a closing </session> tag. |
Anonymous |
| Printed | Page 334 First XML snippet |
Opening <session> tag misses a closing </session> tag. |
Anonymous |
| Printed | Page 335 First XML snippet |
Opening <session> tag misses a closing </session> tag. |
Anonymous |
| Printed | Page 336 Middle of page |
Change: |
Anonymous |
| Printed | Page 337 First XML snippet |
Opening <session> tag misses a closing </session> tag. |
Anonymous |
| Printed | Page 341 bottom of page InvocationContext listing |
The JBOSS API InvocationContext seems to contain a "getBean" method and not a "getTarget". |
Anonymous |
| Printed | Page 347 audit() method in code |
the method should return a value, |
Anonymous |
| Printed | Page 349 Xml source code |
<persistence-context-unit-name>auditdb</persistence-context-unit-name> |
Anonymous |
| Printed | Page 350 last code snippet |
the custom annotation (from the previous code block, and used in the following page) is named |
Anonymous |
| Printed | Page 352 Top of page |
Change "customer" to "custom". |
Anonymous |
| Printed | Page 388 Top of page |
Change: |
Anonymous |
| Printed | Page 388 Middle of page |
Change: |
Anonymous |
| Printed | Page 399 Bottom of page |
The paragraph |
Anonymous |
| Printed | Page 401 table 16-1 |
Hello, |
Witold Koszulinski |
| Printed | Page 403 table 16-2, first row, System Exception, Container's action |
Hello, |
Witold Koszulinski |
| Printed | Page 406 Conversational Persistence Contexts |
This works on Hibernates EntityManager, but not on TopLinks EntityManager. The question is |
Anonymous |
| Printed | Page 407 Top, Source |
customer0 must be customer |
Anonymous |
| Printed | Page 411 Bottom, Source |
customer0 must be customer |
Anonymous |
| Printed | Page 416 Bottom of page |
In the code sample, replace: |
Anonymous |
| Printed | Page 417 1st paragraph |
The AUTHORIZED_MERCHANT role seems to be called AUTHORIZED_TRAVEL_AGENT in the |
Anonymous |
| Printed | Page 418 Top of page |
Change: |
Anonymous |
| Printed | Page 420 Top of page |
In the XML fragment, change |
Anonymous |
| Printed | Page 422 Middle of page |
Change: |
Anonymous |
| Printed | Page 422-423 Java code at bottom of p. 422; Java code at center of p. 423 |
Page 422: |
Anonymous |
| Printed | Page 423 |
import javax.security.Principal; |
Anonymous |
| Printed | Page 455 Table 19-1 |
In the second column, change |
Anonymous |
| Printed | Page 456 Middle of page |
Change: |
Anonymous |
| Printed | Page 457 & 475 Listing |
Seems that there is something wrong with the listing. Two EntityManagers with the |
Anonymous |
| Printed | Page 473 Code Sample (2nd ProcessorService constructor) |
The constructor for the javax.xml.ws.Service does not take a String, but a URL |
Anonymous |
| Printed | Page 494 Figure 21-2 |
The figure is completely wrong if it's to illustrate the concepts introduced on p. 492-493. |
Anonymous |
| Printed | Page 499 Figure 21-4 |
The TravelAgent and Customer diagrams should have "<<Entity>>" added to them. |
Anonymous |
| Printed | Page 502 Figure 21-5 |
Same corrections as in figure 21-4. |
Anonymous |
| Printed | Page 503 Figure 21-6 |
Same arrow correction as in figure 21-4. |
Anonymous |
| Printed | Page 503 Figure 21-7 |
The figure doesn't show the current customer as a method parameter. Instead it shows the |
Anonymous |
| Printed | Page 508 2nd code example, 1st line |
"LEFT FETCH JOIN" should be "LEFT JOIN FETCH" |
Anonymous |
| Printed | Page 528 1st sentence |
It's probably a recent change, but www.jboss.org has the downloads page that used to be available at www.jboss.com. |
Anonymous |
| Printed | Page 536 "section next to trail icon |
http://jakarta.apache.org/ant must be http://ant.apache.org |
Anonymous |
| Printed | Page 541 persistence.xml code |
<persistence-unit> |
Anonymous |
| Printed | Page 542 Middle of page |
In the JBoss example available for download, the PortableRemoteObject.narrow() has been |
Anonymous |
| Printed | Page 562 Bottom of page |
Change: |
Anonymous |
| Printed | Page 567 Bottom of page |
Add the following method: |
Anonymous |
| Printed | Page 572 Middle of page - code listing Customer.java |
public PK getPk()... |
Anonymous |
| Printed | Page 597 middle of page - Excercise 8.2 heading |
Heading should be "Single Table per [Concrete] Class" and not "Single Table per |
Anonymous |
| Printed | Page 620 last paragraph |
"FROM Cruise cr WHERE NOT EXISTS (SELECT res.amountPaid from cr.reservations res WHERE |
Anonymous |
| Printed | Page 666 Section "Start Up JBoss" |
Start Up JBoss must refer to Workbook 1 instead of Chapter 15 |
Anonymous |
| Printed | Page 684 This page and the following related to the client |
I am trying to run Exercise 19. "Exposing a Stateless Bean" with JBoss 4.2.1 GA and JDK |
Anonymous |
| Printed | Page 695 last parapgraph (not tip) |
"$JBOSS_HOME/service/default/deploy" should be "$JBOSS_HOME/server/default/deploy" |
Anonymous |
| Printed | Page 711 Index, under H |
The index includes an entry for "<home> element, 315, 316", which is presumably left |
Anonymous |
