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

              kabhwan Jungtaek Lim
              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