package org.jacorb.test.orb.policies; import org.jacorb.test.ComplexTimingServer; import org.jacorb.test.ComplexTimingServerHelper; import org.omg.PortableInterceptor.ForwardRequest; public class ClientInterceptor extends org.omg.CORBA.LocalObject implements org.omg.PortableInterceptor.ClientRequestInterceptor { static boolean forwardRequestThrown = false; static boolean forwardCallMade = false; public String name() { return ""; } public void destroy() { } public void send_request( org.omg.PortableInterceptor.ClientRequestInfo ri ) throws ForwardRequest { if (TestConfig.fwdReqPoint == TestConfig.SEND_REQ && !forwardRequestThrown) { forwardRequestThrown = true; /** * Wait a while to cause the timeout to expire */ try { Thread.sleep (200); } catch (InterruptedException ie) { } throw new ForwardRequest (TestConfig.fwd); } else if (TestConfig.fwdReqPoint == TestConfig.CALL_AT_SEND_REQ && !forwardCallMade) { forwardCallMade = true; ComplexTimingServer server = ComplexTimingServerHelper.narrow (TestConfig.fwd); server.operation (432, 50); } } public void send_poll( org.omg.PortableInterceptor.ClientRequestInfo ri ) { } public void receive_reply (org.omg.PortableInterceptor.ClientRequestInfo ri ) { } public void receive_other( org.omg.PortableInterceptor.ClientRequestInfo ri ) throws ForwardRequest { if (TestConfig.fwdReqPoint == TestConfig.REC_OTHER && !forwardRequestThrown ) { forwardRequestThrown = true; /* Just throw the ForwardRequest as the sleep will have taken place on * the server side */ throw new ForwardRequest (TestConfig.fwd); } } public void receive_exception( org.omg.PortableInterceptor.ClientRequestInfo ri ) throws ForwardRequest { if (TestConfig.fwdReqPoint == TestConfig.REC_EX && !forwardRequestThrown) { forwardRequestThrown = true; /** * Wait a while to cause the timeout to expire */ try { Thread.sleep (150); } catch (InterruptedException ie) { } throw new ForwardRequest (TestConfig.fwd); } else if (TestConfig.fwdReqPoint == TestConfig.CALL_AT_REC_EX && !forwardCallMade) { forwardCallMade = true; ComplexTimingServer server = ComplexTimingServerHelper.narrow (TestConfig.fwd); server.operation (432, 100); } } }