@Tim / @Joe - thanks for the (quite speedy...) reply.  And quickly, fantastic book, thank you; I own it &amp; have gained significantly in both my java and design skills.<br><br><div>Good to hear I wasn&#39;t crazy.  @Joe, I would tend to agree with the &quot;why that when a safer one will do&quot; sentiment - but many changes design improvements would be required to support &#39;real-world&#39; functionality, so IMHO here I feel the example is muddled by the extraneous info.  And unless you fully understand the ramifications of your code, you can easily write complex sequential code accidentally...     Further, the sentence that follows the listing (&quot;<tt>PublishingVehicleTracker</tt> derives its thread safety from 
delegation to an underlying <tt>ConcurrentHashMap</tt>&quot;) then seems to be incorrect - doesn&#39;t the PVT &quot;delegate&quot; to the SafePoints, not the CHM?</div><div><br></div><div>So, as in my original post, it makes sense to me that a normal HashMap would technically be OK here.</div>

<div><br></div><div>However, I am still uncertain with regards to visibility of the PVT&#39;s internals.  Somewhere in the heap the jvm has put a bunch of bits for the internals of the &#39;locations&#39; map - String (key) and handle (value) pairs, and others.  </div>

<div><br></div><div>Is visibility not an issue here because the PVT meets all the criteria for an immutable object?  (not just an &quot;effectively immutable one)</div><div>-state cannot be modified (again, state is just key/value pairs here, which aren&#39;t ever modified)</div>

<div>-all fields final</div><div>-properly constructed</div><div><br></div><div>Or if it is only &quot;effectively immutable&quot; (why?) then is visibility guaranteed if client code &quot;safely publishes&quot; it (ala JCiP page 52)?</div>

<div><br></div><div>Thank you!</div><div>-mboard182</div><div><br></div><div><br></div><div><div class="gmail_quote">On Wed, Apr 7, 2010 at 11:28 AM, Joe Bowbeer <span dir="ltr">&lt;<a href="mailto:joe.bowbeer@gmail.com">joe.bowbeer@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><p>PS - the java.util folks have a different phrase...</p>
<p></p><div class="im">On Apr 7, 2010 11:26 AM, &quot;Joe Bowbeer&quot; &lt;<a href="mailto:joe.bowbeer@gmail.com" target="_blank">joe.bowbeer@gmail.com</a>&gt; wrote:<br><br><p>To rephrase your question: Can the locations map in PVT be implemented as a HashMap instead of a CHM, since it is read-only? I think the answer is yes. But as we in the Java.utility.cocurrent business say: Why use a HashMap when a ConcurrentHashMap will suffice?</p>




</div><p></p><blockquote type="cite"><p><font color="#500050"></font></p><font color="#500050"><div class="im"><br>&gt;<br>&gt; On Apr 7, 2010 10:26 AM, &quot;Mike&quot; &lt;<a href="mailto:mboard182@gmail.com" target="_blank">mboard182@gmail.com</a>&gt; wrote:<br>

&gt;<br>&gt; Hi, <br>&gt;<br></div>&gt; In working through Ja...</font><p></p><div class="im">
_______________________________________________<br>
Concurrency-interest mailing list<br>
<a href="mailto:Concurrency-interest@cs.oswego.edu" target="_blank">Concurrency-interest@cs.oswego.edu</a><br>
<a href="http://cs.oswego.edu/mailman/listinfo/concurrency-interest" target="_blank">http://cs.oswego.edu/mailman/listinfo/concurrency-interest</a><br>
<br></div></blockquote><p></p>
<p></p>
</blockquote></div><br></div>