Using Cloudscape 3.0.1 and JOnAS 1.5 in the same JVM (Sun 1.2.2), we receive
the following exception in Jonas generated code (container class) for our
container-managed Entity Bean. Is this a bug in Jonas? Why does setNull()
always specify "Types.VARBINARY" instead of the column's actual type (Which
in this case is VARCHAR)? Has anyone else seen this problem? Is it a
configuration problem with Cloudscape or Jonas?
Regards...Todd
-- JVM Output ---------------------------------------
Failed to store bean to database
SQL Exception: Attempt to set parameter 1 to null type 'VARBINARY' when
actual type is 'VARCHAR'.
at COM.jbms._6._403._8786(Unknown Source)
at COM.jbms._6._403._8786(Unknown Source)
at COM.jbms._6._403._832(Unknown Source)
at COM.jbms._6._132.setNull(Unknown Source)
at
aqp.beans.project.JOnASProjectBeanProject.storeData(JOnASProjectBeanProject.
java:615)
at
org.objectweb.jonas.container.EntitySynchroImpl.beforeCompletion(EntitySynch
roImpl.java:92)
at
org.objectweb.jonas.jta.SubCoordinator.doBeforeCompletion(SubCoordinator.jav
a, Compiled Code)
at
org.objectweb.jonas.jta.SubCoordinator.commit_one_phase(SubCoordinator.java:
218)
at
org.objectweb.jonas.jta.TransactionImpl.commit(TransactionImpl.java:161)
at org.objectweb.jonas.jta.Current.commit(Current.java:207)
at
org.objectweb.jonas.container.JBeanEntity.postinvoke(JBeanEntity.java:593)
at
aqp.beans.project.JOnASProjectBeanProject.getProject(JOnASProjectBeanProject
.java:468)
at
aqp.beans.project.JOnASProjectBeanProject_Skel.dispatch(JOnASProjectBeanProj
ect_Skel.java:260)
at
sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:315)
at
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:183)
at sun.rmi.transport.Transport$1.run(Transport.java:140)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:137)
at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:422)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:6
34)
at java.lang.Thread.run(Thread.java:479)
EntitySynchroImpl.beforeCompletion() : java.rmi.RemoteException: Failed to
store bean to database; nested exception is:
SQL Exception: Attempt to set parameter 1 to null type 'VARBINARY'
when actual type is 'VARCHAR'.
----------------------------------------------
-------- Generated container code for our bean -----
public void storeData() throws RemoteException {
Trace.outln(Trace.DB_15, "JOnASProjectBeanProject.storeData()");
Connection conn = null;
PreparedStatement pStmt = null;
try {
aqp.beans.project.ProjectBean bn =
(aqp.beans.project.ProjectBean)getBean();
aqp.beans.id.InTypeID pk =
(aqp.beans.id.InTypeID)getPrimaryKey();
conn =
((DataSource)(getHome().getDataSource())).getConnection();
pStmt = conn.prepareStatement("update T_PROJECT set
ARCHIVE_LOCATION=?, ARCHIVE_COMMENTS=?, GROUPING_SCOPE=? where SCOPE=? and
ID=?");
if (bn.m_strArchiveLocation == null) {
/***** EXCEPTION HERE!!! *****/ pStmt.setNull(1, Types.VARBINARY);
} else {
pStmt.setString(1, bn.m_strArchiveLocation);
}
if (bn.m_strArchiveComments == null) {
pStmt.setNull(2, Types.VARBINARY);
} else {
pStmt.setString(2, bn.m_strArchiveComments);
}
pStmt.setInt(3, bn.m_iGroupingScope);
pStmt.setInt(4, pk.m_iScopeID);
pStmt.setInt(5, pk.m_iID);
pStmt.executeUpdate();
} catch (Exception e) {
Trace.errln("Failed to store bean to database");
Trace.errln(e);
throw new RemoteException("Failed to store bean to database",
e);
} finally {
if (pStmt != null) {
try {
pStmt.close();
} catch (Exception ignore) {
Trace.errln("Failed to close the PreparedStatement
(StoreData)");
Trace.errln(ignore);
}
}
if (conn != null) {
try {
conn.close();
} catch (Exception ignore) {
Trace.errln("Failed to close the Connection
(StoreData)");
Trace.errln(ignore);
}
}
}
}
----------------------------------------------
----
To unsubscribe, send email to [EMAIL PROTECTED] and
include in the body of the message "unsubscribe jonas-users".
For general help, send email to [EMAIL PROTECTED] and
include in the body of the message "help".