Bug #57183 | SQLException: Parameter index is out of range | ||
---|---|---|---|
Submitted: | 1 Oct 2010 19:01 | Modified: | 29 Apr 2013 8:49 |
Reporter: | Mike Norman | Email Updates: | |
Status: | Can't repeat | Impact on me: | |
Category: | Connector / J | Severity: | S3 (Non-critical) |
Version: | 5.1.13 | OS: | Any |
Assigned to: | Alexander Soklakov | CPU Architecture: | Any |
[1 Oct 2010 19:01]
Mike Norman
[1 Oct 2010 19:02]
Mike Norman
I'm not sure about the severity - I don't have any workarounds other than to use an older (not supported?) version of the driver, but neither the client nor server hangs or crashes, so I'm reluctant to set this to 'S1'
[4 Oct 2010 17:07]
Tonci Grgin
Hi Mike and thanks for your report. Can you please attach complete test case along with connection string so I can check. Does this happen for underprivileged user only? Can you check if PARAMS table is in your I__S?
[4 Oct 2010 20:46]
Mike Norman
testcase
Attachment: Test57183.java (application/unregisterd-mime-type-to-avoid-ie-mime-sniffing, text), 8.57 KiB.
[4 Oct 2010 20:56]
Mike Norman
To run the testcase you will need a recent version of EclipseLink (the RI for JPA/EJB3). An installer-zip can be found at: http://www.eclipse.org/downloads/download.php?file=/rt/eclipselink/releases/2.1.1/eclipsel... Extract the following files from the installer: - eclipselink.jar - eclipselink-dbwsutils.jar - javax.wsdl_1.6.2.v200806030405.jar and compile the test.Test57183 class to some tempdir To run the testcase: propmt>java -classpath {path_to}/eclipselink.jar:\ {path_to}/eclipselink-dbwsutils.jar:\ {path_to}/javax.wsdl_1.6.2.v200806030405.jar:\ {path_to}/tempdir:\ {path_to}/mysql-connector-java-5.1.13-bin.jar \ -Ddb.user={user} -Ddb.pwd={passwd} -Ddb.url={url} test.Test57183 The expected output will be something like: [EL Fine]: 2010-10-04 16:23:33.457--DatabaseSessionImpl(32189467)--Connection(10272075)--Thread(Thread[main,5,main])--{ CALL emp.InOutArgsSP(?, ?, ?) } bind => [yuck, => U, => V] [EL Fine]: 2010-10-04 16:23:33.489--DatabaseSessionImpl(32189467)--Thread(Thread[main,5,main])--SELECT 1 [EL Warning]: 2010-10-04 16:23:33.504--DatabaseSessionImpl(32189467)--Thread(Thread[main,5,main])--Exception [EclipseLink-4002] (Eclipse Persistence Services - @VERSION@.@QUALIFIER@): org.eclipse.persistence.exceptions.DatabaseException Internal Exception: java.sql.SQLException: Parameter index of 2 is out of range (1, 0) Error Code: 0 Call: { CALL emp.InOutArgsSP(?, ?, ?) } bind => [yuck, => U, => V] Query: ValueReadQuery() bug 57183 strikes again! When the older 5.1.7 driver jar is used, the test passes.
[4 Oct 2010 23:14]
Tonci Grgin
Mike, I'm sorry to knit-pick but can you make a standalone test case? I can not justify involving 3rd party SW (EclipseLink) into analysis.
[5 Oct 2010 15:38]
Mike Norman
simple test case
Attachment: Test57183b.java (application/unregisterd-mime-type-to-avoid-ie-mime-sniffing, text), 2.45 KiB.
[5 Oct 2010 15:45]
Mike Norman
I have uploaded a 'b' version of the test.Test57183 class, stripping away all traces of EclipseLink. In order to further simplify it, I took out the part where the Stored Procedure is created. The issue boils down to line 51: CallableStatement cStmt = conn.prepareCall("{ CALL " + STORED_PROC + "(?, ?, ?) }"); When I run the above code under either the 5.1.7 or 5.1.13 driver, everything works. However, if the CALL stanza includes the name of the current database schema: CallableStatement cStmt = conn.prepareCall("{ CALL emp." + STORED_PROC + "(?, ?, ?) }"); I get an "SQLState(42000) vendor code(1142)" error - SELECT command denied to user 'user'@'localhost' for table 'proc' The difference being that the 5.1.7 driver continued execution regardless of the error; the 5.1.13 stops and throws a second error: Parameter index of 2 is out of range (1, 0) I tried this on the nightly build of Connector/J - the behaviour is the same. Is there some permission setting required to avoid the 1142 error - or is there something that allows the CALL stanza to include the current schema name? Thanks in advance, Mike
[29 Apr 2013 8:46]
Alexander Soklakov
JUnit test case
Attachment: TestBug57183.java (text/x-java), 1.42 KiB.
[29 Apr 2013 8:49]
Alexander Soklakov
Hi Mike, I was not able to reproduce the error (see my testcase) and there is no feedback since Oct 2010. So I close this report as Can't repeat. Please, feel free to reopen it if the problem still exists with current driver version.