Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.2.1
Description
I encountered the version conflict from Disruptor.
Phoenix 5 depends on Disruptor 3.3.6 which added some new methods, and calls the method which is not available from Disruptor 3.3.2 (Storm 1.x), resulting NoSuchMethodError.
Instead of taking a look at all changes from https://github.com/LMAX-Exchange/disruptor/compare/3.3.2...3.3.11#diff-dd0cdb682e550bb371997155c2f2995d , I just simply checked with https://github.com/trohovsky/japi-checker
$ java -jar japi-checker-cli/target/japi-checker-cli-0.2.0-SNAPSHOT.jar disruptor-3.3.2.jar disruptor-3.3.11.jar
WARNING: com/lmax/disruptor/TimeoutBlockingWaitStrategy.java: The non-abstract and non-static method toString() has been added ERROR: com/lmax/disruptor/SleepingWaitStrategy.java(66): The method waitFor(long, com.lmax.disruptor.Sequence, com.lmax.disruptor.Sequence, com.lmax.disruptor.SequenceBarrier) is not throwing java.lang.InterruptedException anymore ERROR: com/lmax/disruptor/util/PaddedLong.java: The class com.lmax.disruptor.util.PaddedLong has been removed WARNING: com/lmax/disruptor/dsl/Disruptor.java: The non-abstract and non-static method setDefaultExceptionHandler(com.lmax.disruptor.ExceptionHandler) has been added WARNING: com/lmax/disruptor/dsl/Disruptor.java: The non-abstract and non-static method <A extends java.lang.Object, B extends java.lang.Object> publishEvent(com.lmax.disruptor.EventTranslatorTwoArg, java.lang.Object, java.lang.Object) has been added WARNING: com/lmax/disruptor/dsl/Disruptor.java: The non-abstract and non-static method <A extends java.lang.Object, B extends java.lang.Object, C extends java.lang.Object> publishEvent(com.lmax.disruptor.EventTranslatorThreeArg, java.lang.Object, java.lang.Object, java.lang.Object) has been added WARNING: com/lmax/disruptor/dsl/Disruptor.java: The non-abstract and non-static method getSequenceValueFor(com.lmax.disruptor.EventHandler) has been added WARNING: com/lmax/disruptor/dsl/Disruptor.java: The non-abstract and non-static method toString() has been added WARNING: com/lmax/disruptor/AbstractSequencer.java: The non-abstract and non-static method toString() has been added ERROR: com/lmax/disruptor/util/MutableLong.java: The class com.lmax.disruptor.util.MutableLong has been removed
Removed files were for testing, and they're moved to test package.
The utility missed new constructor of Disruptor which raises error, but looks like there are no backward incompatibility, so it looks safe to upgrade in point of API compatibility view.
Attachments
Issue Links
- links to