small medium large xlarge

The latest version of the book is P1.0, released about 2 years ago. If you've bought a PDF of the book and would like to update it to this version (for free), visit your home page.

By default this page displays the errata for the latest version of the book. If you have a previous version, select it here:

If you've found a new error, please submit it.

  • Typo
  • Tech. error
  • Suggestion
  • Maybe next edition
  • Not a problem
  • Reported in: P1.0 (10-Oct-18)
PDF page: xvii

The word "asses" in the statement "you can use the book as a reference when you asses student code" should probably be "assess".--Dustin Marx

  • Reported in: P1.0 (12-Dec-18)
PDF page: 0
The Javadoc example comment in "Document Using Examples" looks great in the source code, but not so much when rendered as Javadocs... Suggestion: Eith...more...
  • Reported in: P1.0 (09-Aug-18)
Paper page: 10
Reads: "...because we check for message.equals("") first". Should read: "...because message.trim().equals() is evaluated first", or something like tha...more...
  • Reported in: P1.0 (18-Aug-18)
PDF page: 11
The following block of code on this page is intended to check the validity of the given file location if (location == null || Files.isDirectory(loc...more...
  • Reported in: P1.0 (18-Apr-18)
  • Fixed: 21-Apr-18, awaiting book release
PDF page: 33
Of course, I may have done something dumb, but this code gives me an error when I try to run it... It's the "Mission" example from the General sectio...more...
Simon Harrer says: It can't just run on its own. You need to set both, the start and the logbook field. We will delete the usage class for the next edition, it shouldn't be there... Use this to try out the code: class Usage { public static void main(String[] args) { Mission mission = new Mission(); mission.start = LocalDate.of(2011,3,4); mission.logbook = new Logbook(); mission.update("LInUS", "message"); } }
  • Reported in: P1.0 (07-Jan-19)
PDF page: 34
This is a comment about the enum DistanceUnit, as well as the enum SmallDistanceUnit later in the book. The getConversionRate() method has this if ...more...
  • Reported in: P1.0 (08-Jun-18)
PDF page: 39

In the context presented, the null check for supplies is superfluous as the variable is initialized during object creation.--Alexander Hetzl

  • Reported in: P1.0 (10-May-18)
PDF page: 47
Paper page: 23

Code is completely incorrect. Braces make no sense whatsoever.--Ken Ballou

Simon Harrer says: I (Simon) checked the solution (right-hand page) of the item "Favor Enums Over Integer Constants" and can't find an issue with the braces - it compiles and reads as expected. I probably have failed to understand your comment. Can you please elaborate a little bit more what you mean? Thanks for your help!
  • Reported in: P1.0 (21-Aug-19)
PDF page: 60
"We consistently named everything in CamelCase: no spaces, and all words start with a capital letter. As long as we’re consistent, we can choose any ...more...
  • Reported in: P1.0 (01-Mar-19)
Paper page: 61
Without further explanation you will not see the difference between camelCase and CamelCase. Using the terms lowerCamelCase and UpperCamelCase or Pasc...more...
  • Reported in: P1.0 (16-Jun-19)
PDF page: 63
Hi there, I believe the Astronaut's constructors' semantics is not consistent. new Astronaut() does not initializes while new Astronaut("Go...more...
  • Reported in: P1.0 (17-Jan-19)
PDF page: 83
This is regards to the TransmissionParser class and is a reiteration of Tuomas Granlund comment about the parse() method. This class occurs numerous ...more...
  • Reported in: P1.0 (20-May-18)
Paper page: 83
TransmissionParse.parse() throws NullPointerException if it gets called with null parameter. The reason is that rawMessage is not properly validated b...more...
  • Reported in: P1.0 (28-Jan-19)
PDF page: 86

Text mentions writeToCaptianLog() instead of writeToCaptainLog().--morgan

  • Reported in: P1.0 (04-Aug-18)
Paper page: 87
The books says: "Actually, try with resources is just syntactic sugar ..." This is not entirely true, since it helps a bit more, especially when close...more...
  • Reported in: P1.0 (28-Mar-18)
  • Fixed: 21-Apr-18, awaiting book release
PDF page: 121

"The problem is that toVenus and toMars point to the same object." -> toVenus is should be changed toVenusViaMars.--Mathias Geat

Simon Harrer says: Yes, you are correct. Thanks for the hint. We'll fix this in the next release.
  • Reported in: P1.0 (21-Jun-19)
Paper page: 131
In the second last line, you state that 'Note that the braces are only optional for a single parameter ...' I suggest to use 'parentheses' instead of...more...
  • Reported in: P1.0 (21-Jun-19)
Paper page: 134

'error-prone' instead of 'error prone'?--Maximilian Konzack

  • Reported in: P1.0 (30-Oct-18)
Paper page: 147

I believe I have found a typo on the bottom of page 147, and think that
.map(Connection::isFree) should be .filter(Connection::isFree)