[Hibernate-JIRA] Created: (HHH-5742) PersistentSet#iterator() iterates over element which had been removed from set
by Guenther Demetz (JIRA)
PersistentSet#iterator() iterates over element which had been removed from set
------------------------------------------------------------------------------
Key: HHH-5742
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-5742
Project: Hibernate Core
Issue Type: Bug
Components: core
Affects Versions: 3.6.0, 3.5.0-Final
Environment: 3.6.0FINAL, database indipendent (attached testcase based on hsqldb)
Reporter: Guenther Demetz
Priority: Critical
Attachments: TestIterateOverExtraLazyCollectionWithInverseOwner.jar
PRECONDITONS:
-the relation is declared OneToMany with inverse owner (=mappedBy attribute specified)
-the relation is declared extra lazy @LazyCollection (LazyCollectionOption.EXTRA)
BUG: PersistenSet.iterator().next() returns element which previously had been removed from the set
myPersistenSet.remove(obj);
assertFalse(myPersistenSet.iterator().next() == obj);
CAUSE:
PersistentSet#iterator() implementation does differ from PersistentSet#contains() and PersistentSet#size() as it doesn't call the necessary flush() if:
- the set isn't initialized
- the set is declared extra lazy
- the set has queued Operations (hasQueuedOperations == true) to be flushed
Please see attached TESTCASE for more details.
This IMHO is a critical bug, as it could create serious damage to companies using hibernate:
imagine a company cancels a order-position and nevertheless the canceled position is subsequently delivered or/and invoiced to the customer, because the iterator returns the removed element.
Thanks for attention.
--
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
14 years, 10 months
[Hibernate-JIRA] Created: (HHH-5574) HQL ORDER BY descending component is not generated properly; DESC is only applied to the last component column
by Gail Badner (JIRA)
HQL ORDER BY descending component is not generated properly; DESC is only applied to the last component column
---------------------------------------------------------------------------------------------------------------
Key: HHH-5574
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-5574
Project: Hibernate Core
Issue Type: Bug
Components: query-hql
Affects Versions: 3.6.0.CR1, 3.5.6
Reporter: Gail Badner
Assignee: Gail Badner
Fix For: 3.6.x
HQL ORDER BY descending component is not generated properly; DESC is only applied to the last component column.
For example:
HQL: select z.name, z.address from org.hibernate.test.hql.Zoo z order by z.address DESC, z.name DESC
SQL: select
zoo0_.name as col_0_0_,
zoo0_.street as col_1_0_,
zoo0_.city as col_1_1_,
zoo0_.postalCode as col_1_2_,
zoo0_.country as col_1_3_,
zoo0_.state_prov_id as col_1_4_
from
Zoo zoo0_
order by
zoo0_.street,
zoo0_.city,
zoo0_.postalCode,
zoo0_.country,
zoo0_.state_prov_id DESC,
zoo0_.name DESC
--
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
14 years, 10 months
[Hibernate-JIRA] Created: (HHH-4760) NotAuditedException occurs when auditReader.getRevisions() is called for javassist proxies
by Erik-Berndt Scheper (JIRA)
NotAuditedException occurs when auditReader.getRevisions() is called for javassist proxies
------------------------------------------------------------------------------------------
Key: HHH-4760
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-4760
Project: Hibernate Core
Issue Type: Bug
Components: envers
Affects Versions: 3.5.0-Beta-2
Reporter: Erik-Berndt Scheper
NotAuditedException occurs when auditReader.getRevisions() is called for javassist proxies
In my code I see the following stacktrace if I try to retrieve the revision of a javassist proxy:
org.hibernate.envers.exception.NotAuditedException: nl.ibgroep.bap.model.domain.persoon.Ouder_$$_javassist_1 is not versioned!
at org.hibernate.envers.reader.AuditReaderImpl.getRevisions(AuditReaderImpl.java:126)
at nl.ibgroep.bap.dao.impl.AuditRevisionJpaDaoImpl.getRevisionsFor(AuditRevisionJpaDaoImpl.java:58)
Ouder_$$_javassist_1.class is a Hibernate generated javassist proxy for Ouder.class, which is versioned.
Code:
AuditReader vr = AuditReaderFactory.get(this.entityManager);
Class clazz = persistentObject.getClass();
List<Number> revisionNumbers = vr.getRevisions(clazz, persistentObject.getId());
I am able to work around this issue with the following code:
AuditReader vr = AuditReaderFactory.get(this.entityManager);
Class clazz = persistentObject.getClass();
if (persistentObject instanceof javassist.util.proxy.ProxyObject) {
if (LOGGER.isDebugEnabled()) {
StringBuilder output = new StringBuilder("Found javassist ProxyObject for revision: class= ");
output.append(clazz.getSimpleName());
output.append("; superclass= ").append(clazz.getSuperclass().getSimpleName());
output.append("; interfaces= ").append(Arrays.asList(clazz.getInterfaces()).toString());
LOGGER.debug(output.toString());
}
clazz = clazz.getSuperclass();
}
List<Number> revisionNumbers = vr.getRevisions(clazz, persistentObject.getId());
However, a fix in envers would be greatly appreciated.
--
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
14 years, 10 months
[Hibernate-JIRA] Created: (HHH-1994) Problem with case sensitive column and tables names and Identity mapping with postgreSQL
by Alex Samad (JIRA)
Problem with case sensitive column and tables names and Identity mapping with postgreSQL
----------------------------------------------------------------------------------------
Key: HHH-1994
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-1994
Project: Hibernate3
Type: Bug
Components: core
Versions: 3.1.3
Environment: Hibernate 3.1.3, Java 1.5.0_07 (sun) windos and linux ( 32 & 64 bit). POstgres SQL 8.1 Windows and linux
Reporter: Alex Samad
Whilst trying to insert into a table with a primary key (ID mapping) which has a identity generator. And the columns and/or the table has been defined with case sensitivey ie back ticks.
It fails to get the next serial number and thus fails any inserts.
The problem lies in dialect/PostgreSQLDialect.java
public String getIdentitySelectString(String table, String column, int type) {
return new StringBuffer().append("select currval('")
.append(table)
.append('_')
.append(column)
.append("_seq')")
.toString();
}
table is inclosed in quotes and column is inclosed in quotes which gives a name like
"table"_"Column"_seq - which fails
I would suggest a fix is to test each of table or column for " and if it exist then to strip it of both of table and column and encluse the whole name in "". This mighe break some old code where say the table is coded in case insensitive table name and case sensitive column key.
Sorry not much of a java programmer.
--
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
14 years, 10 months
[Hibernate-JIRA] Created: (HHH-5025) Support caching audit queries using ehcache's DiskStore.
by Brent Worden (JIRA)
Support caching audit queries using ehcache's DiskStore.
--------------------------------------------------------
Key: HHH-5025
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-5025
Project: Hibernate Core
Issue Type: Improvement
Components: envers
Reporter: Brent Worden
Priority: Minor
Enabling audit query caching with a ehcache cache configured as persisting to disk or overflowing to disk. For example,
<defaultCache diskPersistent="true" eternal="false" maxElementsInMemory="1000" maxElementsOnDisk="10000" overflowToDisk="true" timeToIdleSeconds="300" timeToLiveSeconds="3600" />
Results in the following exception:
java.io.NotSerializableException: org.hibernate.envers.entities.RevisionTypeType
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
The lack of needed serialization prohibits the use of ehcache's DiskStore.
--
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
14 years, 10 months