[
https://issues.apache.org/jira/browse/BEANUTILS-142?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Henri Yandell updated BEANUTILS-142:
------------------------------------
Attachment: Play.java
Test case for this bug. It shows that there is a problem with DATE columns
being loaded as originally said. I don't think an Exception is thrown for
TIMESTAMP->oracle.sql.TIMESTAMP. Instead the user gets an oracle.sql.TIMESTAMP
object instead of the expected java.sql.Timestamp.
We should a) Fix the exception and b) Probably tidy up a bit so users don't get
the oracle class.
Here is the output:
metadata - java.sql.Date? java.sql.Timestamp
metadata - java.sql.Timestamp? oracle.sql.TIMESTAMP
getDate - java.sql.Date? class java.sql.Date
getObject - java.sql.Date? class java.sql.Date
getTimestamp - java.sql.Timestamp? class java.sql.Timestamp
getObject - java.sql.Timestamp? class oracle.sql.TIMESTAMP
Exception in thread "main" org.apache.commons.beanutils.ConversionException:
Cannot assign value of type 'java.sql.Date' to property 'test_date' of type
'java.sql.Timestamp'
at
org.apache.commons.beanutils.BasicDynaBean.set(BasicDynaBean.java:304)
at
org.apache.commons.beanutils.RowSetDynaClass.copy(RowSetDynaClass.java:240)
at
org.apache.commons.beanutils.RowSetDynaClass.<init>(RowSetDynaClass.java:187)
at
org.apache.commons.beanutils.RowSetDynaClass.<init>(RowSetDynaClass.java:105)
at jdbc.Play.main(Play.java:38)
> [beanutils] RowSetDynaClass fails to copy resulset to DynaBean with Oracle
> 10g JDBC driver
> ------------------------------------------------------------------------------------------
>
> Key: BEANUTILS-142
> URL: https://issues.apache.org/jira/browse/BEANUTILS-142
> Project: Commons BeanUtils
> Issue Type: Bug
> Components: DynaBean
> Environment: Operating System: Windows XP
> Platform: All
> Reporter: Li Zhang
> Assignee: Henri Yandell
> Fix For: 1.8.0
>
> Attachments: Beanutils-142.patch, Play.java
>
>
> Beginning in Oracle 9.2, DATE is mapped to Date and TIMESTAMP is mapped to
> Timestamp. However if you were relying on DATE values to contain time
> information, there is a problem. When using Oracle 10g JDBC driver, the
> ResultSetMetaData.getColumnClassName returns java.sql.Timestamp but
> ResultSet.getObject(name).getClass() returns java.sql.Date. Obviously these
> two
> do not match each other. When the RowSetDynaClass.copy function tries to set
> the
> value to BasicDynaBean, it throws exception. Need a workaround.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]