[jira] [Commented] (DERBY-7160) 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)
[ https://issues.apache.org/jira/browse/DERBY-7160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17828509#comment-17828509 ] Richard N. Hillegas commented on DERBY-7160: I modified DERBY_7160. Now it tests Derby's behavior on the String values Float.MAX_VALUE.toString(), 1.0E15, 9.999E14. Here is the program's behavior on Java 11, 17, and 21 and Derby 10.15.2.0 and 10.17.1.0: {noformat} mainline (21) > . switchVM 11 mainline (11) > runjavaExperimental /Users/rhillegas/derby/upgradeReleases/10.15.2.0 DERBY_7160 Java 11, Derby 10.15 Experiment Float.MAX_VALUE : Float = 3.4028235E38... Caught exception java.sql.SQLDataException with message: The resulting value is outside the range for the data type DECIMAL/NUMERIC(30,15). Experiment 1.0E15 : Float = 9.999E14... DECIMAL_IN_MAX received value 99986991104.000 Experiment succeeded. Experiment 9.999E14 : Float = 9.999E14... DECIMAL_IN_MAX received value 99986991104.000 Experiment succeeded. mainline (11) > . switchVM 17 mainline (17) > runjavaExperimental /Users/rhillegas/derby/upgradeReleases/10.15.2.0 DERBY_7160 Java 17, Derby 10.15 Experiment Float.MAX_VALUE : Float = 3.4028235E38... Caught exception java.sql.SQLDataException with message: The resulting value is outside the range for the data type DECIMAL/NUMERIC(30,15). Experiment 1.0E15 : Float = 9.999E14... DECIMAL_IN_MAX received value 99986991104.000 Experiment succeeded. Experiment 9.999E14 : Float = 9.999E14... DECIMAL_IN_MAX received value 99986991104.000 Experiment succeeded. mainline (17) > . switchVM 21 mainline (21) > runjavaExperimental /Users/rhillegas/derby/upgradeReleases/10.15.2.0 DERBY_7160 Java 21, Derby 10.15 Experiment Float.MAX_VALUE : Float = 3.4028235E38... Caught exception java.sql.SQLDataException with message: The resulting value is outside the range for the data type DECIMAL/NUMERIC(30,15). Experiment 1.0E15 : Float = 1.0E15... DECIMAL_IN_MAX received value 99986991104.000 Experiment succeeded. Experiment 9.999E14 : Float = 1.0E15... DECIMAL_IN_MAX received value 99986991104.000 Experiment succeeded. mainline (21) > runjavaExperimental /Users/rhillegas/derby/upgradeReleases/10.17.1.0 DERBY_7160 Java 21, Derby 10.17 Experiment Float.MAX_VALUE : Float = 3.4028235E38... Caught exception java.sql.SQLDataException with message: The resulting value is outside the range for the data type DECIMAL/NUMERIC(30,15). Experiment 1.0E15 : Float = 1.0E15... DECIMAL_IN_MAX received value 99986991104.000 Experiment succeeded. Experiment 9.999E14 : Float = 1.0E15... DECIMAL_IN_MAX received value 99986991104.000 Experiment succeeded. {noformat} Derby's behavior does not change across different JVMs and different Derby releases. The only change is the behavior of Float.toString(), which changed in Java 21. > 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-1.java, 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 >
[jira] [Commented] (DERBY-7160) 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)
[ https://issues.apache.org/jira/browse/DERBY-7160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17828494#comment-17828494 ] Scott Marlow commented on DERBY-7160: - https://github.com/jakartaee/platform-tck/issues/1260 is for challenging the failing tests. [~rhillegas] I think that this issue can be closed now. Do you agree? > 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)
[jira] [Commented] (DERBY-7160) 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)
[ https://issues.apache.org/jira/browse/DERBY-7160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17828471#comment-17828471 ] Scott Marlow commented on DERBY-7160: - Possible causes as mentioned in https://wildfly.zulipchat.com/#narrow/stream/174184-wildfly-developers/topic/Pass.20Platform.20TCK.20jdbc.2Eee.2EcallStmt.20tests.20on.20Java.2021 discussion (thanks Ladislav Thon!): https://bugs.openjdk.org/browse/JDK-4511638 https://github.com/openjdk/jdk/commit/72bcf2aa03d53b0f68eb07a902575b4e8628d859 (OpenJDK 19 change). > 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)
[jira] [Commented] (DERBY-7160) 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)
[ https://issues.apache.org/jira/browse/DERBY-7160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17828453#comment-17828453 ] Scott Marlow commented on DERBY-7160: - Updated test: {code} class FloatTest { public static void main(String[] args) { String smaxStringVal = "999"; System.out.println(" smaxStringVal = " + smaxStringVal + " float = " + new Float(smaxStringVal)); System.out.println(" smaxStringVal = " + smaxStringVal + " float = " + Float.parseFloat(smaxStringVal)); } } {code} On Java 17: {quote} smaxStringVal = 999 float = 9.999E14 smaxStringVal = 999 float = 9.999E14 {quote} On Java 21: {quote} smaxStringVal = 999 float = 1.0E15 smaxStringVal = 999 float = 1.0E15 {quote} > 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)
[jira] [Commented] (DERBY-7160) 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)
[ https://issues.apache.org/jira/browse/DERBY-7160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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 = 999 float = 9.999E14 {quote} On Java 21: {quote} java FloatTest smaxStringVal = 999 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} >
[jira] [Commented] (DERBY-7160) 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)
[ https://issues.apache.org/jira/browse/DERBY-7160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17828367#comment-17828367 ] Scott Marlow commented on DERBY-7160: - Interesting, when I compiled a local test with Java 17 or Java 21 I see: {quote} javac FloatTest.java FloatTest.java:6: warning: [removal] Float(String) in Float has been deprecated and marked for removal System.out.println(" smaxStringVal = " + smaxStringVal + " float = " + new Float(smaxStringVal)); {quote} {code} class FloatTest { public static void main(String[] args) { String smaxStringVal = "999"; System.out.println(" smaxStringVal = " + smaxStringVal + " float = " + new Float(smaxStringVal)); } } {code} I wonder if Java 21 changed something related to the future removal of the Float(String) constructor. > 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)
[jira] [Commented] (DERBY-7160) 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)
[ https://issues.apache.org/jira/browse/DERBY-7160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17828362#comment-17828362 ] Scott Marlow commented on DERBY-7160: - Thanks [~rhillegas], I modified the JDBC TCK test locally to show the value used in https://github.com/jakartaee/platform-tck/blob/10.0.x/src/com/sun/ts/tests/jdbc/ee/callStmt/callStmt16/callStmtClient16.java#L968: {code} System.out.println("xxx WFLY-18896 smaxStringVal = " + smaxStringVal + ", maxFloatVal = " + maxFloatVal); {code} When running on Java 21 with Derby 10.17 ^ shows: {quote} xxx WFLY-18896 smaxStringVal = 999, maxFloatVal = 1.0E15 {quote} When running on Java 17 with Derby 10.15 ^ shows: {quote} xxx WFLY-18896 smaxStringVal = 999, maxFloatVal = 9.999E14 {quote} > 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)
[jira] [Commented] (DERBY-7160) 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)
[ https://issues.apache.org/jira/browse/DERBY-7160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17828124#comment-17828124 ] Richard N. Hillegas commented on DERBY-7160: I don't know of any changes to Derby which would be responsible for this result. It is hard to make much headway on narrowing down the problem until we know what the suspect Float value is. The variable naming in callStmtClient16.testSetObject177() suggests that the procedure might be trying to stuff a Float.MAX_VALUE into an input procedure argument of type DECIMAL(30,15). I am attaching a program (DERBY_7160) which runs that experiment. I compiled the program with JDK 11. Since Float.MAX_VALUE is outside the range of DECIMAL(30,15), the program fails with the following error: {noformat} Exception in thread "main" java.sql.SQLDataException: The resulting value is outside the range for the data type DECIMAL/NUMERIC(30,15). at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:84) at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Util.java:230) at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:431) at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:360) at org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2405) at org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:88) at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1436) at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(EmbedPreparedStatement.java:1709) at org.apache.derby.impl.jdbc.EmbedCallableStatement.executeStatement(EmbedCallableStatement.java:134) at org.apache.derby.impl.jdbc.EmbedPreparedStatement.execute(EmbedPreparedStatement.java:1394) at DERBY_7160.main(DERBY_7160.java:23) Caused by: ERROR 22003: The resulting value is outside the range for the data type DECIMAL/NUMERIC(30,15). at org.apache.derby.shared.common.error.StandardException.newException(StandardException.java:300) at org.apache.derby.shared.common.error.StandardException.newException(StandardException.java:295) at org.apache.derby.iapi.types.SQLDecimal.setWidth(SQLDecimal.java:991) at org.apache.derby.exe.ac3ea3c0fbx018ex53bfx4594x075b77200.g0(Unknown Source) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.apache.derby.impl.services.reflect.ReflectMethod.invoke(ReflectMethod.java:46) at org.apache.derby.impl.sql.execute.CallStatementResultSet.open(CallStatementResultSet.java:75) at org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(GenericPreparedStatement.java:472) at org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:351) at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1344) ... 4 more {noformat} The experiment fails on the following platforms: {noformat} JDKDERBY 11 10.15.2.0 17 10.15.2.0 21 10.15.2.0 21 10.17.1.0 {noformat} > 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 >