Isn't this a little bit like a API change? Practically we will break applications which worked before and which catched org.eclipse.jgit.errors.CheckoutConflictException. Now we don't throw this exception anymore but a org.eclipse.jgit.api.errors.CheckoutConflictException. What you suggest is cleaner and it does what the method signature tells - but still we may break running applications.