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".

Reply via email to