ArrayIndexOutOfBoundsException when saving Serializable
T Bush
Greenhorn
Joined: Jul 31, 2000
Posts: 13
posted
0
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).]