Details
-
Type:
Bug
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: 2.0
-
Fix Version/s: 2.1-RC1
-
Component/s: None
-
Labels:None
-
Environment:Windows 2000, Hibernate 2.1.4
-
Number of attachments :
Description
Using the pattern execution(* path.to.class..(..) in a pointcut causes interaction problems with Hibernate collections. In particular, the Hibernate collection believes it is dirty and tries to persist as soon as it is loaded, even though it is not dirty.
From my testing, it appears that the single '*' used to select all classes is the culprit. Specifying a class name, or even a partial class name, does not cause problems. The following all seem to work fine:
execution(* path.to.class.Class.method(..))
execution(* path.to.class.Class.*(..))
execution(* path.to.class.Class*.*(..))
whereas these patterns cause the Hibernate problem:
execution(* path.to.class..(..))
execution(* path.to.class.*.method(..))
I don't understand the internals, but from mailing list messages, it appears the problem has to do with capturing of CGLIB generated inner class's methods.