Kathey Marsden wrote:
I am running the 10.5 maildbc test on Linux with network server and
the release candidate and an updated derbyTesting.jar to have just
Lily's change to change the backup user: I see in the test output
early and often, this error inserting data into the table:
SQLState: XJ215
Severity: 20000
Message: You cannot invoke other java.sql.Clob/java.sql.Blob methods
after calling the free() method or afte
Clob's transaction has been committed or rolled back.
java.sql.SQLException: You cannot invoke other
java.sql.Clob/java.sql.Blob methods after calling the free() m
ter the Blob/Clob's transaction has been committed or rolled back.
at
org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(Unknown
Source)
at
org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
at org.apache.derby.client.am.Lob.checkValidity(Unknown Source)
at org.apache.derby.client.am.Clob.length(Unknown Source)
at
org.apache.derby.client.net.NetStatementRequest.computeProtocolTypesAndLengths(Unknown
Source)
at
org.apache.derby.client.net.NetStatementRequest.buildSQLDTAcommandData(Unknown
Source)
at
org.apache.derby.client.net.NetStatementRequest.writeExecute(Unknown
Source)
at
org.apache.derby.client.net.NetPreparedStatement.writeExecute_(Unknown
Source)
at
org.apache.derby.client.am.PreparedStatement.writeExecute(Unknown Source)
at
org.apache.derby.client.am.PreparedStatement.flowExecute(Unknown Source)
at
org.apache.derby.client.am.PreparedStatement.executeUpdateX(Unknown
Source)
at
org.apache.derby.client.am.PreparedStatement.executeUpdate(Unknown
Source)
at
org.apache.derbyTesting.system.mailjdbc.utils.DbTasks.insertMail(DbTasks.java:447)
at
org.apache.derbyTesting.system.mailjdbc.tasks.Refresh.insertMail(Refresh.java:99)
at
org.apache.derbyTesting.system.mailjdbc.tasks.Refresh.doWork(Refresh.java:75)
at
org.apache.derbyTesting.system.mailjdbc.tasks.Refresh.run(Refresh.java:51)
Caused by: org.apache.derby.client.am.SqlException: You cannot invoke
other java.sql.Clob/java.sql.Blob metho
lling the free() method or after the Blob/Clob's transaction has been
committed or rolled back.
The interesting thing is that the test itself is not using any Clob
methods it uses setCharacterStream and also autocommit is off.
Below is a code excerpt and
conn.setAutoCommit(false);
PreparedStatement insertFirst = conn.prepareStatement(
Statements.insertStr,
Statement.RETURN_GENERATED_KEYS);
String name = new String("ABCD");
String l_name = new String("WXYZ");
long s_insert = System.currentTimeMillis();
for (int i = 0; i < num; i++) {
String new_name = new String(increment(name, 60));
String new_lname = new String(decrement(l_name, 60));
insertFirst.setString(1, new_name);
insertFirst.setString(2, new_lname);
insertFirst.setTimestamp(3, new Timestamp(System
.currentTimeMillis()));
name = new_name;
l_name = new_lname;
try {
// to create a stream of random length between 200
bytes and 3MB
int clobLength = Rn.nextInt(3078000 - 200 + 1) + 200;
streamReader = new LoopingAlphabetReader(clobLength,
CharAlphabet.modernLatinLowercase());
insertFirst.setCharacterStream(4, streamReader,
clobLength);
} catch (Exception e) {
MailJdbc.logAct.logMsg(LogFile.ERROR + thread_name
+ " : "
+ "File not found Exception : " +
e.getMessage());
errorPrint(e);
throw e;
}
int rand_num = Rn.nextInt(10 - 1);
if (i == rand_num) {
ResultSet rs = stmt
.executeQuery("select count(*) from
REFRESH.INBOX where attach_id>0");
while (rs.next()) {
id_count = rs.getInt(1);
insertFirst.setInt(5, rs.getInt(1) + 1);
}
rs.close();
conn.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
} else
insertFirst.setInt(5, 0);
insertFirst
.setString(
6,
"This column is used only to by pass
the space problem. If the problem still exists, then we are going to "
+ "have a serious issue
here.*****************************************************************************************************");
int result = insertFirst.executeUpdate();
if I connect with ij I do see some rows in the INBOX, so some inserts
do seem to be happening. Does this look familiar to anyone?
Hi Kathey,
This error looks similar to DERBY-4224 [1], although in this case
auto-commit is off.
--
Kristian
[1] https://issues.apache.org/jira/browse/DERBY-4224
Thanks
Kathey