Repository: quarkusio/quarkus
Issue: Ctrl+C is broken if pressed within Transactional (Quarkus 2.0.1.Final)

## Describe the bug
It seems that since Quarkus 2.0.1.Final, if Ctrl+C is pressed while in a `Transactional` block, quarkus:dev is not stopped. It is necessary to kill -9 the process.

### Expected behavior
quarkus:dev should stop when Ctrl+C is pressed, application should terminate.

### Actual behavior
When Ctrl+C is pressed while the application is in a `Transactional` block ^C is written to the terminal, but the application does not respond. Later (when the task completes or the transaction timeout passes) some exceptions are printed.


## To Reproduce
Use attached reproducer:
- Start it, with: `mvn quarkus:dev -Dquarkus.test.flat-class-path=true`
- Trigger the transaction: curl http://localhost:8080/fruits 
- Press Ctrl+C to stop quarkus:dev
- 

## Environment (please complete the following information):

### Output of `uname -a` or `ver`
`Linux a 5.12.9-1-MANJARO #1 SMP PREEMPT Thu Jun 3 14:56:42 UTC 2021 x86_64 GNU/Linux`

### Output of `java -version`
```
openjdk version "1.8.0_292"
OpenJDK Runtime Environment (build 1.8.0_292-b10)
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
```

### GraalVM version (if different from Java)

### Quarkus version or git rev

### Build tool (ie. output of `mvnw --version` or `gradlew --version`)
```
Apache Maven 3.8.1 (NON-CANONICAL_2021-04-26T21:52:54Z_root)
Maven home: /opt/maven
Java version: 11, vendor: Oracle Corporation, runtime: /opt/openjdk-11
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.12.9-1-manjaro", arch: "amd64", family: "unix"
```

## Additional context
Work if Quarkus version < 2.0


Changed files:
extensions/narayana-jta/runtime/src/main/java/io/quarkus/narayana/jta/runtime/CDIDelegatingTransactionManager.java

diff --git a/extensions/narayana-jta/runtime/src/main/java/io/quarkus/narayana/jta/runtime/CDIDelegatingTransactionManager.java b/extensions/narayana-jta/runtime/src/main/java/io/quarkus/narayana/jta/runtime/CDIDelegatingTransactionManager.java
index cf8c6fe7860..db0f965516b 100644
--- a/extensions/narayana-jta/runtime/src/main/java/io/quarkus/narayana/jta/runtime/CDIDelegatingTransactionManager.java
+++ b/extensions/narayana-jta/runtime/src/main/java/io/quarkus/narayana/jta/runtime/CDIDelegatingTransactionManager.java
@@ -18,6 +18,8 @@
 import javax.transaction.TransactionManager;
 import javax.transaction.TransactionScoped;
 
+import org.jboss.logging.Logger;
+
 /**
  * A delegating transaction manager which receives an instance of Narayana transaction manager
  * and delegates all calls to it.
@@ -25,6 +27,9 @@
  */
 @Singleton
 public class CDIDelegatingTransactionManager implements TransactionManager, Serializable {
+
+    private static final Logger log = Logger.getLogger(CDIDelegatingTransactionManager.class);
+
     private static final long serialVersionUID = 1598L;
 
     private final transient com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple delegate;
@@ -113,13 +118,18 @@ public void commit() throws RollbackException, HeuristicMixedException, Heuristi
      */
     @Override
     public void rollback() throws IllegalStateException, SecurityException, SystemException {
-        if (this.transactionScopeBeforeDestroyed != null) {
-            this.transactionScopeBeforeDestroyed.fire(this.getTransaction());
+        try {
+            if (this.transactionScopeBeforeDestroyed != null) {
+                this.transactionScopeBeforeDestroyed.fire(this.getTransaction());
+            }
+        } catch (Throwable t) {
+            log.error("Failed to fire @BeforeDestroyed(TransactionScoped.class)", t);
         }
 
         try {
             delegate.rollback();
         } finally {
+            //we don't need a catch block here, if this one fails we just let the exception propagate
             if (this.transactionScopeDestroyed != null) {
                 this.transactionScopeDestroyed.fire(this.toString());
             }