I have an application that is using this fetch
defined in "getAllObjects":
....
EOFetchSpecification fs =
new EOFetchSpecification("ProjectExecutionTemplate", nameQualifier, null, true,
true, sortOrdering); NSArray foundList =
context.objectsWithFetchSpecification(fs);
.....etc
Everything "seems" working, however when fetch this
particular table, this message has thrown out :: It was complaining the class
cast exception that instead of ProjectExecutionTemplate, WO looks that the
objects fetched are of ProjectActorRoleTemplate class!! The SQL trace
shows correctly that all 12 rows are fetched.
=== trace 1 === error
[2007-04-19 16:00:17 SGT]
<WorkerThread0> evaluateExpression:
<com.webobjects.jdbcadaptor.MySQLPlugIn$MySQLExpression: "SELECT DISTINCT
t0.ABBREVIATION_NAME, t0.CODE, t0.IS_ACTIVE, t0.IS_DEFAULT, t0.SEQUENCE_NUMBER,
t0.TEMPLATE_KEY, t0.VDESCRIPTION, t0.VNAME FROM PROJECT_EXECUTION_TEMPLATE t0
WHERE UPPER(t0.VNAME) LIKE UPPER(?) ESCAPE '|'" withBindings:
1:"%"(vName)> [2007-04-19 16:00:17 SGT] <WorkerThread0> 12 row(s)
processed [2007-04-19 16:00:17 SGT] <WorkerThread0> === Commit
Internal Transaction java.lang.ClassCastException:
com.rhino.model.ProjectActorRoleTemplate at
com.rhino.model.ProjectExecutionTemplate.getAllObjects(ProjectExecutionTemplate.java:206) at
ProjectExecutionPage.initializeDisplayGroup(ProjectExecutionPage.java:110)
So, spent some time on error searching... and
finally reach a point that if I changed the primary key in
ProjectExecutionTemplate database, e.g.:
(NULL,NULL,1,NULL,NULL,1000007,NULL,'Design/Development'),
==> changed to
(NULL,NULL,1,NULL,NULL,10007,NULL,'Design/Development'),
==> Note that "1000007" to "10007"
When run the app again, everything worked! See
below:
==== trace 2 ==== good one
[2007-04-19 16:03:45 SGT]
<WorkerThread1> evaluateExpression:
<com.webobjects.jdbcadaptor.MySQLPlugIn$MySQLExpression: "SELECT DISTINCT
t0.ABBREVIATION_NAME, t0.CODE, t0.IS_ACTIVE, t0.IS_DEFAULT, t0.SEQUENCE_NUMBER,
t0.TEMPLATE_KEY, t0.VDESCRIPTION, t0.VNAME FROM PROJECT_EXECUTION_TEMPLATE t0
WHERE UPPER(t0.VNAME) LIKE UPPER(?) ESCAPE '|'" withBindings:
1:"%"(vName)> [2007-04-19 16:03:45 SGT] <WorkerThread1> 12 row(s)
processed [2007-04-19 16:03:45 SGT] <WorkerThread1> === Commit
Internal Transaction
So what my question is: what has gone wrong
actually?
Primary key overflow?
Faults in MYSQL or WO or "programmer"?
(primary key is defined as int(11) in MYSQL)
How could Class Cast Exception happen in the first
place? (though both subclass from Template..)
Puzzled....Appreciate comments.
[WO5.2.4/MYSQL v 5.0.22]
Cheers
Cheong Hee
|