Setting up datasource connection get java.lang.NoSuchMethodException

XMLWordPrintable

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Low
    • None
    • Affects Version/s: 7.9.0
    • None
    • 2
    • Severity 3 - Minor

      Issue Summary

      When setting up datasource connection with Confluence by following this instruction https://confluence.atlassian.com/doc/configuring-a-datasource-connection-937166084.html

      I am facing this exception 

      -- url: /setup/setuppaths.action | referer: http://3.25.225.179:8090/setup/setupdatasourcedb-start.action | traceId: 006e14568b9e5299 | userName: anonymous | action: setuppaths
      java.lang.NoSuchMethodException: org.apache.tomcat.dbcp.dbcp2.PoolingDataSource$PoolGuardConnectionWrapper.getPrepareThreshold()
      	at java.base/java.lang.Class.getMethod(Unknown Source)
      	at com.atlassian.activeobjects.internal.DataSourceProviderActiveObjectsFactory$PostgresActiveObjectsUpgradeTask.configureConnectionAndRun(DataSourceProviderActiveObjectsFactory.java:219)
      	at com.atlassian.activeobjects.internal.DataSourceProviderActiveObjectsFactory$PostgresActiveObjectsUpgradeTask.upgrade(DataSourceProviderActiveObjectsFactory.java:188)
      	at com.atlassian.activeobjects.internal.ActiveObjectUpgradeManagerImpl.lambda$upgrade$0(ActiveObjectUpgradeManagerImpl.java:64)
      	at com.atlassian.sal.core.transaction.HostContextTransactionTemplate$1.doInTransaction(HostContextTransactionTemplate.java:21)
      	at com.atlassian.sal.spring.component.SpringHostContextAccessor.lambda$doInTransaction$0(SpringHostContextAccessor.java:70)
      	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
      	at com.atlassian.sal.spring.component.SpringHostContextAccessor.doInTransaction(SpringHostContextAccessor.java:68)
      	at com.atlassian.confluence.spring.transaction.interceptor.ConfluenceSpringHostContextAccessor.access$001(ConfluenceSpringHostContextAccessor.java:21)
      	at com.atlassian.confluence.spring.transaction.interceptor.ConfluenceSpringHostContextAccessor.lambda$doInTransaction$3(ConfluenceSpringHostContextAccessor.java:72)
      	at com.atlassian.confluence.impl.vcache.VCacheRequestContextManager.doInRequestContextInternal(VCacheRequestContextManager.java:84)
      	at com.atlassian.confluence.impl.vcache.VCacheRequestContextManager.doInRequestContext(VCacheRequestContextManager.java:68)
      	at com.atlassian.confluence.spring.transaction.interceptor.ConfluenceSpringHostContextAccessor.doInTransaction(ConfluenceSpringHostContextAccessor.java:72)
      	at com.atlassian.sal.core.transaction.HostContextTransactionTemplate.execute(HostContextTransactionTemplate.java:18)
      

      Steps to Reproduce

      1. Environment: Ubuntu bionic 18.04
      2. Install a Confluence milestone 7.9.0 version 
      3. Install Postgres 10.14
      4. Create database confluence and grant it for a credential confluence/confluence
      5. Set up the following resource as the same in the instruction
      6. Configure Confluence to use this datasource by following configuration
        <Resource name="jdbc/confluence" auth="Container" type="javax.sql.DataSource"
            username="confluence"
            password="confluence"
            driverClassName="org.postgresql.Driver"
            url="jdbc:postgresql://localhost:5432/confluence"
            maxTotal="60"
            maxIdle="20"
            validationQuery="select 1"
            accessToUnderlyingConnectionAllowed="true" />
        
      1. Go to Confluence set up pages and set up with the data source jdbc/confluence
      2. Checking the /var/atlassian/application-data/confluence/logs/atlassian-confluence.log and you will see above exception
        <resource-ref>
            <description>Connection Pool</description>
            <res-ref-name>jdbc/confluence</res-ref-name>
            <res-type>javax.sql.DataSource</res-type>
            <res-auth>Container</res-auth>
        </resource-ref>
        

      Expected Results

      • There is no such exception in the /var/atlassian/application-data/confluence/logs/atlassian-confluence.log

      Actual Results

      The below exception is thrown in the xxxxxxx.log file:

      -- url: /setup/setuppaths.action | referer: http://3.25.225.179:8090/setup/setupdatasourcedb-start.action | traceId: 006e14568b9e5299 | userName: anonymous | action: setuppaths
      java.lang.NoSuchMethodException: org.apache.tomcat.dbcp.dbcp2.PoolingDataSource$PoolGuardConnectionWrapper.getPrepareThreshold()
      	at java.base/java.lang.Class.getMethod(Unknown Source)
      	at com.atlassian.activeobjects.internal.DataSourceProviderActiveObjectsFactory$PostgresActiveObjectsUpgradeTask.configureConnectionAndRun(DataSourceProviderActiveObjectsFactory.java:219)
      	at com.atlassian.activeobjects.internal.DataSourceProviderActiveObjectsFactory$PostgresActiveObjectsUpgradeTask.upgrade(DataSourceProviderActiveObjectsFactory.java:188)
      	at com.atlassian.activeobjects.internal.ActiveObjectUpgradeManagerImpl.lambda$upgrade$0(ActiveObjectUpgradeManagerImpl.java:64)
      	at com.atlassian.sal.core.transaction.HostContextTransactionTemplate$1.doInTransaction(HostContextTransactionTemplate.java:21)
      	at com.atlassian.sal.spring.component.SpringHostContextAccessor.lambda$doInTransaction$0(SpringHostContextAccessor.java:70)
      	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
      	at com.atlassian.sal.spring.component.SpringHostContextAccessor.doInTransaction(SpringHostContextAccessor.java:68)
      	at com.atlassian.confluence.spring.transaction.interceptor.ConfluenceSpringHostContextAccessor.access$001(ConfluenceSpringHostContextAccessor.java:21)
      	at com.atlassian.confluence.spring.transaction.interceptor.ConfluenceSpringHostContextAccessor.lambda$doInTransaction$3(ConfluenceSpringHostContextAccessor.java:72)
      	at com.atlassian.confluence.impl.vcache.VCacheRequestContextManager.doInRequestContextInternal(VCacheRequestContextManager.java:84)
      	at com.atlassian.confluence.impl.vcache.VCacheRequestContextManager.doInRequestContext(VCacheRequestContextManager.java:68)
      	at com.atlassian.confluence.spring.transaction.interceptor.ConfluenceSpringHostContextAccessor.doInTransaction(ConfluenceSpringHostContextAccessor.java:72)
      	at com.atlassian.sal.core.transaction.HostContextTransactionTemplate.execute(HostContextTransactionTemplate.java:18)
      

      Workaround

      There is no workaround

            Assignee:
            Unassigned
            Reporter:
            Minh Tran
            Votes:
            3 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: