Git Product home page Git Product logo

Comments (5)

dwing4g avatar dwing4g commented on May 21, 2024 1

I also encountered this problem before.
In order to fix it, I had to extend CompletableFuture and reimplement thenCompose() and complete().

from ea-async.

zekronium avatar zekronium commented on May 21, 2024 1

I also encountered this problem before.
In order to fix it, I had to extend CompletableFuture and reimplement thenCompose() and complete().

What changes did you have to make?

from ea-async.

silence-coding avatar silence-coding commented on May 21, 2024

How to solve the problem

from ea-async.

silence-coding avatar silence-coding commented on May 21, 2024

Original Code:

    static CompletableFuture<String> convert() {
        for (int i = 0; i < 2; i++) {
            CompletableFuture<Integer> e = CompletableFuture.completedFuture(1);
            Async.await(e);
        }
        return CompletableFuture.completedFuture("ok");
    }

from ea-async.

silence-coding avatar silence-coding commented on May 21, 2024

Generated after EA:

static CompletableFuture<String> convert() {
    for (int i = 0; i < 2; i++) {
      CompletableFuture<Integer> e = CompletableFuture.completedFuture(Integer.valueOf(1));
      if (!e.isDone()) { CompletableFuture<Integer> completableFuture = e; return completableFuture.exceptionally((Function)Function.identity()).thenCompose(paramObject -> { // Byte code:
              //   0: iload_3
              //   1: tableswitch default -> 90, 0 -> 24, 1 -> 86
              //   24: iconst_0
              //   25: istore_0
              //   26: iload_0
              //   27: iconst_2
              //   28: if_icmpge -> 80
              //   31: iconst_1
              //   32: invokestatic valueOf : (I)Ljava/lang/Integer;
              //   35: invokestatic completedFuture : (Ljava/lang/Object;)Ljava/util/concurrent/CompletableFuture;
              //   38: astore_1
              //   39: aload_1
              //   40: dup
              //   41: invokevirtual isDone : ()Z
              //   44: ifne -> 70
              //   47: astore_2
              //   48: aload_2
              //   49: invokestatic identity : ()Ljava/util/function/Function;
              //   52: invokevirtual exceptionally : (Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
              //   55: iload_0
              //   56: aload_1
              //   57: aload_2
              //   58: sipush #1
              //   61: <illegal opcode> apply : (ILjava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;I)Ljava/util/function/Function;
              //   66: invokevirtual thenCompose : (Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
              //   69: areturn
              //   70: invokevirtual join : ()Ljava/lang/Object;
              //   73: pop
              //   74: iinc #0, 1
              //   77: goto -> 26
              //   80: ldc 'ok'
              //   82: invokestatic completedFuture : (Ljava/lang/Object;)Ljava/util/concurrent/CompletableFuture;
              //   85: areturn
              //   86: aload_2
              //   87: goto -> 70
              //   90: new java/lang/IllegalArgumentException
              //   93: dup
              //   94: invokespecial <init> : ()V
              //   97: athrow
              // Line number table:
              //   Java source line number -> byte code offset
              //   #17	-> 24
              //   #18	-> 31
              //   #19	-> 39
              //   #17	-> 74
              //   #21	-> 80
              // Local variable table:
              //   start	length	slot	name	descriptor
              //   39	35	1	e	Ljava/util/concurrent/CompletableFuture;
              //   26	54	0	i	I
              // Local variable type table:
              //   start	length	slot	name	signature
              //   39	35	1	e	Ljava/util/concurrent/CompletableFuture<Ljava/lang/Integer;>; }); }  e.join();
    } 
    return CompletableFuture.completedFuture("ok");
  }

from ea-async.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.