Issue 1:
Magnus Heino opened SPR-7478 and commented

Hi. I just upgraded from 3.0.2 to 3.0.4 and my log is flooded with WARN messages. The app still seems to work, but jms communication seems to take some extra time...

Looking at the code in the debugger, and the error message, a session seems to be null where expected not to. Is there a workaround, or something that I have missed in my config that is exposed now in 3.0.4, or is this a bug?

<bean id="transactionalMessageListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer" abstract="true">

<property name="cacheLevelName" value="CACHE_NONE"/>

<property name="concurrentConsumers" value="1"/>

<property name="connectionFactory" ref="connectionFactory"/>

<property name="sessionTransacted" value="true"/>

<property name="transactionManager" ref="transactionManager"/>

<property name="autoStartup" value="false" />

</bean>

<bean id="addressDefectTrackerContainer" parent="transactionalMessageListenerContainer">

<property name="concurrentConsumers" value="#{settings.addressDefectTracker.messageListener.concurrentConsumers}" />

<property name="maxConcurrentConsumers" value="#{settings.addressDefectTracker.messageListener.maxConcurrentConsumers}" />

<property name="idleTaskExecutionLimit" value="#{settings.addressDefectTracker.messageListener.idleTaskExecutionLimit}" />

<property name="maxMessagesPerTask" value="#{settings.addressDefectTracker.messageListener.maxMessagesPerTask}" />

<property name="destination" ref="jmsAddressDefectTrackerChannel" />

</bean>

<si-jms:message-driven-channel-adapter

channel="defectTrackerChannel" container="addressDefectTrackerContainer" acknowledge="transacted" connection-factory="connectionFactory"/>

2010-08-20 12:00:44,312 [addressDefectTrackerContainer-2] DEBUG Initiating transaction rollback on listener exception at org.springframework.jms.listener.DefaultMessageListenerContainer.rollbackOnException(AbstractPollingMessageListenerContainer.java:388)

java.lang.NullPointerException

at org.springframework.jms.listener.AbstractMessageListenerContainer.commitIfNecessary(AbstractMessageListenerContainer.java:571)

at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:354)

at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:241)

at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1056)

at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1048)

at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:947)

at java.lang.Thread.run(Thread.java:619)

2010-08-20 12:00:49,349 [addressDefectTrackerContainer-2] WARN Setup of JMS message listener invoker failed for destination 'Queue[LM.UTV_maghei.ORIGO.GEODATA.ADDRESS.DEFECTTRACKER]' - trying to recover. Cause: null at org.springframework.jms.listener.DefaultMessageListenerContainer.handleListenerSetupFailure(DefaultMessageListenerContainer.java:818)

java.lang.NullPointerException

at org.springframework.jms.listener.AbstractMessageListenerContainer.commitIfNecessary(AbstractMessageListenerContainer.java:571)

at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:354)

at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:241)

at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1056)

at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1048)

at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:947)

at java.lang.Thread.run(Thread.java:619)

2010-08-20 12:00:49,350 [addressDefectTrackerContainer-2] INFO Successfully refreshed JMS Connection at org.springframework.jms.listener.DefaultMessageListenerContainer.refreshConnectionUntilSuccessful(DefaultMessageListenerContainer.java:862)

Affects: 3.0.4

Issue Links:

#12306 NPE in DefaultMessageListenerContainer while committing and no message was received ("is duplicated by")

#12259 NPE in AbstractPollingMessageListenerContainer when committing transaction after message receive timeout ("is duplicated by")

#12024 DefaultMessageListenerContainer transacted session race condition if no messages for a while when using shared/cached sessions

Referenced from: commits 3e5aca8

4 votes, 9 watchers

Issue 2:
Chris Beams opened SPR-8203 and commented

Early in Spring 3.1 M1 a reserved 'default' profile name was introduced. We backed it out under the rationale that it's less magical to express defaults explicitly through spring.profiles.default or ConfigurableEnvironment#setDefaultProfiles.

This can be (re-)introduced; just wanted to keep it simple to start and see if it's truly wanted/needed.

Affects: 3.1 M1

Issue Links:

#13919 Add ability to specify whether a bean profile is active by default ("is duplicated by")

#12434 Support 'default' profile ("supersedes")

Referenced from: commits c4a1350

4 votes, 6 watchers