[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)

2024-03-19 Thread Richard N. Hillegas (Jira)


[ 
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)

2024-03-19 Thread Scott Marlow (Jira)


[ 
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)

2024-03-19 Thread Scott Marlow (Jira)


[ 
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)

2024-03-19 Thread Scott Marlow (Jira)


[ 
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)

2024-03-19 Thread Scott Marlow (Jira)


[ 
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)

2024-03-19 Thread Scott Marlow (Jira)


[ 
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)

2024-03-19 Thread Scott Marlow (Jira)


[ 
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)

2024-03-18 Thread Richard N. Hillegas (Jira)


[ 
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 
>