Does Collections.unmodifiableList(list) require a lock?
<p>I have a <code>productList</code> maintained in a file named <code>Products.java</code></p>

<pre><code>private List&lt;String&gt; productList = Collections.synchronizedList(new ArrayList());
</code></pre>

<p>Now creating a synchronized list, will ensure that operations like add/remove will have a implicit lock and I don't need to lock these operations explicitily.</p>

<p>I have a function exposed which returns an <code>unmodifiableList</code> of this list.</p>

<pre><code>public List getProductList(){

 return Collections.unmodifiableList(productList);
}
</code></pre>

<p>In my application, various threads can call this function at the same time. So do I need to put a <code>synchronized</code> block when converting a List into an unmodifiable List or will this be already taken care of since I am using a sychronizedList ?</p>

<p>TIA.</p>