Uploaded image for project: 'Apache Storm'
  1. Apache Storm
  2. STORM-3077

Upgrade Disruptor version to 3.3.11

    XMLWordPrintableJSON

    Details

      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

            Activity

              People

              • Assignee:
                kabhwan Jungtaek Lim
                Reporter:
                kabhwan Jungtaek Lim
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 20m
                  20m