Java Enterprise in a Nutshell, 2nd Edition by William Crawford, Jim Farley, David Flanagan This errata page lists errors outstanding in the most recent printing. If you have technical questions or error reports, you can send them to booktech@oreilly.com. Please specify the printing date of your copy. This page was updated May 20, 2005. Here's a key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem ?page-number?: reader question or request for clarification Confirmed errors: (153) 1st paragraph, line 2; "Classes that implement the ServletContextListener interface.... when the context is unitized or destroyed." should be: "Classes that implement the ServletContextListener interface.... when the context is initialized or destroyed." (156) 1st paragraph after Example 5.5, 3rd line; line reads: getReader() method of HttpServletRequest, which returns a PrintReader that... line should say: getReader() method of HttpServletRequest, which returns a BufferedReader that... {346} receiveMessage() method; This method does not work correctly as written because the connection is never started. It should have mTopicConn.start(); inserted as the first line inside the try-block. (This is consistent with the registerListener method, which also starts the connection--see line 3 on page 346.) The downloadable code, 9780596001520examples.zip, suffers the same error. AUTHOR: Not strictly a bug - the example just assumes that the connection is started elsewhere. But since there's no harm (except time) in re-starting a started queue, I added the calls the reader suggests to the receiveMessage() methods in PTPMessagingClient and in PubSubMessagingClient. (375) 4th paragraph; "we have endeavored..." should be: "We have endeavored..." (382) 3rd paragraph; "This returns the Charles Dickens bookskm..." should read: "This returns the Charles Dickens books..."