aboutsummaryrefslogtreecommitdiffstats
path: root/tests/bugs164/pr260384/C.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/bugs164/pr260384/C.java')
-rw-r--r--tests/bugs164/pr260384/C.java50
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/bugs164/pr260384/C.java b/tests/bugs164/pr260384/C.java
new file mode 100644
index 000000000..64a6c8aa1
--- /dev/null
+++ b/tests/bugs164/pr260384/C.java
@@ -0,0 +1,50 @@
+public class C {
+ SessionFactory sf;
+ HT ht;
+
+ public void m() {
+ LocalSessionFactoryBean lsfb = new LocalSessionFactoryBean() {
+ protected SessionFactory newSessionFactory(Configuration config) throws Exception {
+ return sf;
+ }
+ };
+ final TT tt = new TT();
+ tt.execute(new TransactionCallback() {
+ public Object doInTransaction(TransactionStatus status) {
+ System.out.println("X");
+ ht.execute(new HibernateCallback() {
+ public Object doInHibernate(Session session) {
+ return null;
+ }
+ });
+ tt.execute(new TransactionCallback() {
+ public Object doInTransaction(TransactionStatus status) {
+ System.out.println("X");
+ ht.execute(new HibernateCallback() {
+ public Object doInHibernate(Session session) {
+ return null;
+ }
+ });
+ return null;
+ }
+ });
+ return null;
+ }
+ });
+ }
+}
+
+class TT { public void execute(Object o) {}}
+class LocalSessionFactoryBean {}
+class HT { public void execute(Object o) {}}
+class Session {}
+class TransactionStatus {}
+class SessionFactory {}
+class Configuration {}
+class TransactionCallback {}
+class HibernateCallback {}
+
+
+aspect X {
+ before(): within(*) {}
+}