Uploaded image for project: 'MINA'
  1. MINA
  2. DIRMINA-1155

Apparently impossible stacktrace on IllegalMonitorStateException

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Not A Problem
    • 2.1.4
    • None
    • Core
    • None
    • openjdk 11.0.10_9, quickfixj 2.2.0

    Description

      Hello folks.

      We're intermittently encountering the following exception trace with our application that uses quickfixj (which uses apache mina). We're using mina 2.1.4 currently.

      We suspect the cause may be a problem within quickfixj, but we wanted to get in touch to share the stack trace, because we found it confusing.

      Here's the stack trace:

      java.lang.IllegalMonitorStateException java.lang.IllegalMonitorStateException
      at java.base/java.lang.Object.notifyAll(Native Method)
      at org.apache.mina.filter.ssl.SslHandler.checkStatus(SslHandler.java:544)
      at org.apache.mina.filter.ssl.SslHandler.messageReceived(SslHandler.java:375)
      at org.apache.mina.filter.ssl.SslFilter.messageReceived(SslFilter.java:517)
      at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650)
      at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49)
      at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128)
      at org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:122)
      at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650)
      at org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:643)
      at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:539)
      at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$1200(AbstractPollingIoProcessor.java:68)
      at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.process(AbstractPollingIoProcessor.java:1224)
      at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.process(AbstractPollingIoProcessor.java:1213)
      at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:683)
      at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
      at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
      at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
      at java.base/java.lang.Thread.run(Thread.java:834)

      Having looked at the source, we're very confused why this isn't getting caught by the catch block in AbstractPollingIoProcessor::run on line 718 - we reckon IllegalMonitorStateException is a RuntimeException, which is an Exception, and we don't see the ExceptionMonitor rethrowing it...so how did it propagate upwards?!

      Do you have any ideas as to what might have happened here? We're starting to wonder if we might have happened on a jdk bug (we're running openjdk 11.0.10_9) but thought it was worth checking in here to check our assumptions first.

      Thanks in advance for your help.

      Attachments

        Activity

          People

            Unassigned Unassigned
            jamesbyatt James Byatt
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: