Skip to content

Commit transaction failure when registering OAuth2 app in MySQL #3864

Open
@HeshanSudarshana

Description

@HeshanSudarshana

Description

DCR call fails with the following error for MySQL database.

[2025-04-06 08:27:31,319] ERROR - JDBCPersistenceManager An error occurred while commit transactions. 
java.sql.SQLException: Can't call commit when autocommit=true
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:67) ~[mysql-connector-java-8.0.29.jar:8.0.29]
	at com.mysql.cj.jdbc.ConnectionImpl.commit(ConnectionImpl.java:786) ~[mysql-connector-java-8.0.29.jar:8.0.29]
	at jdk.internal.reflect.GeneratedMethodAccessor70.invoke(Unknown Source) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
	at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:131) ~[jdbc-pool_9.0.76.wso2v1.jar:?]
	at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:107) ~[jdbc-pool_9.0.76.wso2v1.jar:?]
	at org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor.invoke(AbstractCreateStatementInterceptor.java:78) ~[jdbc-pool_9.0.76.wso2v1.jar:?]
	at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:107) ~[jdbc-pool_9.0.76.wso2v1.jar:?]
	at org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor.invoke(AbstractCreateStatementInterceptor.java:78) ~[jdbc-pool_9.0.76.wso2v1.jar:?]
	at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:107) ~[jdbc-pool_9.0.76.wso2v1.jar:?]
	at org.apache.tomcat.jdbc.pool.interceptor.ConnectionState.invoke(ConnectionState.java:158) ~[jdbc-pool_9.0.76.wso2v1.jar:?]
	at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:107) ~[jdbc-pool_9.0.76.wso2v1.jar:?]
	at org.apache.tomcat.jdbc.pool.TrapException.invoke(TrapException.java:39) ~[jdbc-pool_9.0.76.wso2v1.jar:?]
	at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:107) ~[jdbc-pool_9.0.76.wso2v1.jar:?]
	at org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor.invoke(AbstractCreateStatementInterceptor.java:78) ~[jdbc-pool_9.0.76.wso2v1.jar:?]
	at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:107) ~[jdbc-pool_9.0.76.wso2v1.jar:?]
	at org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:81) ~[jdbc-pool_9.0.76.wso2v1.jar:?]
	at com.sun.proxy.$Proxy53.commit(Unknown Source) ~[?:?]
	at org.wso2.carbon.identity.core.persistence.JDBCPersistenceManager.commitTransaction(JDBCPersistenceManager.java:205) [org.wso2.carbon.identity.core_5.17.5.303.jar:?]
	at org.wso2.carbon.identity.core.util.IdentityDatabaseUtil.commitTransaction(IdentityDatabaseUtil.java:119) [org.wso2.carbon.identity.core_5.17.5.303.jar:?]
	at org.wso2.carbon.identity.oauth.dao.OAuthAppDAO.updateOAuthConsumerApp(OAuthAppDAO.java:774) [org.wso2.carbon.identity.oauth_6.4.2.155.jar:?]
	at org.wso2.carbon.identity.oauth2.internal.OAuthApplicationMgtListener.updateAuthApplication(OAuthApplicationMgtListener.java:439) [org.wso2.carbon.identity.oauth_6.4.2.155.jar:?]
	at org.wso2.carbon.identity.oauth2.internal.OAuthApplicationMgtListener.doPostUpdateApplication(OAuthApplicationMgtListener.java:144) [org.wso2.carbon.identity.oauth_6.4.2.155.jar:?]
	at org.wso2.carbon.identity.application.mgt.ApplicationManagementServiceImpl.updateApplication(ApplicationManagementServiceImpl.java:642) [org.wso2.carbon.identity.application.mgt_5.17.5.290.jar:?]
	at org.wso2.carbon.apimgt.rest.api.dcr.web.impl.RegistrationServiceImpl.createApplication(RegistrationServiceImpl.java:481) [classes/:?]
	at org.wso2.carbon.apimgt.rest.api.dcr.web.impl.RegistrationServiceImpl.register(RegistrationServiceImpl.java:213) [classes/:?]

Please find the same issue reported for IS [1].

[1] wso2/product-is#13672

Steps to Reproduce

  1. Setup APIM 3.2.0 with MySQL
  2. Send a DCR request
curl --location 'https://127.0.0.1:9443/client-registration/v0.17/register' \
--header 'Host: localhost' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic YWRtaW46YWRtaW4=' \
--data '{
	"callbackUrl": "www.google.lk",
	"clientName": "rest_api_publisher2",
	"owner": "admin",
	"grantType": "client_credentials password refresh_token",
	"saasApp": true
}'
  1. The error is thrown in the log. However, it does not break any flows since the changes were committed with auto commit true.

Version

3.2.0

Environment Details (with versions)

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions