1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.jetspeed.util.interceptors;
18
19 import org.aopalliance.intercept.MethodInterceptor;
20 import org.aopalliance.intercept.MethodInvocation;
21 import org.apache.jetspeed.page.impl.DatabasePageManagerCache;
22
23 /***
24 * Aspect that will attempt to rollback cache entries upon Page Manager failures
25 *
26 * @author <a href="mailto:david@bluesunrise.com">David Sean Taylor</a>
27 */
28 public class PageManagerInterceptor implements MethodInterceptor
29 {
30
31 /*** Serialization version identifier */
32 private static final long serialVersionUID = -1316279974504594833L;
33
34 /***
35 * Encloses <code>super.invoke()</code> in a try/catch block, where the
36 * catch block contains additional retry logic.
37 */
38 public Object invoke(MethodInvocation invocation) throws Throwable
39 {
40 try
41 {
42 return invocation.proceed();
43 }
44 catch (Exception exp)
45 {
46 DatabasePageManagerCache.rollbackTransactions();
47 throw exp;
48 }
49 }
50
51 }