@@ -676,16 +676,21 @@ public void setupMessageListener(Object messageListener) {
676676 * @see #handleListenerException
677677 */
678678 protected void executeListener (Session session , Message message ) {
679- createObservation (message ).observe (() -> {
680- try {
681- doExecuteListener (session , message );
682- }
683- catch (Throwable ex ) {
684- handleListenerException (ex );
685- }
686- });
679+ try {
680+ doExecuteListener (session , message );
681+ }
682+ catch (Throwable ex ) {
683+ handleListenerException (ex );
684+ }
687685 }
688686
687+ /**
688+ * Create, but do not start an {@link Observation} for JMS message processing.
689+ * <p>This will return a "no-op" observation if Micrometer Jakarta instrumentation
690+ * is not available or if no Observation Registry has been configured.
691+ * @param message the message to be observed
692+ * @since 6.1
693+ */
689694 protected Observation createObservation (Message message ) {
690695 if (micrometerJakartaPresent && this .observationRegistry != null ) {
691696 return ObservationFactory .create (this .observationRegistry , message );
@@ -770,7 +775,6 @@ protected void doInvokeListener(SessionAwareMessageListener listener, Session se
770775
771776 Connection conToClose = null ;
772777 Session sessionToClose = null ;
773- Observation observation = createObservation (message );
774778 try {
775779 Session sessionToUse = session ;
776780 if (micrometerJakartaPresent && this .observationRegistry != null ) {
@@ -782,7 +786,6 @@ protected void doInvokeListener(SessionAwareMessageListener listener, Session se
782786 sessionToClose = createSession (conToClose );
783787 sessionToUse = sessionToClose ;
784788 }
785- observation .start ();
786789 // Actually invoke the message listener...
787790 listener .onMessage (message , sessionToUse );
788791 // Clean up specially exposed Session, if any.
@@ -794,11 +797,9 @@ protected void doInvokeListener(SessionAwareMessageListener listener, Session se
794797 }
795798 }
796799 catch (JMSException exc ) {
797- observation .error (exc );
798800 throw exc ;
799801 }
800802 finally {
801- observation .stop ();
802803 JmsUtils .closeSession (sessionToClose );
803804 JmsUtils .closeConnection (conToClose );
804805 }
0 commit comments