Skip to content

Update to spring 3.1.3 causes SqlException when executing sql statement with null parameters, caused by changes in StatementCreatorUtils.setNull method. [SPR-10185] #14818

Closed
@spring-projects-issues

Description

@spring-projects-issues

Christiaan Rudolfs opened SPR-10185 and commented

Updating our application to Spring 3.1.3 causes several SQL statements with null parameters to fail with an SqlException, while this worked in versions 3.0.x:

java.sql.SQLException: Unsupported feature.
at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70) ~[ojdbc6.jar:Oracle JDBC Driver version - "11.1.0.7.0-Production"]
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133) ~[ojdbc6.jar:Oracle JDBC Driver version - "11.1.0.7.0-Production"]
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:199) ~[ojdbc6.jar:Oracle JDBC Driver version - "11.1.0.7.0-Production"]
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:263) ~[ojdbc6.jar:Oracle JDBC Driver version - "11.1.0.7.0-Production"]
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:271) ~[ojdbc6.jar:Oracle JDBC Driver version - "11.1.0.7.0-Production"]
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:445) ~[ojdbc6.jar:Oracle JDBC Driver version - "11.1.0.7.0-Production"]
at oracle.jdbc.driver.DatabaseError.throwUnsupportedFeatureSqlException(DatabaseError.java:765) ~[ojdbc6.jar:Oracle JDBC Driver version - "11.1.0.7.0-Production"]
at oracle.jdbc.driver.OracleParameterMetaData.getParameterType(OracleParameterMetaData.java:156) ~[ojdbc6.jar:Oracle JDBC Driver version - "11.1.0.7.0-Production"]
at org.springframework.jdbc.core.StatementCreatorUtils.setNull(StatementCreatorUtils.java:241) [spring-jdbc-3.1.3.RELEASE.jar:3.1.3.RELEASE]
at org.springframework.jdbc.core.StatementCreatorUtils.setParameterValueInternal(StatementCreatorUtils.java:214) [spring-jdbc-3.1.3.RELEASE.jar:3.1.3.RELEASE]
at org.springframework.jdbc.core.StatementCreatorUtils.setParameterValue(StatementCreatorUtils.java:128) [spring-jdbc-3.1.3.RELEASE.jar:3.1.3.RELEASE]
at org.springframework.jdbc.core.PreparedStatementCreatorFactory$PreparedStatementCreatorImpl.setValues(PreparedStatementCreatorFactory.java:298) [spring-jdbc-3.1.3.RELEASE.jar:3.1.3.RELEASE]
at org.springframework.jdbc.core.PreparedStatementCreatorFactory$PreparedStatementCreatorImpl.createPreparedStatement(PreparedStatementCreatorFactory.java:251) [spring-jdbc-3.1.3.RELEASE.jar:3.1.3.RELEASE]
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:581) [spring-jdbc-3.1.3.RELEASE.jar:3.1.3.RELEASE]
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:812) [spring-jdbc-3.1.3.RELEASE.jar:3.1.3.RELEASE]
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:834) [spring-jdbc-3.1.3.RELEASE.jar:3.1.3.RELEASE]
at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.update(NamedParameterJdbcTemplate.java:260) [spring-jdbc-3.1.3.RELEASE.jar:3.1.3.RELEASE]
at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.update(NamedParameterJdbcTemplate.java:264) [spring-jdbc-3.1.3.RELEASE.jar:3.1.3.RELEASE]

Further investigation shows that this problem is caused by changes in the StatementCreatorUtils.setNull method done in version 3.1.2. I see that these changes have been reverted as of version 3.2.0.RC2.


Affects: 3.1.2, 3.1.3

Issue Links:

Referenced from: commits c38bde2, b62652a, 41f041e

Backported to: 3.1.4

Metadata

Metadata

Assignees

Labels

in: dataIssues in data modules (jdbc, orm, oxm, tx)status: backportedAn issue that has been backported to maintenance branchesstatus: duplicateA duplicate of another issue

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions