> @@ -94,6 +97,12 @@ public boolean apply(FloatingIP arg0) {
> // try to prevent multiple parallel launches from choosing the same
> ip.
> Collections.shuffle(unassignedIps);
> ip = Iterables.getLast(unassignedIps);
> +
> + //if we are still unable to allocate IP, even after iterating
> through all
> + //available, then re-throw IRE as there is nothing left we can do
> + if(ip == null){
> + throw new InsufficientResourcesException("Failed to allocate a
> FloatingIP for node(" + node.getId() + ")",e);
> + }
> }
> logger.debug(">> adding floatingIp(%s) to node(%s)", ip.getIp(),
> node.getId());
If we don't throw the NPE here it gets caught downstream and could be
mis-construed as something else whereas here we can force the NPE at the point
it pops. If we throw an IRE we are back in the same boat we started in ...
---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/425/files#r14415520