-
Notifications
You must be signed in to change notification settings - Fork 2.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
oracle error ORA-01461 when persisting entity with special characters in absurdly specific circumstances #35070
Comments
hey @Felk The error happens if you try to do this with a simple prepared statement. It is only reproducible with a combination of
Quarkus 3.1.0 upgraded the driver to As a workaround, you could downgrade the oracle driver. |
Thanks for narrowing the problem down further! Downgrading the driver back to 21 worked. I couldn't find an official place to report oracle database or jdbc driver bugs to Oracle, so if it's okay with you I'll try posting on their forums with a link to this issue and your reproducer, and close this one as it's not Quarkus' fault. Does that sound good? |
Hey @Felk , LGTM, thanks! Please remember to post a link to your post here, so that others facing the same problem can follow progress on the Oracle side of things :) Closing as this is not strictly caused by Quarkus, and I expect a fix in the Oracle JDBC driver will take some time. |
I've posted on their forum: https://forums.oracle.com/ords/apexds/post/oracle-error-ora-01461-when-persisting-entity-with-special-2651 |
This is properly fixed now in Quarkus due to #41998 which updated the Oracle JDBC driver to 23.4 |
Describe the bug
In some absurdly specific circumstances, trying to persist an entity containing the string
Nêin
will cause the following error when connected to an oracle database:This looks more like a hibernate bug than a quarkus bug, but creating a reproducer with quarkus is way easier, because it requires an actual oracle database, which is trivially availabe using dev services.
Let's say we have this entity:
and a JDBC batch size of at least 2 (e.g. setting
quarkus.hibernate-orm.jdbc.statement-batch-size
to 2). Then, running this code will result in the aforementioned error:The absurd thing isn't even that the error looks completely unrelated, but that these little changes all fix the problem:
instead of the composite form "Nêin" (0x00EA "LATIN SMALL LETTER E WITH CIRCUMFLEX")
e.g. true->false or false->true makes the test pass
I have attached a reproducer project: quarkus-nein-reproducer.zip
Output of
java -version
OpenJDK 64-Bit Server VM Temurin-17.0.2+8 (build 17.0.2+8, mixed mode, sharing)
Quarkus version or git rev
3.2.2.Final (broken starting with 3.1.0, fine with 3.0.4)
Build tool (ie. output of
mvnw --version
orgradlew --version
)Apache Maven 3.8.2
The text was updated successfully, but these errors were encountered: