Github user kinow commented on the issue: https://github.com/apache/commons-lang/pull/334 Thanks @PascalSchumacher for confirming it's actually backward compatible (#TodayILearned - and hopefully will remember it). @ingvarc , I agree on @aaabramov regarding the `+1`. When I read it, I first thought that was a `+= 1`, and then re-read it and understood his concern. Might be worth simplifying it. If you'd like to keep the commits simpler (which is great initiative, thanks!) you could try rebasing commits and push+force to your branch. Good points @stokito. Not sure about branch prediction after the spectre bug. I think one of the mitigations involved disabling branch prediction. Though I think micro-benchmarking isn't priority in lang. >Here developer sees a "happy path" first and only then he or she sees exception situation handling. This is more natural to understand. As I remember this style was mentioned in Complete Code book. Code Complete is one of my favourite books. For me, that code could be: ```java private static void addProcessor(final String key, final Processor processor) { if (ARCH_TO_PROCESSOR.containsKey(key)) { throw new IllegalStateException("Key " + key + " already exists in processor map"); } ARCH_TO_PROCESSOR.put(key, processor); } ``` I think maybe developers would read the first `if` as a validation block. Then the normal behaviour, without the else (I think omitting the else in cases like this is also in Code Complete... or Pragmatic Programmer? Can't recall). I think the other changes like removing class name, inverting some `if` conditions, and removing the exceptions not thrown look good, and the code readability keeps OK. Great contribution @ingvarc , thanks!
---