I have a `productList` maintained in a file named `Products.java`

```
private List<String> productList = Collections.synchronizedList(new ArrayList());

```

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.

I have a function exposed which returns an `unmodifiableList` of this list.

```
public List getProductList(){

 return Collections.unmodifiableList(productList);
}

```

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

TIA.