46.135.55.15: /* Chapter 11 */ - 2014-02-14 16:18:25

Chapter 11

←Older revision Revision as of 16:18, 14 February 2014
Line 30: Line 30:
{{:Errata 10}}
{{:Errata 10}}
-
== Chapter 11 ==
+
== [[Errata 11|Chapter 11]] ==
-
Page 195 and 196: It would be nice for the samples to have a bit wider context. They may be too hard to understand.
+
-
Page 203 and 207: Class names ''R'' and ''H'' are bit misleading as a single letter identifiers are usually used as type parameter names.
+
{{:Errata 11}}
-
 
+
-
Page 209: The text is referring to the side note. You should read the side note first.
+
-
 
+
-
Page 214: Example of ''controlFlow'' is bit harder to understand as it is using regular expression for two lines of log without further explanation. In fact it is just manifestation of such possibility (not required for the sample in order to work).
+
== Chapter 12 ==
== Chapter 12 ==

JaroslavTulach: /* Epilogue */ - 2014-02-05 08:48:01

Epilogue

←Older revision Revision as of 08:48, 5 February 2014
Line 72: Line 72:
Page 361: Referring to "sealed" packages without any explanation of this term (see [[wikipedia:JAR_(file_format)]]).
Page 361: Referring to "sealed" packages without any explanation of this term (see [[wikipedia:JAR_(file_format)]]).
-
== Epilogue ==
+
== [[Errata Epilogue|Epilogue]] ==
 +
 
 +
{{:Errata Epilogue}}

JaroslavTulach: /* Chapter 19 */ - 2014-02-05 08:47:17

Chapter 19

←Older revision Revision as of 08:47, 5 February 2014
Line 69: Line 69:
== Chapter 19 ==
== Chapter 19 ==
 +
Page 361: Referring to "sealed" packages without any explanation of this term (see [[wikipedia:JAR_(file_format)]]).
Page 361: Referring to "sealed" packages without any explanation of this term (see [[wikipedia:JAR_(file_format)]]).
 +
 +
== Epilogue ==

JaroslavTulach: /* Chapter 8 */ - 2014-01-27 08:49:00

Chapter 8

←Older revision Revision as of 08:49, 27 January 2014
Line 21: Line 21:
{{:Errata 8}}
{{:Errata 8}}
 +
 +
== [[Chapter 9]] ==
 +
 +
{{:Errata 9}}
== [[Chapter 10]] ==
== [[Chapter 10]] ==

JaroslavTulach: /* Chapter 1 */ - 2014-01-21 16:52:50

Chapter 1

←Older revision Revision as of 16:52, 21 January 2014
Line 4: Line 4:
Read [[The_Art_of_Building_Modern_Software#Current_or_Certain.3F|the reply]]...
Read [[The_Art_of_Building_Modern_Software#Current_or_Certain.3F|the reply]]...
 +
 +
== Chapter 4 ==
 +
 +
=== [[Errata 4|Page 43]] ===
 +
 +
{{:Errata 4}}
== [[Chapter 6]] ==
== [[Chapter 6]] ==

JaroslavTulach: /* Page 337 */ - 2012-07-09 14:31:15

Page 337

←Older revision Revision as of 14:31, 9 July 2012
Line 47: Line 47:
Typo in the sample. Instead of ''throw new IllegalStateException("Old visitor used on new exceptions")'' it should be ''throw new IllegalStateException("Old visitor used on new expressions")''
Typo in the sample. Instead of ''throw new IllegalStateException("Old visitor used on new exceptions")'' it should be ''throw new IllegalStateException("Old visitor used on new expressions")''
-
 
==== Page 350 ====
==== Page 350 ====

JaroslavTulach: /* Chapter 18 */ - 2012-07-09 14:31:02

Chapter 18

←Older revision Revision as of 14:31, 9 July 2012
Line 44: Line 44:
== Chapter 18 ==
== Chapter 18 ==
-
=== Page 337 ===
+
==== Page 337 ====
Typo in the sample. Instead of ''throw new IllegalStateException("Old visitor used on new exceptions")'' it should be ''throw new IllegalStateException("Old visitor used on new expressions")''
Typo in the sample. Instead of ''throw new IllegalStateException("Old visitor used on new exceptions")'' it should be ''throw new IllegalStateException("Old visitor used on new expressions")''
-
=== Page 350 ===
+
==== Page 350 ====
If you are wondering why, in the create30 method, the implementation of Visitor.dispatchNumber(Number n) defines RealWrapper.getValue() which calls n.getValue() and not n.doubleValue(), then it is because the class ''Number'' is not {{JDK|java/lang|Number}} but rather own implementation defined at
If you are wondering why, in the create30 method, the implementation of Visitor.dispatchNumber(Number n) defines RealWrapper.getValue() which calls n.getValue() and not n.doubleValue(), then it is because the class ''Number'' is not {{JDK|java/lang|Number}} but rather own implementation defined at
Line 55: Line 55:
Sorry for not choosing different name.
Sorry for not choosing different name.
-
=== Page 351 ===
+
==== Page 351 ====
In paragraph Syntactic Sugar ''this'' reference is leaking from constructor so it is unsafe reference publication. In terms of [[cluelessness]] this risk should be mentioned together with link to proper explanation.
In paragraph Syntactic Sugar ''this'' reference is leaking from constructor so it is unsafe reference publication. In terms of [[cluelessness]] this risk should be mentioned together with link to proper explanation.

JaroslavTulach: /* Chapter 18 */ - 2012-07-09 14:30:43

Chapter 18

←Older revision Revision as of 14:30, 9 July 2012
Line 43: Line 43:
== Chapter 18 ==
== Chapter 18 ==
-
Page 337: Typo in the sample. Instead of ''throw new IllegalStateException("Old visitor used on new exceptions")'' it should be ''throw new IllegalStateException("Old visitor used on new expressions")''
 
 +
=== Page 337 ===
-
Page 350: If you are wondering why, in the create30 method, the implementation of Visitor.dispatchNumber(Number n) defines RealWrapper.getValue() which calls n.getValue() and not n.doubleValue(), then it is because the class ''Number'' is not {{JDK|java/lang|Number}} but rather own implementation defined at
+
Typo in the sample. Instead of ''throw new IllegalStateException("Old visitor used on new exceptions")'' it should be ''throw new IllegalStateException("Old visitor used on new expressions")''
 +
 
 +
 
 +
=== Page 350 ===
 +
 
 +
If you are wondering why, in the create30 method, the implementation of Visitor.dispatchNumber(Number n) defines RealWrapper.getValue() which calls n.getValue() and not n.doubleValue(), then it is because the class ''Number'' is not {{JDK|java/lang|Number}} but rather own implementation defined at
<source lang="java" snippet="visitor.clientprovider.v1"/>
<source lang="java" snippet="visitor.clientprovider.v1"/>
Sorry for not choosing different name.
Sorry for not choosing different name.
 +
=== Page 351 ===
-
Page 351: In paragraph Syntactic Sugar ''this'' reference is leaking from constructor so it is unsafe reference publication. In terms of [[cluelessness]] this risk should be mentioned together with link to proper explanation.
+
In paragraph Syntactic Sugar ''this'' reference is leaking from constructor so it is unsafe reference publication. In terms of [[cluelessness]] this risk should be mentioned together with link to proper explanation.
== Chapter 19 ==
== Chapter 19 ==
Page 361: Referring to "sealed" packages without any explanation of this term (see [[wikipedia:JAR_(file_format)]]).
Page 361: Referring to "sealed" packages without any explanation of this term (see [[wikipedia:JAR_(file_format)]]).

JaroslavTulach: Moving the comment to discussion section - 2012-07-09 14:13:02

Moving the comment to discussion section

←Older revision Revision as of 14:13, 9 July 2012
Line 45: Line 45:
Page 337: Typo in the sample. Instead of ''throw new IllegalStateException("Old visitor used on new exceptions")'' it should be ''throw new IllegalStateException("Old visitor used on new expressions")''
Page 337: Typo in the sample. Instead of ''throw new IllegalStateException("Old visitor used on new exceptions")'' it should be ''throw new IllegalStateException("Old visitor used on new expressions")''
-
Page 350: In the create30 method, the implementation of Visitor.dispatchNumber(Number n) defines RealWrapper.getValue() which calls n.getValue but that method does not exist. It should be n.doubleValue():
+
 
-
<code>
+
Page 350: If you are wondering why, in the create30 method, the implementation of Visitor.dispatchNumber(Number n) defines RealWrapper.getValue() which calls n.getValue() and not n.doubleValue(), then it is because the class ''Number'' is not {{JDK|java/lang|Number}} but rather own implementation defined at
-
public double getValue() {
+
<source lang="java" snippet="visitor.clientprovider.v1"/>
-
return n.doubleValue();
+
Sorry for not choosing different name.
-
}
+
 
-
</code>
+
Page 351: In paragraph Syntactic Sugar ''this'' reference is leaking from constructor so it is unsafe reference publication. In terms of [[cluelessness]] this risk should be mentioned together with link to proper explanation.
Page 351: In paragraph Syntactic Sugar ''this'' reference is leaking from constructor so it is unsafe reference publication. In terms of [[cluelessness]] this risk should be mentioned together with link to proper explanation.

195.35.221.66: /* Chapter 18 */ - 2012-07-09 11:27:20

Chapter 18

←Older revision Revision as of 11:27, 9 July 2012
Line 44: Line 44:
== Chapter 18 ==
== Chapter 18 ==
Page 337: Typo in the sample. Instead of ''throw new IllegalStateException("Old visitor used on new exceptions")'' it should be ''throw new IllegalStateException("Old visitor used on new expressions")''
Page 337: Typo in the sample. Instead of ''throw new IllegalStateException("Old visitor used on new exceptions")'' it should be ''throw new IllegalStateException("Old visitor used on new expressions")''
 +
 +
Page 350: In the create30 method, the implementation of Visitor.dispatchNumber(Number n) defines RealWrapper.getValue() which calls n.getValue but that method does not exist. It should be n.doubleValue():
 +
<code>
 +
public double getValue() {
 +
return n.doubleValue();
 +
}
 +
</code>
Page 351: In paragraph Syntactic Sugar ''this'' reference is leaking from constructor so it is unsafe reference publication. In terms of [[cluelessness]] this risk should be mentioned together with link to proper explanation.
Page 351: In paragraph Syntactic Sugar ''this'' reference is leaking from constructor so it is unsafe reference publication. In terms of [[cluelessness]] this risk should be mentioned together with link to proper explanation.