Uploaded image for project: 'IronJacamar'
  1. IronJacamar
  2. JBJCA-1362

NPE from SemaphoreConcurrentLinkedDequeManagedConnectionPool.returnForFrequencyCheck

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • None
    • None
    • Core
    • None

      NPE happens in the ConnectionValidator thread, about once a week on EAP 7.0.7 (IronJacamar 1.3.7.Final-redhat-1).

      2017-11-23 14:02:49,527 WARN  [org.jboss.jca.core.connectionmanager.pool.validator.ConnectionValidator] (ConnectionValidator) IJ000602: ConnectionValidator ignored unexpected runtime exception: java.lang.NullPointerException
              at java.util.concurrent.ConcurrentLinkedDeque.checkNotNull(ConcurrentLinkedDeque.java:798)
              at java.util.concurrent.ConcurrentLinkedDeque.linkLast(ConcurrentLinkedDeque.java:386)
              at java.util.concurrent.ConcurrentLinkedDeque.addLast(ConcurrentLinkedDeque.java:903)
              at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.returnForFrequencyCheck(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:1597)
              at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.validateConnections(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:1523)
              at org.jboss.jca.core.connectionmanager.pool.validator.ConnectionValidator$ConnectionValidatorRunner.run(ConnectionValidator.java:277)
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
              at java.lang.Thread.run(Thread.java:745)
      

      Configuration:

          <datasource jndi-name="java:/DB1" pool-name="DB1" statistics-enabled="true">
              <connection-url>jdbc:oracle:thin:@ServerA:1521:DB1</connection-url>
              <driver-class&gt;oracle.jdbc.OracleDriver</driver-class&gt;
              <connection-property name="v$session.program">
                  ServerA
              </connection-property>
              <driver>oracle</driver>
              <pool>
                  <min-pool-size>490</min-pool-size>
                  <initial-pool-size>490</initial-pool-size>
                  <max-pool-size>490</max-pool-size>
                  <prefill>true</prefill>
                  <allow-multiple-users>false</allow-multiple-users>
              </pool>
              <security>
                  <user-name>username</user-name>
                  <password>password</password>
              </security>
              <validation>
                  <check-valid-connection-sql>SELECT 1 FROM DUAL</check-valid-connection-sql>
                  <validate-on-match>false</validate-on-match>
                  <background-validation>true</background-validation>
                  <background-validation-millis>120000</background-validation-millis>
              </validation>
              <timeout>
                  <blocking-timeout-millis>3000</blocking-timeout-millis>
                  <allocation-retry>10</allocation-retry>
                  <allocation-retry-wait-millis>60000</allocation-retry-wait-millis>
              </timeout>
              <statement>
                  <prepared-statement-cache-size>10</prepared-statement-cache-size>
              </statement>
          </datasource>
      

            rchakrab Ranabir Chakraborty
            rhn-support-onagano Osamu Nagano
            Votes:
            3 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated:
              Resolved: