You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-user@db.apache.org by Zsolt Koppany <zk...@intland.com> on 2008/11/20 10:14:07 UTC

ibatis & derby problem

Hi,

with all newer derby versions I get an Exception if I want to store NULL
values.

Derby (or ibatis) wants my application telling also the java type of the
NULL value something like below:

#value:INTEGER#

Our application runs with Mysql-4 and 5, Oracle and Postgress. We cannot 
modify all ibatis files and additional we should write a lot
of new tests testing all possible NULL values.

We use ibatis-2.3.4.726 and derby 10.4.2.0.

How can we fix the problem?

Zsolt

com.intland.codebeamer.persistence.util.PersistenceException:
com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred while applying a parameter map.
--- Check the createUser-InlineParameterMap.
--- Check the parameter mapping for the 'hostName' property.
--- Cause: java.sql.SQLException: An attempt was made to get a data
value of type '<UNKNOWN>' from a data value of type 'VARCHAR'.
	at
com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeUpdate(MappedStatement.java:107)
	at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.insert(SqlMapExecutorDelegate.java:393)
	at
com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionImpl.java:82)
	at
com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.insert(SqlMapClientImpl.java:58)
	at
com.intland.codebeamer.persistence.util.SqlMapClientWrapper.insert(SqlMapClientWrapper.java:302)
	at
com.intland.codebeamer.persistence.dao.AbstractDao.create(AbstractDao.java:82)
	at
com.intland.codebeamer.persistence.dao.impl.UserDaoImpl.create(UserDaoImpl.java:90)
	at
com.intland.codebeamer.persistence.test.AbstractUserPersistenceTests.createAccount(AbstractUserPersistenceTests.java:42)
	at
com.intland.codebeamer.persistence.test.AbstractProjectPersistenceTests.setUpBeforeClass(AbstractProjectPersistenceTests.java:102)
	at
com.intland.codebeamer.test.AbstractCodeBeamerTests.onSetUp(AbstractCodeBeamerTests.java:132)
	at
com.intland.codebeamer.persistence.test.AbstractPersistenceTests.onSetUp(AbstractPersistenceTests.java:467)
	at
org.springframework.test.AbstractSingleSpringContextTests.setUp(AbstractSingleSpringContextTests.java:103)
	at junit.framework.TestCase.runBare(TestCase.java:125)
	at
org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:76)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at
org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
	at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
	at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
	at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
	at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred while applying a parameter map.
--- Check the createUser-InlineParameterMap.
--- Check the parameter mapping for the 'hostName' property.
--- Cause: java.sql.SQLException: An attempt was made to get a data
value of type '<UNKNOWN>' from a data value of type 'VARCHAR'.
	... 26 more
Caused by: java.sql.SQLException: An attempt was made to get a data
value of type '<UNKNOWN>' from a data value of type 'VARCHAR'.
	at
org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown
Source)
	at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
	at org.apache.derby.client.am.PreparedStatement.setNull(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at
com.ibatis.common.jdbc.logging.PreparedStatementLogProxy.invoke(PreparedStatementLogProxy.java:70)
	at $Proxy1.setNull(Unknown Source)
	at
com.ibatis.sqlmap.engine.mapping.parameter.ParameterMap.setParameter(ParameterMap.java:172)
	at
com.ibatis.sqlmap.engine.mapping.parameter.ParameterMap.setParameters(ParameterMap.java:126)
	at
com.ibatis.sqlmap.engine.execution.SqlExecutor.executeUpdate(SqlExecutor.java:78)
	at
com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.sqlExecuteUpdate(MappedStatement.java:216)
	at
com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeUpdate(MappedStatement.java:94)
	... 25 more
Caused by: org.apache.derby.client.am.SqlException: An attempt was made
to get a data value of type '<UNKNOWN>' from a data value of type 'VARCHAR'.
	at
org.apache.derby.client.am.PreparedStatement$PossibleTypes.throw22005Exception(Unknown 

Source)
	... 37 more




Re: ibatis & derby problem

Posted by Kathey Marsden <km...@sbcglobal.net>.
Zsolt Koppany wrote:
> K
> Ibatis is very popular API and I'm suprised that derby doesn't well 
> support this very useful and easy to use API.
>
Please modify the sample program to show what you would like supported 
from a JDBC perspective and file a Jira entry for an improvement and 
maybe someone will pick up the request, but we need to narrow it down to 
what you need supported from a  JDBC perspective first.

Thanks

Kathey



Re: ibatis & derby problem

Posted by "Bernt M. Johnsen" <Be...@Sun.COM>.
>>>>>>>>>>>> Zsolt Koppany wrote (2008-11-21 09:42:51):
> Kathey,
>
> How can you always know the type of an Object? Ibatis supports also  
> jdbc<-->java.util.Map mapping. How do you want to know for example if a  
> value is not available in the Map which java type to use to set NULL?
>
> ps.setNull(1,java.sql.Types.VARCHAR);
>
> It might be a weakness of the JDBC specification (what I don't know) but  
> our application runs for years with mysql-4.x, mysql-5, Postgress,  
> Oracle-9 and Oracle-10. These are well known stable and good databases.
>
> Ibatis is very popular API and I'm suprised that derby doesn't well  
> support this very useful and easy to use API.

It could be turned the other way around: "I'm surprised that Ibatis
does not adhere to the JDBC standard".

I think (and more with me) that what Derby does as in accordance with
the JDBC specification (I think it was thoroughly discussed on the
derby-dev list a year or two ago), and that MySQL,PostgreSQL and
Oracle has implemented something which might be interpreted as an
extension of the JDBC standard or just plain wrong.

A tool like Ibatis should *not* utilize non-standard extensions
because that might cause portability problems, like you just
experienced.


-- 
Bernt Marius Johnsen, Staff Engineer
Database Technology Group, Sun Microsystems, Trondheim, Norway

Re: ibatis & derby problem

Posted by Zsolt Koppany <zk...@intland.com>.
Kathey,

How can you always know the type of an Object? Ibatis supports also 
jdbc<-->java.util.Map mapping. How do you want to know for example if a 
value is not available in the Map which java type to use to set NULL?

ps.setNull(1,java.sql.Types.VARCHAR);

It might be a weakness of the JDBC specification (what I don't know) but 
our application runs for years with mysql-4.x, mysql-5, Postgress, 
Oracle-9 and Oracle-10. These are well known stable and good databases.

Ibatis is very popular API and I'm suprised that derby doesn't well 
support this very useful and easy to use API.

Zsolt

Kathey Marsden schrieb:
> Zsolt Koppany wrote:
>> Hi,
>>
>> with all newer derby versions I get an Exception if I want to store NULL
>> values.
>>
> The exception was added as part of DERBY-1610, see release note
> https://issues.apache.org/jira/secure/attachment/12361353/releaseNote.html, 
> but
> none of the cases called out in the release note cover your problem.
> The question here is why you are getting a data value type of <UNKNOWN>.
> We need to try to get a JDBC program to reproduce your problem so we can 
> look at it.
> We need the schema of the table and the prepareStatement and setNull 
> code to reproduce.
> Can you provide this?   Perhaps you can modify the program below to show 
> the error.
> 
> Thanks
> 
> Kathey
> 
> import java.sql.*;
> import org.apache.derby.drda.NetworkServerControl;
> import java.io.*;
> 
> public class Test22005Exception {
> 
>    public static void main(String[] args) throws Exception {
>    NetworkServerControl nsctrl = new NetworkServerControl();
>    nsctrl.start(new PrintWriter(System.out));
>        pingUntilUp();
>    Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
>    Connection conn = 
> DriverManager.getConnection("jdbc:derby://localhost:1527/wombat;create=true"); 
> 
>    Statement s = conn.createStatement();
>    try {
>        s.executeUpdate("DROP TABLE TAB");
>    }catch (SQLException se) {};
>    s.executeUpdate("CREATE TABLE TAB (vc varchar(20))");
>    PreparedStatement ps = conn.prepareStatement("INSERT INTO TAB 
> VALUES(?)");
>    ps.setNull(1,java.sql.Types.VARCHAR);
>    ps.executeUpdate();
>    System.out.println("Insert successful");
>    nsctrl.shutdown();
>      }
> 
>    private static void pingUntilUp() throws Exception{
>    NetworkServerControl nsctrl = new NetworkServerControl();
>    int i;
>    for (i = 1; i < 30; i++) {
>        try {
>        nsctrl.ping();
>        } catch (Exception e) {
>        if (i == 30)
>            throw e;
>        else
>            Thread.sleep(1000);
>        }
>    }
>    }
> }
> 
>> Derby (or ibatis) wants my application telling also the java type of the
>> NULL value something like below:
>>
>> #value:INTEGER#
>>
>> Our application runs with Mysql-4 and 5, Oracle and Postgress. We 
>> cannot modify all ibatis files and additional we should write a lot
>> of new tests testing all possible NULL values.
>>
>> We use ibatis-2.3.4.726 and derby 10.4.2.0.
>>
>> How can we fix the problem?
>> 2
>> Zsolt
>>
>> com.intland.codebeamer.persistence.util.PersistenceException:
>> com.ibatis.common.jdbc.exception.NestedSQLException:
>> --- The error occurred while applying a parameter map.
>> --- Check the createUser-InlineParameterMap.
>> --- Check the parameter mapping for the 'hostName' property.
>> --- Cause: java.sql.SQLException: An attempt was made to get a data
>> value of type '<UNKNOWN>' from a data value of type 'VARCHAR'.
>>     at
>> com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeUpdate(MappedStatement.java:107) 
>>
>>     at
>> com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.insert(SqlMapExecutorDelegate.java:393) 
>>
>>     at
>> com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionImpl.java:82) 
>>
>>     at
>> com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.insert(SqlMapClientImpl.java:58) 
>>
>>     at
>> com.intland.codebeamer.persistence.util.SqlMapClientWrapper.insert(SqlMapClientWrapper.java:302) 
>>
>>     at
>> com.intland.codebeamer.persistence.dao.AbstractDao.create(AbstractDao.java:82) 
>>
>>     at
>> com.intland.codebeamer.persistence.dao.impl.UserDaoImpl.create(UserDaoImpl.java:90) 
>>
>>     at
>> com.intland.codebeamer.persistence.test.AbstractUserPersistenceTests.createAccount(AbstractUserPersistenceTests.java:42) 
>>
>>     at
>> com.intland.codebeamer.persistence.test.AbstractProjectPersistenceTests.setUpBeforeClass(AbstractProjectPersistenceTests.java:102) 
>>
>>     at
>> com.intland.codebeamer.test.AbstractCodeBeamerTests.onSetUp(AbstractCodeBeamerTests.java:132) 
>>
>>     at
>> com.intland.codebeamer.persistence.test.AbstractPersistenceTests.onSetUp(AbstractPersistenceTests.java:467) 
>>
>>     at
>> org.springframework.test.AbstractSingleSpringContextTests.setUp(AbstractSingleSpringContextTests.java:103) 
>>
>>     at junit.framework.TestCase.runBare(TestCase.java:125)
>>     at
>> org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:76) 
>>
>>     at junit.framework.TestResult$1.protect(TestResult.java:106)
>>     at junit.framework.TestResult.runProtected(TestResult.java:124)
>>     at junit.framework.TestResult.run(TestResult.java:109)
>>     at junit.framework.TestCase.run(TestCase.java:118)
>>     at junit.framework.TestSuite.runTest(TestSuite.java:208)
>>     at junit.framework.TestSuite.run(TestSuite.java:203)
>>     at
>> org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) 
>>
>>     at
>> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 
>>
>>     at
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) 
>>
>>     at
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) 
>>
>>     at
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) 
>>
>>     at
>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) 
>>
>> Caused by: com.ibatis.common.jdbc.exception.NestedSQLException:
>> --- The error occurred while applying a parameter map.
>> --- Check the createUser-InlineParameterMap.
>> --- Check the parameter mapping for the 'hostName' property.
>> --- Cause: java.sql.SQLException: An attempt was made to get a data
>> value of type '<UNKNOWN>' from a data value of type 'VARCHAR'.
>>     ... 26 more
>> Caused by: java.sql.SQLException: An attempt was made to get a data
>> value of type '<UNKNOWN>' from a data value of type 'VARCHAR'.
>>     at
>> org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown
>> Source)
>>     at org.apache.derby.client.am.SqlException.getSQLException(Unknown 
>> Source)
>>     at org.apache.derby.client.am.PreparedStatement.setNull(Unknown 
>> Source)
>>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>     at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
>>
>>     at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
>>
>>     at java.lang.reflect.Method.invoke(Method.java:585)
>>     at
>> com.ibatis.common.jdbc.logging.PreparedStatementLogProxy.invoke(PreparedStatementLogProxy.java:70) 
>>
>>     at $Proxy1.setNull(Unknown Source)
>>     at
>> com.ibatis.sqlmap.engine.mapping.parameter.ParameterMap.setParameter(ParameterMap.java:172) 
>>
>>     at
>> com.ibatis.sqlmap.engine.mapping.parameter.ParameterMap.setParameters(ParameterMap.java:126) 
>>
>>     at
>> com.ibatis.sqlmap.engine.execution.SqlExecutor.executeUpdate(SqlExecutor.java:78) 
>>
>>     at
>> com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.sqlExecuteUpdate(MappedStatement.java:216) 
>>
>>     at
>> com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeUpdate(MappedStatement.java:94) 
>>
>>     ... 25 more
>> Caused by: org.apache.derby.client.am.SqlException: An attempt was made
>> to get a data value of type '<UNKNOWN>' from a data value of type 
>> 'VARCHAR'.
>>     at
>> org.apache.derby.client.am.PreparedStatement$PossibleTypes.throw22005Exception(Unknown 
>>
>> Source)
>>     ... 37 more
>>
>>
>>
>>
> 
> 
> 

Re: ibatis & derby problem

Posted by Kathey Marsden <km...@sbcglobal.net>.
Zsolt Koppany wrote:
> Hi,
>
> with all newer derby versions I get an Exception if I want to store NULL
> values.
>
The exception was added as part of DERBY-1610, see release note
https://issues.apache.org/jira/secure/attachment/12361353/releaseNote.html, 
but
none of the cases called out in the release note cover your problem.
The question here is why you are getting a data value type of <UNKNOWN>.
We need to try to get a JDBC program to reproduce your problem so we can 
look at it.
We need the schema of the table and the prepareStatement and setNull 
code to reproduce.
Can you provide this?   Perhaps you can modify the program below to show 
the error.

Thanks

Kathey

import java.sql.*;
import org.apache.derby.drda.NetworkServerControl;
import java.io.*;

public class Test22005Exception {

    public static void main(String[] args) throws Exception {
    NetworkServerControl nsctrl = new NetworkServerControl();
    nsctrl.start(new PrintWriter(System.out));
        pingUntilUp();
    Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
    Connection conn = 
DriverManager.getConnection("jdbc:derby://localhost:1527/wombat;create=true");
    Statement s = conn.createStatement();
    try {
        s.executeUpdate("DROP TABLE TAB");
    }catch (SQLException se) {};
    s.executeUpdate("CREATE TABLE TAB (vc varchar(20))");
    PreparedStatement ps = conn.prepareStatement("INSERT INTO TAB 
VALUES(?)");
    ps.setNull(1,java.sql.Types.VARCHAR);
    ps.executeUpdate();
    System.out.println("Insert successful");
    nsctrl.shutdown();
   
    }

    private static void pingUntilUp() throws Exception{
    NetworkServerControl nsctrl = new NetworkServerControl();
    int i;
    for (i = 1; i < 30; i++) {
        try {
        nsctrl.ping();
        } catch (Exception e) {
        if (i == 30)
            throw e;
        else
            Thread.sleep(1000);
        }
    }
    }
}

> Derby (or ibatis) wants my application telling also the java type of the
> NULL value something like below:
>
> #value:INTEGER#
>
> Our application runs with Mysql-4 and 5, Oracle and Postgress. We 
> cannot modify all ibatis files and additional we should write a lot
> of new tests testing all possible NULL values.
>
> We use ibatis-2.3.4.726 and derby 10.4.2.0.
>
> How can we fix the problem?
> 2
> Zsolt
>
> com.intland.codebeamer.persistence.util.PersistenceException:
> com.ibatis.common.jdbc.exception.NestedSQLException:
> --- The error occurred while applying a parameter map.
> --- Check the createUser-InlineParameterMap.
> --- Check the parameter mapping for the 'hostName' property.
> --- Cause: java.sql.SQLException: An attempt was made to get a data
> value of type '<UNKNOWN>' from a data value of type 'VARCHAR'.
>     at
> com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeUpdate(MappedStatement.java:107) 
>
>     at
> com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.insert(SqlMapExecutorDelegate.java:393) 
>
>     at
> com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionImpl.java:82) 
>
>     at
> com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.insert(SqlMapClientImpl.java:58) 
>
>     at
> com.intland.codebeamer.persistence.util.SqlMapClientWrapper.insert(SqlMapClientWrapper.java:302) 
>
>     at
> com.intland.codebeamer.persistence.dao.AbstractDao.create(AbstractDao.java:82) 
>
>     at
> com.intland.codebeamer.persistence.dao.impl.UserDaoImpl.create(UserDaoImpl.java:90) 
>
>     at
> com.intland.codebeamer.persistence.test.AbstractUserPersistenceTests.createAccount(AbstractUserPersistenceTests.java:42) 
>
>     at
> com.intland.codebeamer.persistence.test.AbstractProjectPersistenceTests.setUpBeforeClass(AbstractProjectPersistenceTests.java:102) 
>
>     at
> com.intland.codebeamer.test.AbstractCodeBeamerTests.onSetUp(AbstractCodeBeamerTests.java:132) 
>
>     at
> com.intland.codebeamer.persistence.test.AbstractPersistenceTests.onSetUp(AbstractPersistenceTests.java:467) 
>
>     at
> org.springframework.test.AbstractSingleSpringContextTests.setUp(AbstractSingleSpringContextTests.java:103) 
>
>     at junit.framework.TestCase.runBare(TestCase.java:125)
>     at
> org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:76) 
>
>     at junit.framework.TestResult$1.protect(TestResult.java:106)
>     at junit.framework.TestResult.runProtected(TestResult.java:124)
>     at junit.framework.TestResult.run(TestResult.java:109)
>     at junit.framework.TestCase.run(TestCase.java:118)
>     at junit.framework.TestSuite.runTest(TestSuite.java:208)
>     at junit.framework.TestSuite.run(TestSuite.java:203)
>     at
> org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) 
>
>     at
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 
>
>     at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) 
>
>     at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) 
>
>     at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) 
>
>     at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) 
>
> Caused by: com.ibatis.common.jdbc.exception.NestedSQLException:
> --- The error occurred while applying a parameter map.
> --- Check the createUser-InlineParameterMap.
> --- Check the parameter mapping for the 'hostName' property.
> --- Cause: java.sql.SQLException: An attempt was made to get a data
> value of type '<UNKNOWN>' from a data value of type 'VARCHAR'.
>     ... 26 more
> Caused by: java.sql.SQLException: An attempt was made to get a data
> value of type '<UNKNOWN>' from a data value of type 'VARCHAR'.
>     at
> org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown
> Source)
>     at org.apache.derby.client.am.SqlException.getSQLException(Unknown 
> Source)
>     at org.apache.derby.client.am.PreparedStatement.setNull(Unknown 
> Source)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
>
>     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
>
>     at java.lang.reflect.Method.invoke(Method.java:585)
>     at
> com.ibatis.common.jdbc.logging.PreparedStatementLogProxy.invoke(PreparedStatementLogProxy.java:70) 
>
>     at $Proxy1.setNull(Unknown Source)
>     at
> com.ibatis.sqlmap.engine.mapping.parameter.ParameterMap.setParameter(ParameterMap.java:172) 
>
>     at
> com.ibatis.sqlmap.engine.mapping.parameter.ParameterMap.setParameters(ParameterMap.java:126) 
>
>     at
> com.ibatis.sqlmap.engine.execution.SqlExecutor.executeUpdate(SqlExecutor.java:78) 
>
>     at
> com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.sqlExecuteUpdate(MappedStatement.java:216) 
>
>     at
> com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeUpdate(MappedStatement.java:94) 
>
>     ... 25 more
> Caused by: org.apache.derby.client.am.SqlException: An attempt was made
> to get a data value of type '<UNKNOWN>' from a data value of type 
> 'VARCHAR'.
>     at
> org.apache.derby.client.am.PreparedStatement$PossibleTypes.throw22005Exception(Unknown 
>
> Source)
>     ... 37 more
>
>
>
>