avoid blocking on partials creation

On Java 8, the method ConcurrentHashMap.putIfAbsent uses a lock on the Node instance that is the representation of the map key, even if the element is already existent. This PR uses the contains method that doesn't perform blocking operations.

cc/ @juliusv @matttproud @grandbora @herval
What about thread safety here?

I might be mistaken, but by just looking at this code snippet it looks like more than one thread could check the condition, receive `false` from the `contains()` method and execute the above code block. That might be the reason the blocking `putIfAbsent` method is used here?