Win a copy of Functional Reactive Programming this week in the Other Languages forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

ArrayIndexOutOfBoundsException when saving Serializable

 
T Bush
Greenhorn
Posts: 13
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I'm getting a com.inet.tds.SQLException: java.lang.ArrayIndexOutOfBoundsException
when I'm attempting to persist my object as an array of bytes to a SQL Server db. The column that holds the object is of datatype image. Anyone know why I'm getting the exception?
here's my code.
how I make it a byte array
private byte[] serializeUserPreference(UserPreference obj) {
byte[] result = new byte[BYTE_MAX];
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(obj);
result = baos.toByteArray();
oos.flush();
oos.close();
}
catch(Exception e) {
;
}
return result;
}

and how I persist...
Connection myConn = aTransaction.getConnection();
StringBuffer myBuffer = new StringBuffer();
byte[] myBuf = serializeUserPreference(myUp);
myBuffer.append("update ")
.append(TABLE_NAME)
.append(" set ")
.append(DATA_FIELD)
.append("= ? ")
.append(" where ")
.append(KEY_FIELD_NAME)
.append(" = ?");
PreparedStatement ps = myConn.prepareStatement(myBuffer.toString());
ps.setBytes(1, myBuf);
ps.setLong(2, myUp.getKey());
ps.execute();

where the constants are correct for column and table names
Thanks
[This message has been edited by T Bush (edited February 07, 2001).]
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic