You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by sm...@apache.org on 2007/03/06 06:50:55 UTC
svn commit: r514992 - 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: smishura
Date: Mon Mar 5 21:50:55 2007
New Revision: 514992
URL: http://svn.apache.org/viewvc?view=rev&rev=514992
Log:
Apply patch for HARMONY-3271:
[classlib][sql] Implementation for SerialClob.getSubString(long, int)
Modified:
harmony/enhanced/classlib/trunk/modules/sql/src/main/java/javax/sql/rowset/serial/SerialClob.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/SerialClobTest.java
Modified: harmony/enhanced/classlib/trunk/modules/sql/src/main/java/javax/sql/rowset/serial/SerialClob.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/sql/src/main/java/javax/sql/rowset/serial/SerialClob.java?view=diff&rev=514992&r1=514991&r2=514992
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/sql/src/main/java/javax/sql/rowset/serial/SerialClob.java (original)
+++ harmony/enhanced/classlib/trunk/modules/sql/src/main/java/javax/sql/rowset/serial/SerialClob.java Mon Mar 5 21:50:55 2007
@@ -102,9 +102,14 @@
return new CharArrayReader(buf);
}
- public String getSubString(long pos, int length) throws SerialException,
- NotImplementedException {
- throw new NotImplementedException();
+ public String getSubString(long pos, int length) throws SerialException {
+ if (pos < 1 || pos > len) {
+ throw new SerialException(Messages.getString("sql.21")); // $NON-NLS-1$
+ }
+ if (length < 0 || length > len) {
+ throw new SerialException(Messages.getString("sql.22")); // $NON-NLS-1$
+ }
+ return new String(buf, (int) (pos - 1), length);
}
public long position(Clob searchstr, long start) throws SerialException,
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=514992&r1=514991&r2=514992
==============================================================================
--- 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 Mon Mar 5 21:50:55 2007
@@ -34,4 +34,6 @@
sql.17=javax.sql.rowset.serial.SerialException: Length more than what can be truncated
sql.18=Unsupported operation. SerialBlob cannot return a writable binary stream, unless instantiated with a Blob object that provides a setBinaryStream() implementation
sql.19=Cannot instantiate a SerialClob object with a null Clob object
-sql.20=Invalid Clob object. Calls to getCharacterStream or getAsciiStream return null which cannot be serialized.
\ No newline at end of file
+sql.20=Invalid Clob object. Calls to getCharacterStream or getAsciiStream return null which cannot be serialized.
+sql.21=Invalid position in BLOB object set
+sql.22=Invalid position and substring length
Modified: harmony/enhanced/classlib/trunk/modules/sql/src/test/java/org/apache/harmony/sql/tests/javax/sql/rowset/serial/SerialClobTest.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/SerialClobTest.java?view=diff&rev=514992&r1=514991&r2=514992
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/sql/src/test/java/org/apache/harmony/sql/tests/javax/sql/rowset/serial/SerialClobTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/sql/src/test/java/org/apache/harmony/sql/tests/javax/sql/rowset/serial/SerialClobTest.java Mon Mar 5 21:50:55 2007
@@ -105,8 +105,45 @@
// TODO: Not yet implemented
}
- public void testGetSubString() {
- // TODO: Not yet implemented
+ public void testGetSubString() throws Exception {
+ String s = "hello";
+ char[] buf = s.toCharArray();
+ SerialClob serialClob = new SerialClob(buf);
+
+ String sub = serialClob.getSubString(1, 5);
+ assertEquals("hello", sub);
+
+ sub = serialClob.getSubString(2, 3);
+ assertEquals("ell", sub);
+
+ try {
+ sub = serialClob.getSubString(0, 6);
+ fail("should throw SerialException");
+ } catch (SerialException e) {
+ // expected
+ }
+
+ try {
+ sub = serialClob.getSubString(7, 1);
+ fail("should throw SerialException");
+ } catch (SerialException e) {
+ // expected
+ }
+
+ try {
+ sub = serialClob.getSubString(1, 7);
+ fail("should throw SerialException");
+ } catch (SerialException e) {
+ // expected
+ }
+
+ try {
+ sub = serialClob.getSubString(1, -2);
+ fail("should throw SerialException");
+ } catch (SerialException e) {
+ // expected
+ }
+
}
public void testPositionLClobJ() {