Details
Description
I get the following error
ORA-24816: Expanded non LONG bind data supplied after actual LONG or LOB column
on one of our queries.
The Entity I am trying to write is relatively complicated (includes @Embedded and inheritance), but for legal reasons I am not allowed to disclose the code.
What seems to happen is, that the not all CLOB columns are updated at the end of the update statement.
From logs I see:
databaseProductName: Oracle
databaseProductVersion: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
Using dictionary class "org.apache.openjpa.jdbc.sql.OracleDictionary" (Oracle Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
I reproduced the bug using all of Oracle driver 12.1.0.2, 12.2.0.1 and 18.3.
Unfortunately I cannot downgrade further then version 2.4.0, since our codebase uses Java8 features.
Hibernate does not show the described behavior, neither does the same code on PostgreSQL.
I am happy to help debug and fix the issue, but I'd need some guidance (i.e. where to look).
EDIT: It turns out this issue is very easily reproducible. I created a minimal project doing so at https://github.com/j-be/test-openjpa-2778. No inheritance or @Embedded involved.
EDIT: Using the test project I can trace it back as far as OpenJPA 2.1.0. 2.0.1 does not seem to be affected, I get a bunch of enhancement exceptions, so not sure whether that is a valid testcase.