Bug 1306519 - Clob.getSubstring(int,int) returns empty or whole string
Summary: Clob.getSubstring(int,int) returns empty or whole string
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: JBoss Data Virtualization 6
Classification: JBoss
Component: Teiid
Version: 6.3.0
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ER1
: 6.3.0
Assignee: Van Halbert
QA Contact: Juraj Duráni
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-02-11 07:10 UTC by Juraj Duráni
Modified: 2016-08-24 11:49 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-08-24 11:49:15 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker TEIID-3971 0 Blocker Closed Clob.getSubstring(int,int) returns empty or whole string 2016-06-08 12:00:43 UTC

Description Juraj Duráni 2016-02-11 07:10:27 UTC
Description of problem:
Method java.sql.Clob.getSubstring(int,int) returns either empty string (if second argument, length, is 0) or whole string (if length >= 1).

Steps to Reproduce:
> DDL
CREATE FOREIGN TABLE smalla(
    intkey integer PRIMARY KEY OPTIONS(NAMEINSOURCE 'intkey', NATIVE_TYPE 'int4'),
    objectvalue clob OPTIONS(NAMEINSOURCE 'objectvalue', NATIVE_TYPE 'text'))
  OPTIONS(NAMEINSOURCE 'smalla');

> Query:
SELECT * FROM smalla

> Java code:
Connection con = org.teiid.jdbc.TeiidDriver.getInstance().connect("jdbc:teiid:test@mm://localhost:31000", info);
ResultSet rs = con.createStatement().executeQuery("select * from source_pg.smalla");
rs.next();
LOG.info("CLOB: {}", rs.getClob(2).getClass());
LOG.info("CLOB: {}", rs.getClob(2).getSubString(1, 1));
LOG.info("CLOB: {}", rs.getClob(2).getSubString(1, 0));
LOG.info("CLOB: {}", rs.getClob(2).getSubString(1, -1));
con.close();

> Output:
08:03:44.089 [main] INFO  sandbox.MainClass - CLOB: class org.teiid.core.types.ClobImpl
08:03:44.091 [main] INFO  sandbox.MainClass - CLOB: -24
08:03:44.092 [main] INFO  sandbox.MainClass - CLOB: 
Exception in thread "main" java.sql.SQLException: Invalid length argument to getSubString(): -1
	at org.teiid.core.types.ClobImpl.getSubString(ClobImpl.java:154)
	at sandbox.MainClass.main(MainClass.java:81)

Comment 1 JBoss JIRA Server 2016-02-11 13:31:36 UTC
Steven Hawkins <shawkins> updated the status of jira TEIID-3971 to Resolved

Comment 2 Juraj Duráni 2016-02-11 14:16:33 UTC
Setting 'blocker' to ? because JIRA is blocker.

Comment 3 JBoss JIRA Server 2016-06-08 12:00:44 UTC
Steven Hawkins <shawkins> updated the status of jira TEIID-3971 to Closed


Note You need to log in before you can comment on or make changes to this bug.