Discussion:
[castor-dev] FW: bug in castor 1.3
r***@syscon.eu
2008-11-06 09:11:50 UTC
Permalink
Hi devs,

changing from 1.2 to 1.3RC1 release of Castor we recognized the following failure. As I'm out off office at the moment I can not verify this now but will look into it on friday. In my opinon this would be a critical problem that need to resolved before 1.3GA.

Regards
Ralf


Hi Ralf,

mit dem neuen Castor-Release 1.3 scheint es noch ein Problem zu geben.
Folgende Abfrage schlägt seit dem Wechsel fehl:

private Date _loadDate;

String oql = "select t from " + RtSord.class.getName() + " t " +
" where t.loadDate=$1";
Query qry = _promisDb.getOQLQuery(oql);
qry.bind(_loadDate);
QueryResults qrs = qry.execute(AccessMode.ReadOnly);


Das sieht dann wie folgt aus:

org.exolab.castor.jdo.PersistenceException: Nested error:
java.sql.SQLException: Ungültiger Spaltentyp while executing SELECT
"RT_SORD"."PARTNAME","RT_SORD"
."LOADDATE","RT_SORD"."ORIGDATEREQD","RT_SORD"."CUSTORDERNUMBER" FROM
"RT_SORD" WHERE ("RT_SORD"."LOADDATE" = ?1): Ungültiger Spaltentyp
at org.exolab.castor.jdo.engine.SQLQuery.execute(SQLQuery.java:218)
at
org.castor.persist.AbstractTransactionContext.query(AbstractTransactionContext.j
ava:679)
at
org.exolab.castor.jdo.engine.OQLQueryImpl.execute(OQLQueryImpl.java:503)
at
org.exolab.castor.jdo.engine.OQLQueryImpl.execute(OQLQueryImpl.java:465)
at
de.jsci.apkon.promis.PromisOrdersHelper.loadRtSord(PromisOrdersHelper.java:242)

at
de.jsci.apkon.promis.PromisOrdersHelper.load(PromisOrdersHelper.java:217)
at
de.jsci.apkon.adas.AbrufeAdapter.synchronize(AbrufeAdapter.java:400)
at
de.jsci.apkon.adas.AbrufeAdapter.synchronize(AbrufeAdapter.java:327)
at de.jsci.apkon.adas.AbrufeAdapter.execute(AbrufeAdapter.java:293)
at de.jsci.cron.CronTask.run(CronTask.java:266)
at de.jsci.cron.CronThread.mainLoop(CronThread.java:138)
at de.jsci.cron.CronThread.run(CronThread.java:81)
Caused by: java.sql.SQLException: Ungültiger Spaltentyp
at
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
at
oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical(OraclePreparedState
ment.java:9209)
at
oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedState
ment.java:8790)
at
oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedState
ment.java:9512)
at
oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.jav
a:9495)
at
org.exolab.castor.jdo.engine.SqlBindParser.bindJdbcValues(SqlBindParser.java:261
)
at org.exolab.castor.jdo.engine.SQLQuery.execute(SQLQuery.java:196)
... 11 more


Das zugehörige Mapping sieht so aus:

<class name="de.jsci.apkon.promis.entity.RtSord">
<description>RT_SORD from PROMIS</description>
<cache-type type="none"/>
<map-to table="RT_SORD"/>
<field name="partName" type="string" identity="true">
<sql name="PARTNAME" type="varchar"/>
</field>
<field name="loadDate" type="date" identity="true">
<sql name="LOADDATE" type="date"/>
</field>
<field name="requestDate" type="date" identity="true">
<sql name="ORIGDATEREQD" type="date"/>
</field>
<field name="orderNumberText" type="string">
<sql name="CUSTORDERNUMBER" type="varchar"/>
</field>
</class>


Also, kannst du mir erklären was hier los ist?

Mit freundlichen Grüßen / Best regards
Jens Joachim
- Geschäftsführer / Managing Director -

Syscon Ingenieurbüro für Mess- und Datentechnik GmbH
Raiffeisenstr. 11, D-72127 Kusterdingen
Internet: syscon.eu
E-Mail: ***@syscon.eu
Tel.: +49 (70 71) 36 90-51
Fax: +49 (70 71) 36 90-98

Sitz der Gesellschaft: D-72127 Kusterdingen
Registereintrag: Amtsgericht Stuttgart, HRB 382295
Geschäftsleitung: Jens Joachim, Ralf Joachim

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email
Werner Guttmann
2008-11-06 12:52:05 UTC
Permalink
Hmm, isn't this similar to what we have seen recently with postgreSQL
where postgreSQL internally changed to disable auto-casts during SQL
queries ?

And yes, I am more than happy to not ship 1.3 this week.

Werner
Post by r***@syscon.eu
Hi devs,
changing from 1.2 to 1.3RC1 release of Castor we recognized the following failure. As I'm out off office at the moment I can not verify this now but will look into it on friday. In my opinon this would be a critical problem that need to resolved before 1.3GA.
Regards
Ralf
Hi Ralf,
mit dem neuen Castor-Release 1.3 scheint es noch ein Problem zu geben.
private Date _loadDate;
String oql = "select t from " + RtSord.class.getName() + " t " +
" where t.loadDate=$1";
Query qry = _promisDb.getOQLQuery(oql);
qry.bind(_loadDate);
QueryResults qrs = qry.execute(AccessMode.ReadOnly);
java.sql.SQLException: Ungültiger Spaltentyp while executing SELECT
"RT_SORD"."PARTNAME","RT_SORD"
."LOADDATE","RT_SORD"."ORIGDATEREQD","RT_SORD"."CUSTORDERNUMBER" FROM
"RT_SORD" WHERE ("RT_SORD"."LOADDATE" = ?1): Ungültiger Spaltentyp
at org.exolab.castor.jdo.engine.SQLQuery.execute(SQLQuery.java:218)
at
org.castor.persist.AbstractTransactionContext.query(AbstractTransactionContext.j
ava:679)
at
org.exolab.castor.jdo.engine.OQLQueryImpl.execute(OQLQueryImpl.java:503)
at
org.exolab.castor.jdo.engine.OQLQueryImpl.execute(OQLQueryImpl.java:465)
at
de.jsci.apkon.promis.PromisOrdersHelper.loadRtSord(PromisOrdersHelper.java:242)
at
de.jsci.apkon.promis.PromisOrdersHelper.load(PromisOrdersHelper.java:217)
at
de.jsci.apkon.adas.AbrufeAdapter.synchronize(AbrufeAdapter.java:400)
at
de.jsci.apkon.adas.AbrufeAdapter.synchronize(AbrufeAdapter.java:327)
at de.jsci.apkon.adas.AbrufeAdapter.execute(AbrufeAdapter.java:293)
at de.jsci.cron.CronTask.run(CronTask.java:266)
at de.jsci.cron.CronThread.mainLoop(CronThread.java:138)
at de.jsci.cron.CronThread.run(CronThread.java:81)
Caused by: java.sql.SQLException: Ungültiger Spaltentyp
at
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
at
oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical(OraclePreparedState
ment.java:9209)
at
oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedState
ment.java:8790)
at
oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedState
ment.java:9512)
at
oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.jav
a:9495)
at
org.exolab.castor.jdo.engine.SqlBindParser.bindJdbcValues(SqlBindParser.java:261
)
at org.exolab.castor.jdo.engine.SQLQuery.execute(SQLQuery.java:196)
... 11 more
<class name="de.jsci.apkon.promis.entity.RtSord">
<description>RT_SORD from PROMIS</description>
<cache-type type="none"/>
<map-to table="RT_SORD"/>
<field name="partName" type="string" identity="true">
<sql name="PARTNAME" type="varchar"/>
</field>
<field name="loadDate" type="date" identity="true">
<sql name="LOADDATE" type="date"/>
</field>
<field name="requestDate" type="date" identity="true">
<sql name="ORIGDATEREQD" type="date"/>
</field>
<field name="orderNumberText" type="string">
<sql name="CUSTORDERNUMBER" type="varchar"/>
</field>
</class>
Also, kannst du mir erklären was hier los ist?
Mit freundlichen Grüßen / Best regards
Jens Joachim
- Geschäftsführer / Managing Director -
Syscon Ingenieurbüro für Mess- und Datentechnik GmbH
Raiffeisenstr. 11, D-72127 Kusterdingen
Internet: syscon.eu
Tel.: +49 (70 71) 36 90-51
Fax: +49 (70 71) 36 90-98
Sitz der Gesellschaft: D-72127 Kusterdingen
Registereintrag: Amtsgericht Stuttgart, HRB 382295
Geschäftsleitung: Jens Joachim, Ralf Joachim
---------------------------------------------------------------------
http://xircles.codehaus.org/manage_email
---------------------------------------------------------------------
To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email
Ralf Joachim
2008-11-07 17:45:09 UTC
Permalink
Hi Werner

I also remember this postgreSQL issue we discussed on mailing list.

Problem is that we only changed Castor release from 1.2 to 1.3RC1 and
back. No changes in JDBC drivers or anything else. Therefore the failing
query is caused by a change at Castor between this 2 releases.

Until now I have been able to reproduce the issue with a test case
against the original oracle table. Will continue with a separate test
table next. After that I'll try to reproduce things with mysql also.

Ralf
Post by Werner Guttmann
Hmm, isn't this similar to what we have seen recently with postgreSQL
where postgreSQL internally changed to disable auto-casts during SQL
queries ?
And yes, I am more than happy to not ship 1.3 this week.
Werner
Post by r***@syscon.eu
Hi devs,
changing from 1.2 to 1.3RC1 release of Castor we recognized the following failure. As I'm out off office at the moment I can not verify this now but will look into it on friday. In my opinon this would be a critical problem that need to resolved before 1.3GA.
Regards
Ralf
Hi Ralf,
mit dem neuen Castor-Release 1.3 scheint es noch ein Problem zu geben.
private Date _loadDate;
String oql = "select t from " + RtSord.class.getName() + " t " +
" where t.loadDate=$1";
Query qry = _promisDb.getOQLQuery(oql);
qry.bind(_loadDate);
QueryResults qrs = qry.execute(AccessMode.ReadOnly);
java.sql.SQLException: UngÃŒltiger Spaltentyp while executing SELECT
"RT_SORD"."PARTNAME","RT_SORD"
."LOADDATE","RT_SORD"."ORIGDATEREQD","RT_SORD"."CUSTORDERNUMBER" FROM
"RT_SORD" WHERE ("RT_SORD"."LOADDATE" = ?1): UngÃŒltiger Spaltentyp
at org.exolab.castor.jdo.engine.SQLQuery.execute(SQLQuery.java:218)
at
org.castor.persist.AbstractTransactionContext.query(AbstractTransactionContext.j
ava:679)
at
org.exolab.castor.jdo.engine.OQLQueryImpl.execute(OQLQueryImpl.java:503)
at
org.exolab.castor.jdo.engine.OQLQueryImpl.execute(OQLQueryImpl.java:465)
at
de.jsci.apkon.promis.PromisOrdersHelper.loadRtSord(PromisOrdersHelper.java:242)
at
de.jsci.apkon.promis.PromisOrdersHelper.load(PromisOrdersHelper.java:217)
at
de.jsci.apkon.adas.AbrufeAdapter.synchronize(AbrufeAdapter.java:400)
at
de.jsci.apkon.adas.AbrufeAdapter.synchronize(AbrufeAdapter.java:327)
at de.jsci.apkon.adas.AbrufeAdapter.execute(AbrufeAdapter.java:293)
at de.jsci.cron.CronTask.run(CronTask.java:266)
at de.jsci.cron.CronThread.mainLoop(CronThread.java:138)
at de.jsci.cron.CronThread.run(CronThread.java:81)
Caused by: java.sql.SQLException: UngÃŒltiger Spaltentyp
at
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
at
oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical(OraclePreparedState
ment.java:9209)
at
oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedState
ment.java:8790)
at
oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedState
ment.java:9512)
at
oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.jav
a:9495)
at
org.exolab.castor.jdo.engine.SqlBindParser.bindJdbcValues(SqlBindParser.java:261
)
at org.exolab.castor.jdo.engine.SQLQuery.execute(SQLQuery.java:196)
... 11 more
<class name="de.jsci.apkon.promis.entity.RtSord">
<description>RT_SORD from PROMIS</description>
<cache-type type="none"/>
<map-to table="RT_SORD"/>
<field name="partName" type="string" identity="true">
<sql name="PARTNAME" type="varchar"/>
</field>
<field name="loadDate" type="date" identity="true">
<sql name="LOADDATE" type="date"/>
</field>
<field name="requestDate" type="date" identity="true">
<sql name="ORIGDATEREQD" type="date"/>
</field>
<field name="orderNumberText" type="string">
<sql name="CUSTORDERNUMBER" type="varchar"/>
</field>
</class>
Also, kannst du mir erklÀren was hier los ist?
Mit freundlichen GrÌßen / Best regards
Jens Joachim
- GeschÀftsfÌhrer / Managing Director -
Syscon IngenieurbÃŒro fÃŒr Mess- und Datentechnik GmbH
Raiffeisenstr. 11, D-72127 Kusterdingen
Internet: syscon.eu
Tel.: +49 (70 71) 36 90-51
Fax: +49 (70 71) 36 90-98
Sitz der Gesellschaft: D-72127 Kusterdingen
Registereintrag: Amtsgericht Stuttgart, HRB 382295
GeschÀftsleitung: Jens Joachim, Ralf Joachim
---------------------------------------------------------------------
http://xircles.codehaus.org/manage_email
---------------------------------------------------------------------
http://xircles.codehaus.org/manage_email
--
Syscon IngenieurbÃŒro fÃŒr Meß- und Datentechnik GmbH
Ralf Joachim
Raiffeisenstraße 11
72127 Kusterdingen
Germany

Tel. +49 7071 3690 52
Mobil: +49 173 9630135
Fax +49 7071 3690 98

Internet: www.syscon.eu
E-Mail: ***@syscon.eu

Sitz der Gesellschaft: D-72127 Kusterdingen
Registereintrag: Amtsgericht Stuttgart, HRB 382295
GeschÀftsleitung: Jens Joachim, Ralf Joachim
Werner Guttmann
2008-11-07 18:49:55 UTC
Permalink
Fine by me.

Werner
Post by Ralf Joachim
Hi Werner
I also remember this postgreSQL issue we discussed on mailing list.
Problem is that we only changed Castor release from 1.2 to 1.3RC1 and
back. No changes in JDBC drivers or anything else. Therefore the failing
query is caused by a change at Castor between this 2 releases.
Until now I have been able to reproduce the issue with a test case
against the original oracle table. Will continue with a separate test
table next. After that I'll try to reproduce things with mysql also.
Ralf
Post by Werner Guttmann
Hmm, isn't this similar to what we have seen recently with postgreSQL
where postgreSQL internally changed to disable auto-casts during SQL
queries ?
And yes, I am more than happy to not ship 1.3 this week.
Werner
Post by r***@syscon.eu
Hi devs,
changing from 1.2 to 1.3RC1 release of Castor we recognized the following failure. As I'm out off office at the moment I can not verify this now but will look into it on friday. In my opinon this would be a critical problem that need to resolved before 1.3GA.
Regards
Ralf
Hi Ralf,
mit dem neuen Castor-Release 1.3 scheint es noch ein Problem zu geben.
private Date _loadDate;
String oql = "select t from " + RtSord.class.getName() + " t " +
" where t.loadDate=$1";
Query qry = _promisDb.getOQLQuery(oql);
qry.bind(_loadDate);
QueryResults qrs = qry.execute(AccessMode.ReadOnly);
java.sql.SQLException: Ungültiger Spaltentyp while executing SELECT
"RT_SORD"."PARTNAME","RT_SORD"
."LOADDATE","RT_SORD"."ORIGDATEREQD","RT_SORD"."CUSTORDERNUMBER" FROM
"RT_SORD" WHERE ("RT_SORD"."LOADDATE" = ?1): Ungültiger Spaltentyp
at org.exolab.castor.jdo.engine.SQLQuery.execute(SQLQuery.java:218)
at
org.castor.persist.AbstractTransactionContext.query(AbstractTransactionContext.j
ava:679)
at
org.exolab.castor.jdo.engine.OQLQueryImpl.execute(OQLQueryImpl.java:503)
at
org.exolab.castor.jdo.engine.OQLQueryImpl.execute(OQLQueryImpl.java:465)
at
de.jsci.apkon.promis.PromisOrdersHelper.loadRtSord(PromisOrdersHelper.java:242)
at
de.jsci.apkon.promis.PromisOrdersHelper.load(PromisOrdersHelper.java:217)
at
de.jsci.apkon.adas.AbrufeAdapter.synchronize(AbrufeAdapter.java:400)
at
de.jsci.apkon.adas.AbrufeAdapter.synchronize(AbrufeAdapter.java:327)
at de.jsci.apkon.adas.AbrufeAdapter.execute(AbrufeAdapter.java:293)
at de.jsci.cron.CronTask.run(CronTask.java:266)
at de.jsci.cron.CronThread.mainLoop(CronThread.java:138)
at de.jsci.cron.CronThread.run(CronThread.java:81)
Caused by: java.sql.SQLException: Ungültiger Spaltentyp
at
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
at
oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical(OraclePreparedState
ment.java:9209)
at
oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedState
ment.java:8790)
at
oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedState
ment.java:9512)
at
oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.jav
a:9495)
at
org.exolab.castor.jdo.engine.SqlBindParser.bindJdbcValues(SqlBindParser.java:261
)
at org.exolab.castor.jdo.engine.SQLQuery.execute(SQLQuery.java:196)
... 11 more
<class name="de.jsci.apkon.promis.entity.RtSord">
<description>RT_SORD from PROMIS</description>
<cache-type type="none"/>
<map-to table="RT_SORD"/>
<field name="partName" type="string" identity="true">
<sql name="PARTNAME" type="varchar"/>
</field>
<field name="loadDate" type="date" identity="true">
<sql name="LOADDATE" type="date"/>
</field>
<field name="requestDate" type="date" identity="true">
<sql name="ORIGDATEREQD" type="date"/>
</field>
<field name="orderNumberText" type="string">
<sql name="CUSTORDERNUMBER" type="varchar"/>
</field>
</class>
Also, kannst du mir erklären was hier los ist?
Mit freundlichen Grüßen / Best regards
Jens Joachim
- Geschäftsführer / Managing Director -
Syscon Ingenieurbüro für Mess- und Datentechnik GmbH
Raiffeisenstr. 11, D-72127 Kusterdingen
Internet: syscon.eu
Tel.: +49 (70 71) 36 90-51
Fax: +49 (70 71) 36 90-98
Sitz der Gesellschaft: D-72127 Kusterdingen
Registereintrag: Amtsgericht Stuttgart, HRB 382295
Geschäftsleitung: Jens Joachim, Ralf Joachim
---------------------------------------------------------------------
http://xircles.codehaus.org/manage_email
---------------------------------------------------------------------
http://xircles.codehaus.org/manage_email
---------------------------------------------------------------------
To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email

Loading...