You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by te...@apache.org on 2007/01/02 11:41:04 UTC
svn commit: r491774 - in /harmony/enhanced/classlib/trunk/modules/sql/src:
main/java/javax/sql/rowset/serial/
main/java/org/apache/harmony/sql/internal/nls/
test/java/org/apache/harmony/sql/tests/javax/sql/rowset/serial/
Author: tellison
Date: Tue Jan 2 02:41:03 2007
New Revision: 491774
URL: http://svn.apache.org/viewvc?view=rev&rev=491774
Log:
Apply patch HARMONY-2935 ([classlib][sql] Implementation for SerialBlob.truncate(long length))
Modified:
harmony/enhanced/classlib/trunk/modules/sql/src/main/java/javax/sql/rowset/serial/SerialBlob.java
harmony/enhanced/classlib/trunk/modules/sql/src/main/java/org/apache/harmony/sql/internal/nls/messages.properties
harmony/enhanced/classlib/trunk/modules/sql/src/test/java/org/apache/harmony/sql/tests/javax/sql/rowset/serial/SerialBlobTest.java
Modified: harmony/enhanced/classlib/trunk/modules/sql/src/main/java/javax/sql/rowset/serial/SerialBlob.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/sql/src/main/java/javax/sql/rowset/serial/SerialBlob.java?view=diff&rev=491774&r1=491773&r2=491774
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/sql/src/main/java/javax/sql/rowset/serial/SerialBlob.java (original)
+++ harmony/enhanced/classlib/trunk/modules/sql/src/main/java/javax/sql/rowset/serial/SerialBlob.java Tue Jan 2 02:41:03 2007
@@ -219,9 +219,12 @@
return length;
}
- public void truncate(long len) throws SerialException,
- NotImplementedException {
- throw new NotImplementedException();
+ public void truncate(long length) throws SerialException {
+ if (length > this.len) {
+ throw new SerialException(Messages.getString("sql.17")); //$NON-NLS-1$
+ }
+ buf = getBytes(1, (int) length);
+ len = length;
}
}
Modified: harmony/enhanced/classlib/trunk/modules/sql/src/main/java/org/apache/harmony/sql/internal/nls/messages.properties
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/sql/src/main/java/org/apache/harmony/sql/internal/nls/messages.properties?view=diff&rev=491774&r1=491773&r2=491774
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/sql/src/main/java/org/apache/harmony/sql/internal/nls/messages.properties (original)
+++ harmony/enhanced/classlib/trunk/modules/sql/src/main/java/org/apache/harmony/sql/internal/nls/messages.properties Tue Jan 2 02:41:03 2007
@@ -31,3 +31,4 @@
sql.14=Invalid starting position or length
sql.15=Invalid position in BLOB object set
sql.16=Invalid offset in byte array set
+sql.17=javax.sql.rowset.serial.SerialException: Length more than what can be truncated
\ No newline at end of file
Modified: harmony/enhanced/classlib/trunk/modules/sql/src/test/java/org/apache/harmony/sql/tests/javax/sql/rowset/serial/SerialBlobTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/sql/src/test/java/org/apache/harmony/sql/tests/javax/sql/rowset/serial/SerialBlobTest.java?view=diff&rev=491774&r1=491773&r2=491774
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/sql/src/test/java/org/apache/harmony/sql/tests/javax/sql/rowset/serial/SerialBlobTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/sql/src/test/java/org/apache/harmony/sql/tests/javax/sql/rowset/serial/SerialBlobTest.java Tue Jan 2 02:41:03 2007
@@ -286,6 +286,37 @@
assertBlobPosition_BlobPattern(serialBlob);
}
+ public void testTruncateJ() throws Exception {
+ byte[] buf = { 1, 2, 3, 4, 5, 6, 7, 8 };
+ SerialBlob serialBlob1 = new SerialBlob(buf);
+ MockSerialBlob mockBlob = new MockSerialBlob();
+ mockBlob.buf = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };
+ SerialBlob serialBlob2 = new SerialBlob(mockBlob);
+ SerialBlob[] serialBlobs = { serialBlob1, serialBlob2 };
+
+ for (SerialBlob serialBlob : serialBlobs) {
+
+ serialBlob.truncate(3);
+ assertEquals(3L, serialBlob.length());
+ byte[] truncatedBytes = serialBlob.getBytes(1, 3);
+ assertTrue(Arrays.equals(new byte[] { 1, 2, 3 }, truncatedBytes));
+
+ try {
+ serialBlob.truncate(-1);
+ fail("should throw SerialException");
+ } catch (SerialException e) {
+ // expected
+ }
+ try {
+ serialBlob.truncate(10);
+ fail("should throw SerialException");
+ } catch (SerialException e) {
+ // expected
+ }
+
+ }
+ }
+
private void assertBlobPosition_BytePattern(Blob blob)
throws SerialException, SQLException {
byte[] pattern;