package org.jacorb.test.bugs.bug960; import org.jacorb.orb.ORB; import org.omg.CORBA.Any; import org.omg.CORBA.INTERNAL; import org.omg.CORBA.LocalObject; import org.omg.CORBA.NO_PERMISSION; import org.omg.IOP.Codec; import org.omg.IOP.ServiceContext; import org.omg.IOP.CodecPackage.InvalidTypeForEncoding; import org.omg.PortableInterceptor.ForwardRequest; import org.omg.PortableInterceptor.ServerRequestInfo; import org.omg.PortableInterceptor.ServerRequestInterceptor; final public class ServerRequestInterceptorImpl extends LocalObject implements ServerRequestInterceptor { private String name; private ORB orb; private Codec codec; public ServerRequestInterceptorImpl(String string, ORB orb, Codec codec) { this.name = string; this.orb = orb; this.codec = codec; } public void receive_request(ServerRequestInfo ri) throws ForwardRequest { Any any = orb.create_any(); any.insert_string("some infos"); ServiceContext requestServiceContext; try { requestServiceContext = new ServiceContext(1234, codec.encode(any)); } catch (InvalidTypeForEncoding e) { String message = "Unexpected error while encoding"; throw new INTERNAL(message); } ri.add_reply_service_context(requestServiceContext, true); throw new NO_PERMISSION("my test forces NO_PERMISSION"); } public void receive_request_service_contexts(ServerRequestInfo ri) throws ForwardRequest { } public void send_exception(ServerRequestInfo ri) throws ForwardRequest { } public void send_other(ServerRequestInfo ri) throws ForwardRequest { } public void send_reply(ServerRequestInfo ri) { } public void destroy() { } public String name() { return this.name; } }