Class Cast Exception in SQLServerMergerFactory from AutoAdapter to
SQLServerAdapter
-----------------------------------------------------------------------------------
Key: CAY-1117
URL: https://issues.apache.org/cayenne/browse/CAY-1117
Project: Cayenne
Issue Type: Bug
Components: Cayenne Core Library
Affects Versions: 2.0 [STABLE]
Environment: Windows XP, 1.6.0_07 by Sun Microsystems Inc., Microsoft
SQL Server
Reporter: Laurentiu Cocanu
Assignee: Andrus Adamchik
In
cayenne/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerMergerFactory.java,
the following method
@Override
public MergerToken createSetNotNullToDb(DbEntity entity, final
DbAttribute column) {
return new SetNotNullToDb(entity, column) {
@Override
public List<String> createSql(DbAdapter adapter) {
StringBuffer sqlBuffer = new StringBuffer();
sqlBuffer.append("ALTER TABLE ");
sqlBuffer.append(getEntity().getFullyQualifiedName());
sqlBuffer.append(" ALTER COLUMN ");
SQLServerAdapter sqladapter = (SQLServerAdapter) adapter;
sqladapter.createTableAppendColumn(sqlBuffer, column);
return Collections.singletonList(sqlBuffer.toString());
}
};
}
the cast SQLServerAdapter sqladapter = (SQLServerAdapter) adapter; will raise a
Class Cast Exception.
A possible fix could be eliminating this cast as createTableAppendColumn method
is defined in DbAdapter interface, so the cast is useless.
See
http://www.nabble.com/Upcast-problems-w-SQLServerMergerFactory-and-AutoAdapter-td19664724.html
(the patch is known but not implemented yet)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.