You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by at...@apache.org on 2009/03/27 03:28:15 UTC
svn commit: r758985 - in /portals/jetspeed-2/portal/trunk:
components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/om/folder/proxy/
components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/om/page/proxy/
jetspeed-commons/src/main/jav...
Author: ate
Date: Fri Mar 27 02:28:14 2009
New Revision: 758985
URL: http://svn.apache.org/viewvc?rev=758985&view=rev
Log:
Adding proper Proxy InvocationTargetException unwrapping
Modified:
portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/om/folder/proxy/FolderProxy.java
portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/om/page/proxy/LinkProxy.java
portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/om/page/proxy/PageProxy.java
portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlet/PortletObjectProxy.java
portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/util/DelegatingObjectProxy.java
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/om/folder/proxy/FolderProxy.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/om/folder/proxy/FolderProxy.java?rev=758985&r1=758984&r2=758985&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/om/folder/proxy/FolderProxy.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/om/folder/proxy/FolderProxy.java Fri Mar 27 02:28:14 2009
@@ -17,6 +17,7 @@
package org.apache.jetspeed.om.folder.proxy;
import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.ArrayList;
@@ -294,8 +295,15 @@
throw new RuntimeException("Folder instance is immutable from proxy.");
}
- // attempt to invoke method on delegate Folder instance
- return m.invoke(defaultFolder, args);
+ try
+ {
+ // attempt to invoke method on delegate Folder instance
+ return m.invoke(defaultFolder, args);
+ }
+ catch (InvocationTargetException ite)
+ {
+ throw ite.getTargetException();
+ }
}
/**
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/om/page/proxy/LinkProxy.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/om/page/proxy/LinkProxy.java?rev=758985&r1=758984&r2=758985&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/om/page/proxy/LinkProxy.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/om/page/proxy/LinkProxy.java Fri Mar 27 02:28:14 2009
@@ -17,6 +17,7 @@
package org.apache.jetspeed.om.page.proxy;
import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
@@ -112,8 +113,15 @@
throw new RuntimeException("Link instance is immutable from proxy.");
}
- // attempt to invoke method on delegate Link instance
- return m.invoke(link, args);
+ try
+ {
+ // attempt to invoke method on delegate Link instance
+ return m.invoke(link, args);
+ }
+ catch (InvocationTargetException ite)
+ {
+ throw ite.getTargetException();
+ }
}
/**
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/om/page/proxy/PageProxy.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/om/page/proxy/PageProxy.java?rev=758985&r1=758984&r2=758985&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/om/page/proxy/PageProxy.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/om/page/proxy/PageProxy.java Fri Mar 27 02:28:14 2009
@@ -17,6 +17,7 @@
package org.apache.jetspeed.om.page.proxy;
import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
@@ -126,8 +127,15 @@
throw new RuntimeException("Page instance is immutable from proxy.");
}
- // attempt to invoke method on delegate Page instance
- return m.invoke(page, args);
+ try
+ {
+ // attempt to invoke method on delegate Page instance
+ return m.invoke(page, args);
+ }
+ catch (InvocationTargetException ite)
+ {
+ throw ite.getTargetException();
+ }
}
/**
Modified: portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlet/PortletObjectProxy.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlet/PortletObjectProxy.java?rev=758985&r1=758984&r2=758985&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlet/PortletObjectProxy.java (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlet/PortletObjectProxy.java Fri Mar 27 02:28:14 2009
@@ -17,6 +17,7 @@
package org.apache.jetspeed.portlet;
import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.lang.reflect.Modifier;
@@ -87,6 +88,7 @@
private String customConfigModePortletUniqueName;
private List<Supports> supports;
+ @SuppressWarnings("unchecked")
public static Object createProxy(Object proxiedObject, boolean autoSwitchEditDefaultsModeToEditMode, boolean autoSwitchConfigMode, String customConfigModePortletUniqueName)
{
HashSet<Class> interfaces = new HashSet<Class>();
@@ -146,34 +148,39 @@
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
{
Object result = null;
- boolean handledHere = false;
- Class declaringClass = method.getDeclaringClass();
+ Class<? extends Object> declaringClass = method.getDeclaringClass();
- if (declaringClass == Portlet.class || declaringClass == ResourceServingPortlet.class || declaringClass == EventPortlet.class)
+ try
{
- if (renderMethod.equals(method))
+ if (declaringClass == Portlet.class || declaringClass == ResourceServingPortlet.class || declaringClass == EventPortlet.class)
{
- proxyRender((RenderRequest) args[0], (RenderResponse) args[1]);
- return null;
+ if (renderMethod.equals(method))
+ {
+ proxyRender((RenderRequest) args[0], (RenderResponse) args[1]);
+ return null;
+ }
+ else if (processActionMethod.equals(method))
+ {
+ proxyProcessAction((ActionRequest) args[0], (ActionResponse) args[1]);
+ }
+ else
+ {
+ result = method.invoke(this.portletObject, args);
+ }
}
- else if (processActionMethod.equals(method))
+ else if (declaringClass == SupportsHeaderPhase.class)
{
- proxyProcessAction((ActionRequest) args[0], (ActionResponse) args[1]);
+ result = method.invoke(this.portletObject, args);
}
else
{
- result = method.invoke(this.portletObject, args);
+ result = super.invoke(proxy, method, args);
}
}
- else if (declaringClass == SupportsHeaderPhase.class)
- {
- result = method.invoke(this.portletObject, args);
- }
- else
+ catch (InvocationTargetException ite)
{
- result = super.invoke(proxy, method, args);
+ throw ite.getTargetException();
}
-
return result;
}
Modified: portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/util/DelegatingObjectProxy.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/util/DelegatingObjectProxy.java?rev=758985&r1=758984&r2=758985&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/util/DelegatingObjectProxy.java (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/util/DelegatingObjectProxy.java Fri Mar 27 02:28:14 2009
@@ -17,6 +17,7 @@
package org.apache.jetspeed.util;
import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.HashMap;
@@ -88,14 +89,21 @@
}
}
- if (targetProxyInterface != null)
+ try
{
- ObjectMethodPair targetObjectMethodPair = findDelegatorObjectMethodPair(targetProxyInterface, method);
- return targetObjectMethodPair.method.invoke(targetObjectMethodPair.object, args);
+ if (targetProxyInterface != null)
+ {
+ ObjectMethodPair targetObjectMethodPair = findDelegatorObjectMethodPair(targetProxyInterface, method);
+ return targetObjectMethodPair.method.invoke(targetObjectMethodPair.object, args);
+ }
+ else
+ {
+ return super.invoke(proxy, method, args);
+ }
}
- else
+ catch (InvocationTargetException ite)
{
- return super.invoke(proxy, method, args);
+ throw ite.getTargetException();
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org