Workaround PostgreSQL issues in testsuite
-----------------------------------------
Key: HHH-2662
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-2662
Project: Hibernate3
Issue Type: Improvement
Components: testsuite
Environment: PostgreSQL
Reporter: Steve Ebersole
Assignee: Steve Ebersole
Fix For: 3.2.5, 3.3
Currently there are two specific issues with the Hibernate test suite running on
PostgreSQL which requires specific work-arounds. Note that both of these really are bugs
in the PostgreSQL driver/backend. But I'd like to not keep getting spammed from CC
builds because of this ;)
1) unspecified primitive char values. java initializes these as '\0'. For char
values mapped via CharacterType, we then take that and bind it to the PS as a string
(setString). The problem is that the PostgreSQL backend is all C, where '\0' has
special meaning (it used as the "string terminator" character). Anyway, the
driver/backend do not handle this value even though it is in fact a valid java character.
The workaround is to convert these to non-primitive java.lang.Character and set to null.
2) I dont even know how to categorize this one yet really. Its a strange issue in regards
to transaction state maintained by the driver/connection in autocommit scenarios. This
has an interesting manifestation in the Hibernate testsuite. Say I have two test methods,
testA and testB. testA executes first, followed by testB. testA is explicitly checking
some exception condition and is using auto-commit. So the test "passes" (by the
exception occurring and being caught/handled). The connection is returned to the pool.
Next testB starts, and it is using explicit transactions. It fails. The reason for the
failure is a driver error: [ERROR: current transaction is aborted, commands ignored until
end of transaction block]. The cause is because the connection did not "clean itself
up" after the last test. The work around here is to use explicit transactions in
testA...
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira