| First Found in Printing |
Page | Description of Error | Fixed in Printing |
| 1 | 20 |
|
? |
| 1 | 23 | .The lines {concurrency = guarded} and {concurrency = concurrent} are reversed. The line {concurrency = concurrent} should appear first. |
? |
| 1 | 25 | Figure 1.28 refers to a method named isisEmpty. The method name should be isEmpty. | ? |
| 1 | 57 | There is a paragraph that begins
|
? |
| 1 | 92 | Paragraph Heading # 2 - Factory IE should be FactoryIF. | 3 |
| 1 | 96 | There is a line in a code listing that says * @param factory The Factory object for creatig Encryption objects. The line should say |
? |
| 1 | 97 | In line 8 of the code listing at the top of the page, // interface EncryptionFactoryIF should be plain not bold The first line of the second code listing on the page should
read |
3 |
| 1 | 100 | In Figure 5.5, the two classes at the bottom of the diagram should be labeled EnginolaMMU and EmberMMU rather than EnginolaCPU and EmberCPU | 3 |
| 1 | 102 | In figure 5.6, the class at the bottom right should be labeled Product2WidgetB rather than Product1WidgetB. | 3 |
| 1 | 105 | The code listing line class EmberFactory extends ArchitectureToolkit should say class EmberToolkit extends ArchitectureToolkit Further down the page, |
3 |
| 1 | 106 | The code listing line return emberFactory; should say return emberToolkit; |
3 |
| 1 | 107 |
|
3 |
| 1 | 108 | In figure 5.7, the type of the parameter for the MIMEParser class’s parse method should be MIMEMsg instead of MIMEMessage. | ? |
| 1 | 114 | The code listing line that says class MIMEParser { should say class MIMEParser extends MessageParser { The code listing line that says |
3 |
| 1 | 115 | The code listing line that says } // Consructor(String, String) should say } // Consructor(String, String) The code listing line that says |
3 |
| 1 | 125 | The code listing lines if (c instanceof Character) { mgr.addCharacter((Character)c); } // if should include an additional line like this if (c instanceof Character) { mgr.addCharacter((Character)c); objectCount++; } // if |
? |
| 1 | 140 | In the first paragraph under the “Code Example” heading, ConnectionImpl.ConnectionPool should be changed to ConnectionPool | ? |
| 1 | 148 | In Figure 6.2, methods named createDataQueryImpl are shown as returning DataQueryIimpl. It should be shown as returning DataQueryImplIF. | ? |
| 1 | 149 | In figure 6.3, the class named DataQuery should be named
Service. It should look like this:
|
? |
| 1 | 152 | There are some code listing lines that look like this: private DataQueryFactoryIF factory; public void setFactory(DataQueryFactoryIF myFactory) { They should look like this: public static void setFactory(DataQueryFactoryIF myFactory) { |
? |
| 1 | 153 | There is a line that looks like this:
public DataQueryFactoryIF createDataQueryImpl(String dbName);The line should look like this: public DataQueryImplIF createDataQueryImpl(String dbName);
public DataQueryFactoryIF createDataQueryImpl(String dbName) {
They should like this:
public DataQueryImplIF createDataQueryImpl(String dbName) {
|
? |
| 1 | 163 | Under the “Related Patterns” heading, in the Layered Architecture section,
the words
described in Volume 2should be changed to described in [BMRSS96] |
|
| 1 | 171 | The direction of the aggregation in figure 6.11 is reversed. It should
look like this:
|
3 |
| 1 | 177 | In Figure 7.1, the line showing that MyCopyFilter implements the CopyFilterIF
interface should be dashed. The figure should look like this:
|
? |
| 1 | 178 | In Figure 7.2, the line showing that DocumentCopyFilterAdapter implements
the CopyFilterIF interface should be dashed. The figure should look like this:
|
? |
| 1 | 179 | In Figure 7.3, the line showing Adapter implements TargetIF should be
dashed. The figure should look like this:
|
? |
| 1 | 181 | The parapgraph that begins
1. Pass a reference to the client objectshould have read 1. Pass a reference to the adaptee objecct. |
? |
| 1 | 193 | There are some paragraphs that say this:
|
? |
| 1 | 203 | There is a reference to a related pattern named Layered Architecture Analysis. That reference and the rest of that paragraph should be deleted. | ? |
| 1 | 211 | Don't Talk to Strangers A conceptual model that uses the Don't Talk to Strangers pattern (discussed in Volume 2) ...
|
? |
| 1 | 216 | |
? |
| 1 | 227 | should be deleted |
? |
| 1 | 244 | The pair of words “DoorController interface” occur twice and should be replaced with “DoorControllerIF interface” | 3 |
| 1 | 253 | In figure 7.32, the association labeled Cache-objects-for has
its navigation and label arrows reversed. It should look like this:
|
? |
| 1 | 254 | |
? |
| 1 | 260 | In figure 7.33, the association labeled Fetches-employee-profiles-for
has its navigation and label arrows reversed. It should look like this:
|
? |
| 1 | 261 | There is a line of code that says cache.remove(newLink); It should say cache.remove(newlink.profile.getId()); currentCacheSize--; |
? |
| 1 | 262 | There are some lines of code that say newLink.profile = emp; newLink.next = mru; newLink.previous = null; mru = newLink; They should say newLink.profile = emp; newLink.next = mru; mru.previous = newLink; newLink.previous = null; mru = newLink; There are some other
lines of code that say |
? |
| 1 | 271 | |
3 |
|
1 |
289 |
In the first sentence of the first paragraph, "notional" should be "notion". |
? |
| 1 | 338 | |
? |
| 1 | 339 |
|
? |
| 1 | 341 | and moved up to be part of the code listing. |
? |
| 1 | 350 | Toward the bottom of the page is a sentence that says
The Multicaster object adds the ObserverIF object to the collection of ObserverIF objects that it maintains. |
|
| 1 | 359 | There is a sentence that says
The start method also creates an instance of the DirtyState class and assigns its variables notDirty, fileDirty, paramDirty and bothDirty to the corresponding subclass instances that it creates.The sentence should say The start method also creates an instance of the DirtyState class.Figure 2.21 should look like this:
|
? |
| 1 | 362 | There are some code listing lines that look like this: private final BothDirty bothDirty = new BothDirty(); private final FileDirty fileDirty = new FileDirty(); private final ParamDirty paramDirty = new ParamDirty(); private final NotDirty notDirty = new NotDirty();
They should look like this |
? |
| 1 | 363 | Change the listing line that says private class BothDirty extends DirtyState { to private static class BothDirty extends DirtyState { |
? |
| 1 | 368 | There is a line of code that reads warning.routeWarning msg); It should say warning.routeWarning(msg); |
? |
| 1 | 382 | There are two lines of a code listing that look like this logonDialog = new LogonDialog(frame, Log on to "+programName); they should look like this logonDialog = new LogonDialog(frame, "Log on to "+programName); |
? |
| 1 | 409 |
|
? |
| 1 | 411 |
|
? |
| 1 | 429 | The first line of code on the page reads waitingThreads.remove(0); That line should be deleted.
The line that reads
There is a range of lines of code that read |
? |
| 1 | 443 |
If the Queue object is empty, a Consumer object that wants to get an object from it must wait until a Producer object puts an object in the Queue object. |
? |
| 1 | 438 | There is a range of lines of code that says: writeLockedThread = (Thread)waitingForWriteLock.get(0); writeLockedThread.notifyAll(); } // if } else if (Thread.currentThread() == writeLockedThread) { if ( outstandingReadLocks==0 && waitingForWriteLock.size()>0) { writeLockedThread = (Thread)waitingForWriteLock.get(0); writeLockedThread.notifyAll();
It should say: |
? |
| 1 | 446 | There are three lines that read TroubleTicket tkt = (TroubleTicket)data.get(0); data.remove(0); return tkt; These lines should appear all in bold |
|
| 1 | 457 | |
? |