private void testServiceContext(String op, ServerRequestInfo ri, boolean addContext) { if (op.equals("test_service_context")) { // // Test: get_request_service_context // try { org.omg.IOP.ServiceContext sc = ri.get_request_service_context(REQUEST_CONTEXT_ID.value); TEST(sc.context_id == REQUEST_CONTEXT_ID.value); } catch (BAD_PARAM ex) { TEST(false); } // // Test: get_reply_service_context // org.omg.IOP.ServiceContext sc = null; try { sc = ri.get_reply_service_context(REPLY_CONTEXT_4_ID.value); } catch (BAD_INV_ORDER ex) { TEST(false); } byte[] data = new byte[sc.context_data.length]; System.arraycopy(sc.context_data, 0, data, 0, sc.context_data.length); Any any = null; try { any = cdrCodec_.decode_value(data, ReplyContextHelper.type()); } catch (org.omg.IOP.CodecPackage.FormatMismatch ex) { TEST(false); } catch (org.omg.IOP.CodecPackage.TypeMismatch ex) { TEST(false); } ReplyContext context = ReplyContextHelper.extract(any); TEST(context.data.equals("reply4")); TEST(context.val == 114); if (addContext) { // // Test: add_reply_service_context // context.data = "reply3"; context.val = 103; any = orb_.create_any(); ReplyContextHelper.insert(any, context); try { data = cdrCodec_.encode_value(any); } catch (org.omg.IOP.CodecPackage.InvalidTypeForEncoding ex) { TEST(false); } sc.context_id = REPLY_CONTEXT_3_ID.value; sc.context_data = new byte[data.length]; System.arraycopy(data, 0, sc.context_data, 0, data.length); try { ri.add_reply_service_context(sc, false); } catch (BAD_INV_ORDER ex) { TEST(false); } // // Test: add same context again (no replace) // try { ri.add_reply_service_context(sc, false); TEST(false); } catch (BAD_INV_ORDER ex) { // Expected } // // Test: add same context again (replace) // try { ri.add_reply_service_context(sc, true); } catch (BAD_INV_ORDER ex) { TEST(false); } // // Test: replace context added in receive_request // context.data = "reply4"; context.val = 124; ReplyContextHelper.insert(any, context); try { data = cdrCodec_.encode_value(any); } catch (org.omg.IOP.CodecPackage.InvalidTypeForEncoding ex) { TEST(false); } sc.context_id = REPLY_CONTEXT_4_ID.value; sc.context_data = new byte[data.length]; System.arraycopy(data, 0, sc.context_data, 0, data.length); try { ri.add_reply_service_context(sc, true); } catch (BAD_INV_ORDER ex) { TEST(false); } } } else { try { org.omg.IOP.ServiceContext sc = ri.get_request_service_context(REQUEST_CONTEXT_ID.value); TEST(false); } catch (BAD_PARAM ex) { // Expected } try { org.omg.IOP.ServiceContext sc = ri.get_reply_service_context(REPLY_CONTEXT_1_ID.value); TEST(false); } catch (BAD_PARAM ex) { // Expected } } }