You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yoko-commits@incubator.apache.org by dm...@apache.org on 2007/03/27 12:09:43 UTC
svn commit: r522881 -
/incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaFaultOutInterceptor.java
Author: dmiddlem
Date: Tue Mar 27 05:09:42 2007
New Revision: 522881
URL: http://svn.apache.org/viewvc?view=rev&rev=522881
Log:
Commit for YOKO-267:
* Update to handle throwing CORBA system exceptions from CXF -> ORB -> CXF
Modified:
incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaFaultOutInterceptor.java
Modified: incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaFaultOutInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaFaultOutInterceptor.java?view=diff&rev=522881&r1=522880&r2=522881
==============================================================================
--- incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaFaultOutInterceptor.java (original)
+++ incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaFaultOutInterceptor.java Tue Mar 27 05:09:42 2007
@@ -64,6 +64,12 @@
import org.apache.yoko.bindings.corba.utils.CorbaUtils;
import org.apache.yoko.wsdl.CorbaConstants;
+import org.omg.CORBA.Any;
+import org.omg.CORBA.ORB;
+import org.omg.CORBA.ServerRequest;
+import org.omg.CORBA.SystemException;
+import org.omg.CORBA.SystemExceptionHelper;
+
public class CorbaFaultOutInterceptor extends AbstractPhaseInterceptor<Message> {
private static final Logger LOG = LogUtils.getL7dLogger(CorbaFaultOutInterceptor.class);
@@ -108,6 +114,11 @@
ex = ex.getCause();
}
+ if (ex instanceof SystemException) {
+ setSystemException(message, ex, orb);
+ return;
+ }
+
//REVISIT, we should not have to depend on WebFault annotation
//Try changing the fault name to the proper mangled java exception classname.
WebFault fault = ex.getClass().getAnnotation(WebFault.class);
@@ -163,6 +174,17 @@
}
+ protected void setSystemException(CorbaMessage message,
+ Throwable ex,
+ ORB orb) {
+ SystemException sysEx = (SystemException)ex;
+ message.setSystemException(sysEx);
+ ServerRequest request = message.getExchange().get(ServerRequest.class);
+ Any exAny = orb.create_any();
+ SystemExceptionHelper.insert(exAny, sysEx);
+ request.set_exception(exAny);
+ }
+
protected void setUserException(CorbaMessage message,
Throwable ex,
QName exIdlType,