[ https://issues.apache.org/jira/browse/DERBY-7160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17828376#comment-17828376 ]
Scott Marlow commented on DERBY-7160: ------------------------------------- >From >https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Float.html#%3Cinit%3E(java.lang.String) {quote} Deprecated, for removal: This API element is subject to removal in a future version. It is rarely appropriate to use this constructor. Use parseFloat(String) to convert a string to a float primitive, or use valueOf(String) to convert a string to a Float object. {quote} Also, when running the FloatTest on Java 17, output is: {quote} smaxStringVal = 999999999999999 float = 9.9999999E14 {quote} On Java 21: {quote} java FloatTest smaxStringVal = 999999999999999 float = 1.0E15 {quote} I get the same results from: {code} System.out.println(" smaxStringVal = " + smaxStringVal + " float = " + Float.parseFloat(smaxStringVal)) {code} > Why do we see test failure/regression cause ERROR 22003: The resulting value > is outside the range for the data type DECIMAL/NUMERIC(30,15) > ------------------------------------------------------------------------------------------------------------------------------------------ > > Key: DERBY-7160 > URL: https://issues.apache.org/jira/browse/DERBY-7160 > Project: Derby > Issue Type: Bug > Affects Versions: 10.17.1.0 > Reporter: Scott Marlow > Priority: Major > Fix For: 10.17.1.1 > > Attachments: DERBY_7160.java > > > This may be a regression or maybe a design change, not sure of which as the > same tests pass for us on Java SE 11/17 with > https://dlcdn.apache.org//db/derby/db-derby-10.15.2.0/db-derby-10.15.2.0-bin.zip. > We are seeing a JDBC TCK test failure (Jakarta EE 10 TCK) when testing > against [https://db.apache.org/derby/releases/release-10_17_1_0.cgi] on java > 21 with the external project [https://github.com/wildfly/wildfly] that I > contribute to. > I marked this issue as a bug but I really have no idea where the bug is. The > JDBC test that is failing is > [https://github.com/jakartaee/platform-tck/blob/10.0.x/src/com/sun/ts/tests/jdbc/ee/callStmt/callStmt16/callStmtClient16.java#L968] > when run on Java 21 with 10.17.1.0. > The failure is: > {quote} > Caused by: ERROR 22003: The resulting value is outside the range for the data > type DECIMAL/NUMERIC(30,15). > \u001b[0m\u001b[0m12:39:19,524 INFO [stdout] (Thread-69) at > org.apache.derby.client//org.apache.derby.client.am.ClientStatement.completeExecute(ClientStatement.java:1868) > \u001b[0m\u001b[0m12:39:19,524 INFO [stdout] (Thread-69) at > org.apache.derby.client//org.apache.derby.client.net.NetStatementReply.parseEXCSQLSTTreply(NetStatementReply.java:323) > \u001b[0m\u001b[0m12:39:19,524 INFO [stdout] (Thread-69) at > org.apache.derby.client//org.apache.derby.client.net.NetStatementReply.readExecuteCall(NetStatementReply.java:107) > \u001b[0m\u001b[0m12:39:19,524 INFO [stdout] (Thread-69) at > org.apache.derby.client//org.apache.derby.client.net.StatementReply.readExecuteCall(StatementReply.java:84) > \u001b[0m\u001b[0m12:39:19,524 INFO [stdout] (Thread-69) at > org.apache.derby.client//org.apache.derby.client.net.NetStatement.readExecuteCall_(NetStatement.java:193) > \u001b[0m\u001b[0m12:39:19,524 INFO [stdout] (Thread-69) at > org.apache.derby.client//org.apache.derby.client.am.ClientStatement.readExecuteCall(ClientStatement.java:1831) > \u001b[0m\u001b[0m12:39:19,524 INFO [stdout] (Thread-69) at > org.apache.derby.client//org.apache.derby.client.am.ClientPreparedStatement.flowExecute(ClientPreparedStatement.java:2180) > \u001b[0m\u001b[0m12:39:19,524 INFO [stdout] (Thread-69) at > org.apache.derby.client//org.apache.derby.client.am.ClientPreparedStatement.executeUpdateX(ClientPreparedStatement.java:410) > \u001b[0m\u001b[0m12:39:19,524 INFO [stdout] (Thread-69) at > org.apache.derby.client//org.apache.derby.client.am.ClientPreparedStatement.executeUpdate(ClientPreparedStatement.java:396) > \u001b[0m\u001b[0m12:39:19,524 INFO [stdout] (Thread-69) ... 16 more > {quote} > > The called stored procedure source is at > https://github.com/jakartaee/platform-tck/blob/10.0.x/sql/derby/derby.ddl.sprocs.sql#L224 > which contains: > {quote} > create procedure Decimal_In_Max (in MAX_PARAM DECIMAL(30,15)) language java > external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Decimal_In_Max' parameter > style java; > {quote} > The referenced com.sun.ts.lib.tests.jdbc.CS_Procs.Decimal_In_Max contains: > {code} > Connection con = DriverManager.getConnection("jdbc:default:connection"); > PreparedStatement ps = con > .prepareStatement("update Decimal_Tab set MAX_VAL=?"); > ps.setBigDecimal(1, max_param); > ps.executeUpdate(); > ps.close(); > ps = null; > con.close(); > con = null; > } > {code} > More details are being added soon ... -- This message was sent by Atlassian Jira (v8.20.10#820010)