Uploaded image for project: 'JBoss Transaction Manager'
  1. JBoss Transaction Manager
  2. JBTM-3156

LRA does not respect all participant immediate state indications

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Do
    • Icon: Major Major
    • None
    • 5.9.5.Final
    • LRA
    • None
    • The coordinator is a REST resource and it expects compensators to return 202 Accepted if the resource update is still in progress.

      The specification states at https://github.com/eclipse/microprofile-lra/blob/master/spec/src/main/asciidoc/microprofile-lra-spec.adoc#326-eventual-compensations:

      If the resource cannot perform a compensation activity immediately the @Compensate method SHOULD do one or more of the following:
      
      return ParticipantStatus.Compensating
      
      return a 202 Accepted HTTP status code
      
      mark the method as a JAX-RS asynchronous method (using the javax.ws.rs.container.Suspended annotation).
      

      However, Narayana respects only the ACCEPTED status code: https://github.com/jbosstm/narayana/blob/master/rts/lra/lra-coordinator/src/main/java/io/narayana/lra/coordinator/domain/model/LRARecord.java#L323

      The implementation should also cover two other variants.

              mstefank Martin Stefanko
              mstefank Martin Stefanko
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: