A custom Java collection which doesn't support nulls
Throwing NullPointerException from methods like add, set are OK, cause the element to be added can't be null. But throwing NPE from addAll method is not cool. From Javadoc 


  Throws: NullPointerException - if the specified collection is null


that means if there exists a null value in the Collection throwing NPE doesn't make sense. You can throw IllegalArgumentException or a custom exception like FoundNullValueInCollectionException(I think this is better). 

In your defense you can point towards the Map.containsKey Javadoc, where it throws NPE if the specified key is null and this map does not permit null keys (optional).






  I want to prevent code from using the clone() method


So you can throw a UnsupportedOperationException or CloneNotSupportedException(as JohnMark13 suggested).