Hello,

I have the following Spring MVC 3.2 code (it uses the DeferredResult
class<http://static.springsource.org/spring/docs/3.2.2.RELEASE/javadoc-api/org/springframework/web/context/request/async/DeferredResult.html>
):

@RequestMapping(value = "getMessages", method = RequestMethod.GET,
produces = "application/json")
    @ResponseBody
    public DeferredResult<List<Message>> getMessages(@RequestParam
final Long senderId) {
        final Long recipientId = memberService.retrieveCurrentMember().getId();
        final String messageRequestKey = new
StringBuilder().append(senderId).append(":").append(recipientId).toString();
        final DeferredResult<List<Message>> deferredResult = new
DeferredResult<List<Message>>(null, Collections.emptyList());
        messageRequests.put(messageRequestKey, deferredResult);

        deferredResult.onCompletion(new Runnable() {
            @Override
            public void run() {
                messageRequests.remove(messageRequestKey);
            }
        });

        List<Message> unReadMessages =
messageService.findUnreadMessages(senderId, recipientId);
        if (!unReadMessages.isEmpty()) {
            deferredResult.setResult(unReadMessages);
        }
        return deferredResult;
    }

This method is polled continuously by an ajax call and it
systematically *causes
Tomcat to crash upon the 9th method invocation*. Note that Tomcat crashes
without any error message.

*I would be very grateful if someone could help me determine the reason why
this code exhibits this behavior, perhaps by giving me tips on how to debug
the app/tomcat.*

Regards,

Julien.

Reply via email to