From 3e5ad8567cf854be1b8a2bce9574e1d24619b5ea Mon Sep 17 00:00:00 2001 From: Neil Richards Date: Mon, 24 Aug 2015 17:06:16 +0100 Subject: [PATCH] Refactored to use modern Java syntax and idiom --- .../java/org/apache/yoko/orb/OB/Client.java | 2 +- .../org/apache/yoko/orb/OB/ClientManager.java | 214 ++++------- .../apache/yoko/orb/OB/CollocatedClient.java | 16 +- .../org/apache/yoko/orb/OB/DowncallStub.java | 333 ++++++++---------- .../org/apache/yoko/orb/OB/GIOPClient.java | 18 +- 5 files changed, 233 insertions(+), 350 deletions(-) diff --git a/yoko-core/src/main/java/org/apache/yoko/orb/OB/Client.java b/yoko-core/src/main/java/org/apache/yoko/orb/OB/Client.java index 5cc1af933..3cab63b09 100644 --- a/yoko-core/src/main/java/org/apache/yoko/orb/OB/Client.java +++ b/yoko-core/src/main/java/org/apache/yoko/orb/OB/Client.java @@ -119,7 +119,7 @@ public abstract DowncallEmitter startDowncall(Downcall down, // // Checks whether this client is equal to another client // - public abstract boolean equal(Client clt); + public abstract boolean matches(Client clt); // // Force connection establishment diff --git a/yoko-core/src/main/java/org/apache/yoko/orb/OB/ClientManager.java b/yoko-core/src/main/java/org/apache/yoko/orb/OB/ClientManager.java index 20e6405b1..644ba0114 100644 --- a/yoko-core/src/main/java/org/apache/yoko/orb/OB/ClientManager.java +++ b/yoko-core/src/main/java/org/apache/yoko/orb/OB/ClientManager.java @@ -16,16 +16,14 @@ */ package org.apache.yoko.orb.OB; - -import java.util.logging.Level; + +import java.util.Arrays; +import java.util.Vector; import java.util.logging.Logger; -import org.apache.yoko.orb.OB.CONNECTION_REUSE_POLICY_ID; -import org.apache.yoko.orb.OB.ConnectionReusePolicy; -import org.apache.yoko.orb.OB.ConnectionReusePolicyHelper; -import org.apache.yoko.orb.OB.PROTOCOL_POLICY_ID; -import org.apache.yoko.orb.OB.ProtocolPolicy; -import org.apache.yoko.orb.OB.ProtocolPolicyHelper; +import org.apache.yoko.orb.OCI.ConnectorInfo; +import org.omg.CORBA.Policy; +import org.omg.IOP.IOR; import org.omg.PortableServer.POAManagerPackage.State; public final class ClientManager { @@ -40,12 +38,12 @@ public final class ClientManager { // // All clients // - private java.util.Vector allClients_ = new java.util.Vector(); + private Vector allClients_ = new Vector<>(); // // All reusable clients // - private java.util.Vector reusableClients_ = new java.util.Vector(); + private Vector reusableClients_ = new Vector<>(); // // The concurrency model with which new Clients are created @@ -84,11 +82,7 @@ synchronized void destroy() { // // Destroy all clients // - java.util.Enumeration e = allClients_.elements(); - while (e.hasMoreElements()) { - Client client = (Client) e.nextElement(); - client.destroy(false); - } + for (Client c : allClients_) c.destroy(false); // // Reset internal data @@ -114,8 +108,7 @@ public void setORBInstance(ORBInstance instance) { // // Get a list of ClientProfilePairs for an IOR and a list of policies // - public synchronized java.util.Vector getClientProfilePairs( - org.omg.IOP.IOR ior, org.omg.CORBA.Policy[] policies) { + public synchronized Vector getClientProfilePairs(IOR ior, Policy[] policies) { Assert._OB_assert(ior.type_id != null); // @@ -135,18 +128,15 @@ public synchronized java.util.Vector getClientProfilePairs( org.apache.yoko.orb.OB.MinorCodes.MinorORBDestroyed, org.omg.CORBA.CompletionStatus.COMPLETED_NO); } - + // // Find out whether private clients are requested // boolean privateClients = false; - for (int i = 0; i < policies.length; i++) { - if (policies[i].policy_type() == CONNECTION_REUSE_POLICY_ID.value) { - ConnectionReusePolicy p = ConnectionReusePolicyHelper.narrow(policies[i]); - if (p.value() == false) { - privateClients = true; - } + for (Policy pol : policies) { + if (pol.policy_type() == CONNECTION_REUSE_POLICY_ID.value) { + privateClients = !!!(ConnectionReusePolicyHelper.narrow(pol).value()); break; } } @@ -155,9 +145,9 @@ public synchronized java.util.Vector getClientProfilePairs( // Get the protocol policy, if any // ProtocolPolicy protocolPolicy = null; - for (int i = 0; i < policies.length; i++) { - if (policies[i].policy_type() == PROTOCOL_POLICY_ID.value) { - protocolPolicy = ProtocolPolicyHelper.narrow(policies[i]); + for (Policy pol : policies) { + if (pol.policy_type() == PROTOCOL_POLICY_ID.value) { + protocolPolicy = ProtocolPolicyHelper.narrow(pol); break; } } @@ -166,44 +156,39 @@ public synchronized java.util.Vector getClientProfilePairs( // check whether the BiDir policy is enabled // boolean enableBidir = false; - for (int i = 0; i < policies.length; i++) { - if (policies[i].policy_type() == org.omg.BiDirPolicy.BIDIRECTIONAL_POLICY_TYPE.value) { + for (Policy pol : policies) { + if (pol.policy_type() == org.omg.BiDirPolicy.BIDIRECTIONAL_POLICY_TYPE.value) { org.omg.BiDirPolicy.BidirectionalPolicy p = org.omg.BiDirPolicy.BidirectionalPolicyHelper - .narrow(policies[i]); + .narrow(pol); if (p.value() == org.omg.BiDirPolicy.BOTH.value) { enableBidir = true; } } } - java.util.Vector pairs = new java.util.Vector(); + Vector pairs = new Vector<>(); // // First try to create CollocatedClients // org.apache.yoko.orb.OBPortableServer.POAManagerFactory pmFactory = orbInstance_.getPOAManagerFactory(); - org.omg.PortableServer.POAManager[] managers = pmFactory.list(); - - for (int i = 0; i < managers.length; i++) { + for (org.omg.PortableServer.POAManager mgr : pmFactory.list()) { try { - org.apache.yoko.orb.OCI.Acceptor[] acceptors = ((org.apache.yoko.orb.OBPortableServer.POAManager) managers[i]) - .get_acceptors(); - boolean local = false; - for (int j = 0; j < acceptors.length && !local; j++) { - org.apache.yoko.orb.OCI.ProfileInfo[] localProfileInfos = acceptors[j].get_local_profiles(ior); + for (org.apache.yoko.orb.OCI.Acceptor acceptor : ((org.apache.yoko.orb.OBPortableServer.POAManager)mgr).get_acceptors()) { + org.apache.yoko.orb.OCI.ProfileInfo[] localProfileInfos = acceptor.get_local_profiles(ior); if (localProfileInfos.length > 0) { local = true; } } - // we can get into hang situations if we return a collocated server for an - // inactive POA. This can happen with the RootPOA, which is generally not activated. - if (local && managers[i].get_state() == State.ACTIVE) { + // we can get into hang situations if we return a collocated server for an + // inactive POA. This can happen with the RootPOA, which is generally not activated. + if (local && mgr.get_state() == State.ACTIVE) { // // Retrieve the CollocatedServer from the POAManager // - org.apache.yoko.orb.OBPortableServer.POAManager_impl manager = (org.apache.yoko.orb.OBPortableServer.POAManager_impl) managers[i]; + org.apache.yoko.orb.OBPortableServer.POAManager_impl manager = (org.apache.yoko.orb.OBPortableServer.POAManager_impl) mgr; CollocatedServer collocatedServer = manager._OB_getCollocatedServer(); // @@ -215,11 +200,10 @@ public synchronized java.util.Vector getClientProfilePairs( Client client = new CollocatedClient(collocatedServer, concModel_, conv); allClients_.addElement(client); - org.apache.yoko.orb.OCI.ProfileInfo[] profileInfos = client.getUsableProfiles(ior, policies); - for (int j = 0; j < profileInfos.length; j++) { + for (org.apache.yoko.orb.OCI.ProfileInfo profileInfo : client.getUsableProfiles(ior, policies)) { ClientProfilePair pair = new ClientProfilePair(); pair.client = client; - pair.profile = profileInfos[j]; + pair.profile = profileInfo; pairs.addElement(pair); } @@ -227,8 +211,7 @@ public synchronized java.util.Vector getClientProfilePairs( // TODO: Introduce reusable CollocatedClients? // } - } catch (org.omg.PortableServer.POAManagerPackage.AdapterInactive ex) { - // Ignore + } catch (org.omg.PortableServer.POAManagerPackage.AdapterInactive ignored) { } } @@ -237,8 +220,7 @@ public synchronized java.util.Vector getClientProfilePairs( // clients which are usable for the given IOR and policies // if (!privateClients) { - for (int i = 0; i < reusableClients_.size(); i++) { - Client reusableClient = (Client) reusableClients_.elementAt(i); + for (Client reusableClient : reusableClients_) { // // Skip any client whose protocol is not present in the @@ -246,19 +228,15 @@ public synchronized java.util.Vector getClientProfilePairs( // if (protocolPolicy != null) { org.apache.yoko.orb.OCI.ConnectorInfo info = reusableClient.connectorInfo(); - if (info != null) { - if (!protocolPolicy.contains(info.id())) { - continue; - } + if (info != null && !protocolPolicy.contains(info.id())) { + continue; } } - org.apache.yoko.orb.OCI.ProfileInfo[] profileInfos = reusableClient - .getUsableProfiles(ior, policies); - for (int j = 0; j < profileInfos.length; j++) { + for (org.apache.yoko.orb.OCI.ProfileInfo profileInfo : reusableClient.getUsableProfiles(ior, policies)) { ClientProfilePair pair = new ClientProfilePair(); pair.client = reusableClient; - pair.profile = profileInfos[j]; + pair.profile = profileInfo; pairs.addElement(pair); } } @@ -267,30 +245,22 @@ public synchronized java.util.Vector getClientProfilePairs( // // Finally, create new GIOPClients for all connectors we can get // - org.apache.yoko.orb.OCI.ConFactoryRegistry conFactoryRegistry = orbInstance_ - .getConFactoryRegistry(); - org.apache.yoko.orb.OCI.ConFactory[] factories = conFactoryRegistry - .get_factories(); - for (int i = 0; i < factories.length; i++) { - org.apache.yoko.orb.OCI.Connector[] connectors = factories[i] - .create_connectors(ior, policies); - for (int j = 0; j < connectors.length; j++) { + org.apache.yoko.orb.OCI.ConFactoryRegistry conFactoryRegistry = orbInstance_.getConFactoryRegistry(); + for (org.apache.yoko.orb.OCI.ConFactory factory : conFactoryRegistry.get_factories()) { + for (org.apache.yoko.orb.OCI.Connector connector : factory.create_connectors(ior, policies)) { // // Skip any connector whose protocol is not present in the // protocol list // - if (protocolPolicy != null) - { - if (!protocolPolicy.contains(connectors[j].id())) { - continue; - } + if (protocolPolicy != null && !protocolPolicy.contains(connector.id())) { + continue; } // // Get all usable profiles // - org.apache.yoko.orb.OCI.ProfileInfo[] profileInfos = connectors[j].get_usable_profiles(ior, policies); - Assert._OB_assert(profileInfos.length >= 1); + org.apache.yoko.orb.OCI.ProfileInfo[] profileInfos = connector.get_usable_profiles(ior, policies); + Assert._OB_assert(profileInfos.length != 0); // // Create a new GIOPClient for each usable profile, and set @@ -298,25 +268,23 @@ public synchronized java.util.Vector getClientProfilePairs( // clients that are equivalent to other clients we already // have. // - for (int k = 0; k < profileInfos.length; k++) { - CodeConverters conv = CodeSetUtil.getCodeConverters( - orbInstance_, profileInfos[k]); + for (org.apache.yoko.orb.OCI.ProfileInfo profileInfo: profileInfos) { + CodeConverters conv = CodeSetUtil.getCodeConverters(orbInstance_, profileInfo); - Client client = new GIOPClient(orbInstance_, connectors[j], - concModel_, conv, enableBidir); + Client newClient = new GIOPClient(orbInstance_, connector, concModel_, conv, enableBidir); if (!pairs.isEmpty()) { - int l; + boolean matched = false; - for (l = 0; l < pairs.size(); l++) { - ClientProfilePair pair = (ClientProfilePair) pairs.elementAt(l); - if (pair.client.equal(client)) { + for (ClientProfilePair pair : pairs) { + if (pair.client.matches(newClient)) { + matched = true; break; } } - if (l != pairs.size()) { - client.destroy(false); + if (matched) { + newClient.destroy(false); continue; } } @@ -324,17 +292,15 @@ public synchronized java.util.Vector getClientProfilePairs( // // Add the new client to the list of all clients // - allClients_.addElement(client); + allClients_.addElement(newClient); // // Add client/profile pairs // - org.apache.yoko.orb.OCI.ProfileInfo[] clientProfileInfos = client - .getUsableProfiles(ior, policies); - for (int l = 0; l < clientProfileInfos.length; l++) { + for (org.apache.yoko.orb.OCI.ProfileInfo clientProfileInfo : newClient.getUsableProfiles(ior, policies)) { ClientProfilePair pair = new ClientProfilePair(); - pair.client = client; - pair.profile = clientProfileInfos[l]; + pair.client = newClient; + pair.profile = clientProfileInfo; pairs.addElement(pair); } @@ -343,7 +309,7 @@ public synchronized java.util.Vector getClientProfilePairs( // client to the list of existing reusable clients // if (!privateClients) { - reusableClients_.addElement(client); + reusableClients_.addElement(newClient); } } } @@ -359,15 +325,13 @@ public synchronized java.util.Vector getClientProfilePairs( if (!pairs.isEmpty() && protocolPolicy != null) { String[] protocols = protocolPolicy.value(); - java.util.Vector newPairs = new java.util.Vector(); + Vector newPairs = new Vector<>(); // // First, add any pairs whose clients do not have ConnectorInfo // - for (int i = 0; i < pairs.size(); i++) { - ClientProfilePair pair = (ClientProfilePair) pairs.elementAt(i); - org.apache.yoko.orb.OCI.ConnectorInfo info = pair.client.connectorInfo(); - if (info == null) { + for (ClientProfilePair pair : pairs) { + if (pair.client.connectorInfo() == null) { newPairs.addElement(pair); } } @@ -375,14 +339,11 @@ public synchronized java.util.Vector getClientProfilePairs( // // Next, add the pairs in the order specified by the policy // - for (int i = 0; i < protocols.length; i++) { - for (int j = 0; j < pairs.size(); j++) { - ClientProfilePair pair = (ClientProfilePair) pairs.elementAt(j); - org.apache.yoko.orb.OCI.ConnectorInfo info = pair.client.connectorInfo(); - if (info != null) { - if (protocols[i].equals(info.id())) { - newPairs.addElement(pair); - } + for (String protocol : protocols) { + for (ClientProfilePair pair : pairs) { + ConnectorInfo info = pair.client.connectorInfo(); + if (info != null && protocol.equals(info.id())) { + newPairs.addElement(pair); } } } @@ -405,8 +366,7 @@ public synchronized java.util.Vector getClientProfilePairs( // // Increment the usage count on all clients // - for (int i = 0; i < pairs.size(); i++) { - ClientProfilePair pair = (ClientProfilePair) pairs.elementAt(i); + for (ClientProfilePair pair : pairs) { pair.client.incUsage(); } return pairs; @@ -437,37 +397,21 @@ public synchronized void releaseClient(Client client, boolean terminate) { boolean inUse = client.decUsage(); if (!inUse) { - int i; - - for (i = 0; i < reusableClients_.size(); i++) { - Client c = (Client) reusableClients_.elementAt(i); - if (c == client) { - reusableClients_.removeElementAt(i); - break; - } - } + reusableClients_.remove(client); - for (i = 0; i < allClients_.size(); i++) { - Client c = (Client) allClients_.elementAt(i); - if (c == client) { - client.destroy(terminate); - allClients_.removeElementAt(i); - return; - } + if (allClients_.remove(client)) { + client.destroy(terminate); + } else { + Assert._OB_assert("Release called on unknown client"); } - - Assert._OB_assert("Release called on unknown client"); } } public boolean equivalent(org.omg.IOP.IOR ior1, org.omg.IOP.IOR ior2) { - org.apache.yoko.orb.OCI.ConFactoryRegistry conFactoryRegistry = orbInstance_ - .getConFactoryRegistry(); + org.apache.yoko.orb.OCI.ConFactoryRegistry conFactoryRegistry = orbInstance_.getConFactoryRegistry(); - org.apache.yoko.orb.OCI.ConFactory[] factories = conFactoryRegistry - .get_factories(); - for (int i = 0; i < factories.length; i++) { - if (!factories[i].equivalent(ior1, ior2)) { + for (org.apache.yoko.orb.OCI.ConFactory factory : conFactoryRegistry.get_factories()) { + if (!!!factory.equivalent(ior1, ior2)) { return false; } } @@ -475,14 +419,6 @@ public boolean equivalent(org.omg.IOP.IOR ior1, org.omg.IOP.IOR ior2) { } public int hash(org.omg.IOP.IOR ior, int maximum) { - org.apache.yoko.orb.OCI.ConFactoryRegistry conFactoryRegistry = orbInstance_ - .getConFactoryRegistry(); - - org.apache.yoko.orb.OCI.ConFactory[] factories = conFactoryRegistry.get_factories(); - int hash = 0; - for (int i = 0; i < factories.length; i++) { - hash ^= factories[i].hash(ior, maximum); - } - return hash % (maximum + 1); + return Arrays.hashCode(orbInstance_.getConFactoryRegistry().get_factories()); } } diff --git a/yoko-core/src/main/java/org/apache/yoko/orb/OB/CollocatedClient.java b/yoko-core/src/main/java/org/apache/yoko/orb/OB/CollocatedClient.java index 8abd5fa86..d3f26d4c4 100644 --- a/yoko-core/src/main/java/org/apache/yoko/orb/OB/CollocatedClient.java +++ b/yoko-core/src/main/java/org/apache/yoko/orb/OB/CollocatedClient.java @@ -88,18 +88,10 @@ public DowncallEmitter startDowncall(Downcall down, // // Checks whether this client is equal to another client // - public boolean equal(Client cl) { - CollocatedClient client = null; - try { - client = (CollocatedClient) cl; - } catch (ClassCastException ex) { - return false; - } - - if (server_ != client.server_) - return false; - - return true; + public boolean matches(Client other) { + if (!!!(other instanceof CollocatedClient)) return false; + CollocatedClient that = (CollocatedClient) other; + return (this.server_ == that.server_); } // diff --git a/yoko-core/src/main/java/org/apache/yoko/orb/OB/DowncallStub.java b/yoko-core/src/main/java/org/apache/yoko/orb/OB/DowncallStub.java index 9f720af01..ad989ced7 100644 --- a/yoko-core/src/main/java/org/apache/yoko/orb/OB/DowncallStub.java +++ b/yoko-core/src/main/java/org/apache/yoko/orb/OB/DowncallStub.java @@ -19,11 +19,50 @@ import static org.apache.yoko.orb.OCI.GiopVersion.GIOP1_2; +import java.util.Vector; import java.util.logging.Level; import java.util.logging.Logger; -import org.apache.yoko.orb.OB.RETRY_ALWAYS; -import org.apache.yoko.orb.OCI.GiopVersion; +import org.omg.CORBA.BAD_INV_ORDER; +import org.omg.CORBA.BooleanHolder; +import org.omg.CORBA.COMM_FAILURE; +import org.omg.CORBA.CompletionStatus; +import org.omg.CORBA.ExceptionList; +import org.omg.CORBA.NO_RESPONSE; +import org.omg.CORBA.NVList; +import org.omg.CORBA.NamedValue; +import org.omg.CORBA.OBJECT_NOT_EXIST; +import org.omg.CORBA.ORB; +import org.omg.CORBA.Policy; +import org.omg.CORBA.SystemException; +import org.omg.CORBA.TRANSIENT; +import org.omg.CORBA.TypeCode; +import org.omg.CORBA.UserException; +import org.omg.CORBA.portable.ApplicationException; +import org.omg.CORBA.portable.OutputStream; +import org.omg.CORBA.portable.RemarshalException; +import org.omg.GIOP.MessageHeader_1_1; +import org.omg.GIOP.MessageHeader_1_2Helper; +import org.omg.GIOP.MsgType_1_1; +import org.omg.GIOP.RequestHeader_1_2; +import org.omg.GIOP.RequestHeader_1_2Helper; +import org.omg.IOP.INVOCATION_POLICIES; +import org.omg.IOP.IOR; +import org.omg.IOP.ServiceContext; +import org.omg.IOP.ServiceContextListHolder; +import org.omg.MessageRouting.MessageBody; +import org.omg.MessageRouting.PersistentRequest; +import org.omg.MessageRouting.PersistentRequestRouter; +import org.omg.MessageRouting.ReplyDestination; +import org.omg.MessageRouting.ReplyDisposition; +import org.omg.MessageRouting.RequestInfo; +import org.omg.MessageRouting.RequestMessage; +import org.omg.MessageRouting.Router; +import org.omg.MessageRouting.RouterListHolder; +import org.omg.Messaging.PolicyValue; +import org.omg.Messaging.PolicyValueSeqHelper; +import org.omg.Messaging.PolicyValueSeqHolder; +import org.omg.Messaging.ReplyHandler; // // DowncallStub is equivalent to the C++ class OB::MarshalStubImpl @@ -38,9 +77,9 @@ public final class DowncallStub { // // The IOR and the original IOR // - private org.omg.IOP.IOR IOR_; + private IOR IOR_; - private org.omg.IOP.IOR origIOR_; + private IOR origIOR_; // // The list of policies @@ -50,7 +89,7 @@ public final class DowncallStub { // // All client/profile pairs // - private java.util.Vector clientProfilePairs_; + private Vector clientProfilePairs_; // // We need a class to carry the DowncallStub and Downcall across @@ -66,8 +105,7 @@ private class InvocationContext { // Private and protected member implementations // ------------------------------------------------------------------ - private synchronized Client getClientProfilePair( - org.apache.yoko.orb.OCI.ProfileInfoHolder profileInfo) + private synchronized Client getClientProfilePair(org.apache.yoko.orb.OCI.ProfileInfoHolder profileInfo) throws FailureException { // // Lazy initialization of the client/profile pairs @@ -90,10 +128,7 @@ private synchronized Client getClientProfilePair( logger.fine("retry: no profiles available"); } - throw new FailureException(new org.omg.CORBA.TRANSIENT(org.apache.yoko.orb.OB.MinorCodes - .describeTransient(org.apache.yoko.orb.OB.MinorCodes.MinorNoUsableProfileInIOR), - org.apache.yoko.orb.OB.MinorCodes.MinorNoUsableProfileInIOR, - org.omg.CORBA.CompletionStatus.COMPLETED_NO)); + throw new FailureException(new TRANSIENT(org.apache.yoko.orb.OB.MinorCodes.describeTransient(org.apache.yoko.orb.OB.MinorCodes.MinorNoUsableProfileInIOR), org.apache.yoko.orb.OB.MinorCodes.MinorNoUsableProfileInIOR, CompletionStatus.COMPLETED_NO)); } ClientProfilePair clientProfilePair = (ClientProfilePair) clientProfilePairs_.elementAt(0); @@ -108,9 +143,7 @@ private void destroy(boolean terminate) { ClientManager clientManager = orbInstance_.getClientManager(); if (clientManager != null && clientProfilePairs_ != null) { - for (int i = 0; i < clientProfilePairs_.size(); i++) { - ClientProfilePair pair = (ClientProfilePair) clientProfilePairs_ - .elementAt(i); + for (ClientProfilePair pair: clientProfilePairs_) { clientManager.releaseClient(pair.client, terminate); } } @@ -128,8 +161,7 @@ protected void finalize() throws Throwable { // Public member implementations // ------------------------------------------------------------------ - public DowncallStub(ORBInstance orbInstance, org.omg.IOP.IOR ior, - org.omg.IOP.IOR origIOR, RefCountPolicyList policies) { + public DowncallStub(ORBInstance orbInstance, IOR ior, IOR origIOR, RefCountPolicyList policies) { clientProfilePairs_ = null; // @@ -163,8 +195,7 @@ public Downcall createDowncall(String op, boolean resp) PIManager piManager = orbInstance_.getPIManager(); if (piManager.haveClientInterceptors()) { - return new PIDowncall(orbInstance_, client, profile.value, - policies_, op, resp, IOR_, origIOR_, piManager); + return new PIDowncall(orbInstance_, client, profile.value, policies_, op, resp, IOR_, origIOR_, piManager); } else { return new Downcall(orbInstance_, client, profile.value, policies_, op, resp); } @@ -181,47 +212,35 @@ public Downcall createLocateRequestDowncall() throws FailureException { return new Downcall(orbInstance_, client, profile.value, policies_, "_locate", true); } - public Downcall createPIArgsDowncall(String op, boolean resp, - ParameterDesc[] argDesc, ParameterDesc retDesc, - org.omg.CORBA.TypeCode[] exceptionTC) throws FailureException { + public Downcall createPIArgsDowncall(String op, boolean resp, ParameterDesc[] argDesc, ParameterDesc retDesc, TypeCode[] exceptionTC) throws FailureException { org.apache.yoko.orb.OCI.ProfileInfoHolder profile = new org.apache.yoko.orb.OCI.ProfileInfoHolder(); Client client = getClientProfilePair(profile); Assert._OB_assert(client != null); if (!policies_.interceptor) - return new Downcall(orbInstance_, client, profile.value, policies_, - op, resp); + return new Downcall(orbInstance_, client, profile.value, policies_, op, resp); PIManager piManager = orbInstance_.getPIManager(); if (piManager.haveClientInterceptors()) { - return new PIArgsDowncall(orbInstance_, client, profile.value, - policies_, op, resp, IOR_, origIOR_, piManager, argDesc, - retDesc, exceptionTC); + return new PIArgsDowncall(orbInstance_, client, profile.value, policies_, op, resp, IOR_, origIOR_, piManager, argDesc, retDesc, exceptionTC); } else { - return new Downcall(orbInstance_, client, profile.value, policies_, - op, resp); + return new Downcall(orbInstance_, client, profile.value, policies_, op, resp); } } - public Downcall createPIDIIDowncall(String op, boolean resp, - org.omg.CORBA.NVList args, org.omg.CORBA.NamedValue result, - org.omg.CORBA.ExceptionList exceptions) throws FailureException { + public Downcall createPIDIIDowncall(String op, boolean resp, NVList args, NamedValue result, ExceptionList exceptions) throws FailureException { org.apache.yoko.orb.OCI.ProfileInfoHolder profile = new org.apache.yoko.orb.OCI.ProfileInfoHolder(); Client client = getClientProfilePair(profile); Assert._OB_assert(client != null); if (!policies_.interceptor) - return new Downcall(orbInstance_, client, profile.value, policies_, - op, resp); + return new Downcall(orbInstance_, client, profile.value, policies_, op, resp); PIManager piManager = orbInstance_.getPIManager(); if (piManager.haveClientInterceptors()) { - return new PIDIIDowncall(orbInstance_, client, profile.value, - policies_, op, resp, IOR_, origIOR_, piManager, args, - result, exceptions); + return new PIDIIDowncall(orbInstance_, client, profile.value, policies_, op, resp, IOR_, origIOR_, piManager, args, result, exceptions); } else { - return new Downcall(orbInstance_, client, profile.value, policies_, - op, resp); + return new Downcall(orbInstance_, client, profile.value, policies_, op, resp); } } @@ -229,18 +248,15 @@ public Downcall createPIDIIDowncall(String op, boolean resp, // Marshalling interception points // - public org.apache.yoko.orb.CORBA.OutputStream preMarshal(Downcall down) - throws LocationForward, FailureException { + public org.apache.yoko.orb.CORBA.OutputStream preMarshal(Downcall down) throws LocationForward, FailureException { return down.preMarshal(); } - public void marshalEx(Downcall down, org.omg.CORBA.SystemException ex) - throws LocationForward, FailureException { + public void marshalEx(Downcall down, SystemException ex) throws LocationForward, FailureException { down.marshalEx(ex); } - public void postMarshal(Downcall down) throws LocationForward, - FailureException { + public void postMarshal(Downcall down) throws LocationForward, FailureException { down.postMarshal(); } @@ -260,13 +276,11 @@ public void oneway(Downcall down) throws LocationForward, FailureException { down.oneway(); } - public void deferred(Downcall down) throws LocationForward, - FailureException { + public void deferred(Downcall down) throws LocationForward, FailureException { down.deferred(); } - public void response(Downcall down) throws LocationForward, - FailureException { + public void response(Downcall down) throws LocationForward, FailureException { down.response(); } @@ -278,26 +292,21 @@ public boolean poll(Downcall down) throws LocationForward, FailureException { // Unmarshalling interception points // - public org.apache.yoko.orb.CORBA.InputStream preUnmarshal(Downcall down) - throws LocationForward, FailureException { + public org.apache.yoko.orb.CORBA.InputStream preUnmarshal(Downcall down) throws LocationForward, FailureException { return down.preUnmarshal(); } - public org.apache.yoko.orb.CORBA.InputStream preUnmarshal(Downcall down, - org.omg.CORBA.BooleanHolder uex) throws LocationForward, - FailureException { + public org.apache.yoko.orb.CORBA.InputStream preUnmarshal(Downcall down, BooleanHolder uex) throws LocationForward, FailureException { org.apache.yoko.orb.CORBA.InputStream in = down.preUnmarshal(); uex.value = down.userException(); return in; } - public void unmarshalEx(Downcall down, org.omg.CORBA.SystemException ex) - throws LocationForward, FailureException { + public void unmarshalEx(Downcall down, SystemException ex) throws LocationForward, FailureException { down.unmarshalEx(ex); } - public void postUnmarshal(Downcall down) throws LocationForward, - FailureException { + public void postUnmarshal(Downcall down) throws LocationForward, FailureException { down.postUnmarshal(); } @@ -309,20 +318,18 @@ public String unmarshalExceptionId(Downcall down) { return down.unmarshalExceptionId(); } - public void setUserException(Downcall down, org.omg.CORBA.UserException ex, - String exId) { + public void setUserException(Downcall down, UserException ex, String exId) { down.setUserException(ex, exId); } - public void setUserException(Downcall down, org.omg.CORBA.UserException ex) { + public void setUserException(Downcall down, UserException ex) { down.setUserException(ex); } // // Handle a FailureException // - public synchronized void handleFailureException(Downcall down, - FailureException ex) throws FailureException { + public synchronized void handleFailureException(Downcall down, FailureException ex) throws FailureException { // // Only called if there is really a failure // @@ -335,24 +342,21 @@ public synchronized void handleFailureException(Downcall down, Client client = down.client(); org.apache.yoko.orb.OCI.ProfileInfo profile = down.profileInfo(); - for (int i = 0; i < clientProfilePairs_.size(); i++) { - ClientProfilePair pair = (ClientProfilePair) clientProfilePairs_ - .elementAt(i); - if (pair.client == client && pair.profile == profile) { - ClientManager clientManager = orbInstance_.getClientManager(); - - // - // Make sure the ORB has not been destroyed - // - if (clientManager == null) - throw new org.omg.CORBA.BAD_INV_ORDER( - MinorCodes - .describeBadInvOrder(org.apache.yoko.orb.OB.MinorCodes.MinorShutdownCalled), + final ClientManager clientManager = orbInstance_.getClientManager(); + // + // Make sure the ORB has not been destroyed + // + if (clientManager == null) + throw new BAD_INV_ORDER( + MinorCodes.describeBadInvOrder( + org.apache.yoko.orb.OB.MinorCodes.MinorShutdownCalled), org.apache.yoko.orb.OB.MinorCodes.MinorShutdownCalled, - org.omg.CORBA.CompletionStatus.COMPLETED_NO); + CompletionStatus.COMPLETED_NO); + for (ClientProfilePair pair : clientProfilePairs_) { + if (pair.client == client && pair.profile == profile) { clientManager.releaseClient(pair.client, false); - clientProfilePairs_.removeElementAt(i); + clientProfilePairs_.remove(pair); break; } } @@ -362,10 +366,8 @@ public synchronized void handleFailureException(Downcall down, // try { throw ex.exception; - } catch (org.omg.CORBA.COMM_FAILURE e) { - } catch (org.omg.CORBA.TRANSIENT e) { - } catch (org.omg.CORBA.NO_RESPONSE e) { - } catch (org.omg.CORBA.SystemException e) { + } catch (COMM_FAILURE|TRANSIENT|NO_RESPONSE forceRetry) { + } catch (SystemException systemException) { throw ex; // Not "throw e;"! } @@ -373,8 +375,7 @@ public synchronized void handleFailureException(Downcall down, // We can't retry if RETRY_STRICT or RETRY_NEVER is set and the // completion status is not COMPLETED_NO // - if (policies_.retry.mode != RETRY_ALWAYS.value - && ex.exception.completed != org.omg.CORBA.CompletionStatus.COMPLETED_NO) { + if (policies_.retry.mode != RETRY_ALWAYS.value && ex.exception.completed != CompletionStatus.COMPLETED_NO) { throw ex; } @@ -389,7 +390,6 @@ public synchronized void handleFailureException(Downcall down, // // OK, let's continue with the next profile // - CoreTraceLevels coreTraceLevels = orbInstance_.getCoreTraceLevels(); logger.log(Level.FINE, "trying next profile", ex.exception); } @@ -422,7 +422,7 @@ public boolean locate_request() throws LocationForward, FailureException { logger.fine("Twoway invocations not supported, returning true"); return true; } - } catch (org.omg.CORBA.SystemException ex) { + } catch (SystemException ex) { logger.log(Level.FINE, "Exception occurred during locate request", ex); throw new FailureException(ex); } @@ -434,7 +434,7 @@ public boolean locate_request() throws LocationForward, FailureException { postUnmarshal(down); logger.fine("Object located"); return true; - } catch (org.omg.CORBA.OBJECT_NOT_EXIST ex) { + } catch (OBJECT_NOT_EXIST ex) { logger.log(Level.FINE, "Object does not exist", ex); return false; } catch (FailureException ex) { @@ -472,8 +472,7 @@ public org.apache.yoko.orb.OCI.TransportInfo get_oci_transport_info() { // Prepare a request from a portable stub // public org.apache.yoko.orb.CORBA.OutputStream setupRequest( - org.omg.CORBA.Object self, String operation, - boolean responseExpected) throws LocationForward, FailureException { + org.omg.CORBA.Object self, String operation, boolean responseExpected) throws LocationForward, FailureException { while (true) { org.apache.yoko.orb.OB.Downcall downcall = createDowncall( operation, responseExpected); @@ -502,8 +501,7 @@ public org.apache.yoko.orb.CORBA.OutputStream setupRequest( // // public org.apache.yoko.orb.CORBA.OutputStream public org.apache.yoko.orb.OB.CodeConverters setupPollingRequest( - org.omg.IOP.ServiceContextListHolder sclHolder, - org.apache.yoko.orb.CORBA.OutputStreamHolder out) + ServiceContextListHolder sclHolder, org.apache.yoko.orb.CORBA.OutputStreamHolder out) throws FailureException { // // Create buffer to contain out marshalable data @@ -516,8 +514,7 @@ public org.apache.yoko.orb.OB.CodeConverters setupPollingRequest( org.apache.yoko.orb.OCI.ProfileInfoHolder info = new org.apache.yoko.orb.OCI.ProfileInfoHolder(); Client client = getClientProfilePair(info); - out.value = new org.apache.yoko.orb.CORBA.OutputStream(buf, client - .codeConverters(), GIOP1_2); + out.value = new org.apache.yoko.orb.CORBA.OutputStream(buf, client.codeConverters(), GIOP1_2); sclHolder.value = client.getAMIRouterSCL(); @@ -557,28 +554,23 @@ public GIOPOutgoingMessage AMIRouterPreMarshal(String operation, // Client client = getClientProfilePair(info); - out.value = new org.apache.yoko.orb.CORBA.OutputStream(buf, client - .codeConverters(), GIOP1_2); - org.omg.IOP.ServiceContext[] scl = client.getAMIRouterSCL(); + out.value = new org.apache.yoko.orb.CORBA.OutputStream(buf, client.codeConverters(), GIOP1_2); + ServiceContext[] scl = client.getAMIRouterSCL(); - GIOPOutgoingMessage outgoing = new GIOPOutgoingMessage(orbInstance_, - out.value, info.value); + GIOPOutgoingMessage outgoing = new GIOPOutgoingMessage(orbInstance_, out.value, info.value); // // Put the request header into the stream // - outgoing.writeRequestHeader(client.requestId(), operation, - responseExpected, scl); + outgoing.writeRequestHeader(client.requestId(), operation, responseExpected, scl); return outgoing; } - public void AMIRouterPostMarshal(GIOPOutgoingMessage outgoing, - org.apache.yoko.orb.CORBA.OutputStreamHolder out) { + public void AMIRouterPostMarshal(GIOPOutgoingMessage outgoing, org.apache.yoko.orb.CORBA.OutputStreamHolder out) { int pos = out.value._OB_pos(); out.value._OB_pos(0); - outgoing.writeMessageHeader(org.omg.GIOP.MsgType_1_1.Request, false, - pos - 12); + outgoing.writeMessageHeader(MsgType_1_1.Request, false, pos - 12); out.value._OB_pos(pos); // @@ -597,8 +589,8 @@ public void AMIRouterPostMarshal(GIOPOutgoingMessage outgoing, public org.apache.yoko.orb.CORBA.InputStream invoke( org.omg.CORBA.Object self, org.apache.yoko.orb.CORBA.OutputStream out) - throws org.omg.CORBA.portable.ApplicationException, - org.omg.CORBA.portable.RemarshalException, LocationForward, + throws ApplicationException, + RemarshalException, LocationForward, FailureException { // // We should have an InvocationContext associated with the @@ -612,7 +604,7 @@ public org.apache.yoko.orb.CORBA.InputStream invoke( // If the DowncallStub has changed, then remarshal // if (ctx.downcallStub != this) { - throw new org.omg.CORBA.portable.RemarshalException(); + throw new RemarshalException(); } Downcall down = ctx.downcall; @@ -643,7 +635,7 @@ public org.apache.yoko.orb.CORBA.InputStream invoke( // Extract the exception's repository ID // id = down.unmarshalExceptionId(); - } catch (org.omg.CORBA.SystemException ex) { + } catch (SystemException ex) { down.unmarshalEx(ex); } @@ -655,8 +647,7 @@ public org.apache.yoko.orb.CORBA.InputStream invoke( down.setUserException(id); down.postUnmarshal(); - throw new org.omg.CORBA.portable.ApplicationException(id, - in); + throw new ApplicationException(id, in); } else { // // We're using portable stubs, so we'll never @@ -679,7 +670,7 @@ public org.apache.yoko.orb.CORBA.InputStream invoke( // // If we reach this point, then we need to reinvoke // - throw new org.omg.CORBA.portable.RemarshalException(); + throw new RemarshalException(); } public org.omg.CORBA.Object getAMIPollTarget() { @@ -688,15 +679,11 @@ public org.omg.CORBA.Object getAMIPollTarget() { // generated stub, we will call this method to create the target // object for a polling request // - org.apache.yoko.orb.OB.ObjectFactory objectFactory = orbInstance_ - .getObjectFactory(); + org.apache.yoko.orb.OB.ObjectFactory objectFactory = orbInstance_.getObjectFactory(); return objectFactory.createObject(IOR_); } - public org.omg.MessageRouting.PersistentRequest ami_poll_request( - org.omg.CORBA.portable.OutputStream out, String operation, - org.omg.IOP.ServiceContext[] scl) - throws org.omg.CORBA.portable.RemarshalException { + public PersistentRequest ami_poll_request(OutputStream out, String operation, ServiceContext[] scl) throws RemarshalException { // // setup the ORBInstance // @@ -704,8 +691,7 @@ public org.omg.MessageRouting.PersistentRequest ami_poll_request( Assert._OB_assert(out != null); // - // We should have an InvocationContext associated with the - // OutputStream + // We should have an InvocationContext associated with the OutputStream // org.apache.yoko.orb.CORBA.OutputStream o = (org.apache.yoko.orb.CORBA.OutputStream) out; InvocationContext ctx = (InvocationContext) o._OB_invocationContext(); @@ -715,19 +701,18 @@ public org.omg.MessageRouting.PersistentRequest ami_poll_request( // If the DowncallStub has changed, then remarshal // if (ctx.downcallStub != this) - throw new org.omg.CORBA.portable.RemarshalException(); + throw new RemarshalException(); // // Obtain the ORB // - org.omg.CORBA.ORB orb = orbInstance_.getORB(); + ORB orb = orbInstance_.getORB(); Assert._OB_assert(orb != null); // // Obtain the PersistentRequestRouter // - org.omg.MessageRouting.PersistentRequestRouter router = org.apache.yoko.orb.OB.MessageRoutingUtil - .getPersistentRouterFromConfig(orbInstance_); + PersistentRequestRouter router = org.apache.yoko.orb.OB.MessageRoutingUtil.getPersistentRouterFromConfig(orbInstance_); org.apache.yoko.orb.OB.Assert._OB_assert(router != null); // @@ -735,11 +720,10 @@ public org.omg.MessageRouting.PersistentRequest ami_poll_request( // org.apache.yoko.orb.OCI.ProfileInfoHolder info = new org.apache.yoko.orb.OCI.ProfileInfoHolder(); info.value = null; - Client client = null; try { - client = getClientProfilePair(info); + getClientProfilePair(info); } catch (org.apache.yoko.orb.OB.FailureException ex) { - throw new org.omg.CORBA.portable.RemarshalException(); + throw new RemarshalException(); } // @@ -750,23 +734,21 @@ public org.omg.MessageRouting.PersistentRequest ami_poll_request( // // Create the router to_visit list // - org.omg.MessageRouting.RouterListHolder to_visit = new org.omg.MessageRouting.RouterListHolder(); - to_visit.value = new org.omg.MessageRouting.Router[0]; - org.apache.yoko.orb.OB.MessageRoutingUtil.getRouterListFromComponents( - orbInstance_, info.value, to_visit); + RouterListHolder to_visit = new RouterListHolder(); + to_visit.value = new Router[0]; + org.apache.yoko.orb.OB.MessageRoutingUtil.getRouterListFromComponents(orbInstance_, info.value, to_visit); // // Obtain the target objects // - org.apache.yoko.orb.OB.ObjectFactory objectFactory = orbInstance_ - .getObjectFactory(); + org.apache.yoko.orb.OB.ObjectFactory objectFactory = orbInstance_.getObjectFactory(); org.omg.CORBA.Object target = objectFactory.createObject(IOR_); // // Populate the RequestMessage payload // - org.omg.MessageRouting.RequestMessage payload = new org.omg.MessageRouting.RequestMessage(); - // payload.service_contexts = new org.omg.IOP.ServiceContext[0]; + RequestMessage payload = new RequestMessage(); + // payload.service_contexts = new ServiceContext[0]; // // XXX // @@ -781,29 +763,25 @@ public org.omg.MessageRouting.PersistentRequest ami_poll_request( payload.reserved[2] = 0; payload.operation = operation; payload.object_key = new byte[info.value.key.length]; - System.arraycopy(info.value.key, 0, payload.object_key, 0, - info.value.key.length); + System.arraycopy(info.value.key, 0, payload.object_key, 0, info.value.key.length); o._OB_pos(0); org.apache.yoko.orb.OCI.Buffer buf = o._OB_buffer(); - org.omg.MessageRouting.MessageBody messageBody = new org.omg.MessageRouting.MessageBody(); + MessageBody messageBody = new MessageBody(); messageBody.byte_order = false; // Java is always false messageBody.body = new byte[buf.rest_length()]; - System.arraycopy(buf.data(), buf.pos(), messageBody.body, 0, buf - .rest_length()); + System.arraycopy(buf.data(), buf.pos(), messageBody.body, 0, buf.rest_length()); payload.body = messageBody; // // Empty QoS list // - org.omg.CORBA.Policy[] qosList = new org.omg.CORBA.Policy[0]; + Policy[] qosList = new Policy[0]; // // Create a new Persistent request // - org.omg.MessageRouting.PersistentRequest request = router - .create_persistent_request(index, to_visit.value, target, - qosList, payload); + PersistentRequest request = router.create_persistent_request(index, to_visit.value, target, qosList, payload); // // Return the persistent request back to the stub @@ -811,11 +789,7 @@ public org.omg.MessageRouting.PersistentRequest ami_poll_request( return request; } - public boolean ami_callback_request( - org.omg.CORBA.portable.OutputStream out, - org.omg.Messaging.ReplyHandler reply, - org.apache.yoko.orb.OCI.ProfileInfo info) - throws org.omg.CORBA.portable.RemarshalException { + public boolean ami_callback_request(OutputStream out, ReplyHandler reply, org.apache.yoko.orb.OCI.ProfileInfo info) throws RemarshalException { // // We should have an InvocationContext associated with the // OutputStream @@ -828,16 +802,14 @@ public boolean ami_callback_request( // If the DowncallStub has changed, then remarshal // if (ctx.downcallStub != this) - throw new org.omg.CORBA.portable.RemarshalException(); + throw new RemarshalException(); - org.apache.yoko.orb.CORBA.InputStream tmpIn = (org.apache.yoko.orb.CORBA.InputStream) out - .create_input_stream(); + org.apache.yoko.orb.CORBA.InputStream tmpIn = (org.apache.yoko.orb.CORBA.InputStream) out.create_input_stream(); // // Unmarshal the message header // - org.omg.GIOP.MessageHeader_1_1 msgHeader = org.omg.GIOP.MessageHeader_1_2Helper - .read(tmpIn); + MessageHeader_1_1 msgHeader = MessageHeader_1_2Helper.read(tmpIn); // // Check the GIOP version @@ -852,7 +824,7 @@ public boolean ami_callback_request( // // Check the message type // - if (msgHeader.message_type != (byte) org.omg.GIOP.MsgType_1_1._Request) { + if (msgHeader.message_type != (byte) MsgType_1_1._Request) { // // Report error - throw exception // @@ -862,35 +834,32 @@ public boolean ami_callback_request( // // Create and populate a RequestInfo to send to the router // - org.omg.MessageRouting.RequestInfo requestInfo = new org.omg.MessageRouting.RequestInfo(); + RequestInfo requestInfo = new RequestInfo(); // // Unmarshal the request header // - org.omg.GIOP.RequestHeader_1_2 requestHeader = org.omg.GIOP.RequestHeader_1_2Helper - .read(tmpIn); + RequestHeader_1_2 requestHeader = RequestHeader_1_2Helper.read(tmpIn); // // Create and populate a RequestInfo structure to send to the // Router // - org.omg.MessageRouting.RouterListHolder configRouterList = new org.omg.MessageRouting.RouterListHolder(); - configRouterList.value = new org.omg.MessageRouting.Router[0]; + RouterListHolder configRouterList = new RouterListHolder(); + configRouterList.value = new Router[0]; // // Populate the configRouterList // - org.apache.yoko.orb.OB.MessageRoutingUtil.getRouterListFromComponents( - orbInstance_, info, configRouterList); + org.apache.yoko.orb.OB.MessageRoutingUtil.getRouterListFromComponents(orbInstance_, info, configRouterList); - requestInfo.visited = new org.omg.MessageRouting.Router[0]; - requestInfo.to_visit = new org.omg.MessageRouting.Router[0]; + requestInfo.visited = new Router[0]; + requestInfo.to_visit = new Router[0]; // // Get the target for this request // - org.apache.yoko.orb.OB.ObjectFactory objectFactory = orbInstance_ - .getObjectFactory(); + org.apache.yoko.orb.OB.ObjectFactory objectFactory = orbInstance_.getObjectFactory(); // // REVISIT: Should we be using IOR_ or origIOR_? // @@ -904,24 +873,23 @@ public boolean ami_callback_request( // // Get the reply destination for this request // - org.omg.MessageRouting.ReplyDestination replyDest = new org.omg.MessageRouting.ReplyDestination(); - replyDest.handler_type = org.omg.MessageRouting.ReplyDisposition.TYPED; + ReplyDestination replyDest = new ReplyDestination(); + replyDest.handler_type = ReplyDisposition.TYPED; replyDest.handler = reply; requestInfo.reply_destination = replyDest; // // Get the selected qos for this request // - org.omg.Messaging.PolicyValueSeqHolder invocPoliciesHolder = new org.omg.Messaging.PolicyValueSeqHolder(); - invocPoliciesHolder.value = new org.omg.Messaging.PolicyValue[0]; - org.apache.yoko.orb.OB.MessageRoutingUtil.getInvocationPolicyValues( - policies_, invocPoliciesHolder); + PolicyValueSeqHolder invocPoliciesHolder = new PolicyValueSeqHolder(); + invocPoliciesHolder.value = new PolicyValue[0]; + org.apache.yoko.orb.OB.MessageRoutingUtil.getInvocationPolicyValues(policies_, invocPoliciesHolder); requestInfo.selected_qos = invocPoliciesHolder.value; // // Create payload (RequestMessage) for this request // - org.omg.MessageRouting.RequestMessage requestMessage = new org.omg.MessageRouting.RequestMessage(); + RequestMessage requestMessage = new RequestMessage(); requestMessage.giop_version = new org.omg.GIOP.Version(); requestMessage.giop_version.major = info.major; requestMessage.giop_version.minor = info.minor; @@ -935,8 +903,8 @@ public boolean ami_callback_request( // Add the invocation policies service context for this request. // Note that this can change from request to request // - org.omg.IOP.ServiceContext invocPoliciesSC = new org.omg.IOP.ServiceContext(); - invocPoliciesSC.context_id = org.omg.IOP.INVOCATION_POLICIES.value; + ServiceContext invocPoliciesSC = new ServiceContext(); + invocPoliciesSC.context_id = INVOCATION_POLICIES.value; // // Create an output stream an write the PolicyValueSeq @@ -946,20 +914,17 @@ public boolean ami_callback_request( org.apache.yoko.orb.CORBA.OutputStream scOut = new org.apache.yoko.orb.CORBA.OutputStream( scBuf); scOut._OB_writeEndian(); - org.omg.Messaging.PolicyValueSeqHelper.write(scOut, - invocPoliciesHolder.value); + PolicyValueSeqHelper.write(scOut, invocPoliciesHolder.value); invocPoliciesSC.context_data = new byte[scOut._OB_pos()]; - System.arraycopy(invocPoliciesSC.context_data, 0, scBuf.data(), 0, - scBuf.length()); + System.arraycopy(invocPoliciesSC.context_data, 0, scBuf.data(), 0, scBuf.length()); } // // Add the service context to the list of current service contexts // int scLength = requestMessage.service_contexts.length; - org.omg.IOP.ServiceContext[] scList = new org.omg.IOP.ServiceContext[scLength + 1]; - System.arraycopy(requestMessage.service_contexts, 0, scList, 0, - scLength); + ServiceContext[] scList = new ServiceContext[scLength + 1]; + System.arraycopy(requestMessage.service_contexts, 0, scList, 0, scLength); scList[scLength] = invocPoliciesSC; // @@ -990,7 +955,7 @@ public boolean ami_callback_request( // // Get the body of the request message // - org.omg.MessageRouting.MessageBody messageBody = new org.omg.MessageRouting.MessageBody(); + MessageBody messageBody = new MessageBody(); // // Java is always big endian @@ -1025,7 +990,7 @@ public boolean ami_callback_request( int numRouters = configRouterList.value.length; for (int i = numRouters - 1; (delivered == false) && (i >= 0); --i) { - org.omg.MessageRouting.Router curRouter = configRouterList.value[i]; + Router curRouter = configRouterList.value[i]; // // We only add the routers that we have attempted to contact to @@ -1033,7 +998,7 @@ public boolean ami_callback_request( // the request, then the lower priority routers are not added // int curLength = requestInfo.to_visit.length; - org.omg.MessageRouting.Router[] toVisit = new org.omg.MessageRouting.Router[curLength + 1]; + Router[] toVisit = new Router[curLength + 1]; if (curLength > 0) { System.arraycopy(requestInfo.to_visit, 0, toVisit, 1, curLength); } @@ -1047,7 +1012,7 @@ public boolean ami_callback_request( // Success: stop processing // delivered = true; - } catch (org.omg.CORBA.SystemException ex) { + } catch (SystemException ex) { logger.log(Level.FINE, "Failed to contact router: " + ex.getMessage(), ex); // // Failure: try the next router in the list diff --git a/yoko-core/src/main/java/org/apache/yoko/orb/OB/GIOPClient.java b/yoko-core/src/main/java/org/apache/yoko/orb/OB/GIOPClient.java index 6f9d2ee77..6756e8e8a 100644 --- a/yoko-core/src/main/java/org/apache/yoko/orb/OB/GIOPClient.java +++ b/yoko-core/src/main/java/org/apache/yoko/orb/OB/GIOPClient.java @@ -571,21 +571,11 @@ public DowncallEmitter startDowncall(Downcall down, // // Checks whether this client is equal to another client // - public boolean equal(Client cl) { - GIOPClient client = null; - try { - client = (GIOPClient) cl; - } catch (ClassCastException ex) { - return false; - } - - if (!connector_.equal(client.connector_)) - return false; - - if (!codeConverters().equals(client.codeConverters())) - return false; + public boolean matches(Client other) { + if (!!!(other instanceof GIOPClient)) return false; + GIOPClient that = (GIOPClient) other; - return true; + return this.connector_.equal(that.connector_) && this.codeConverters().equals(that.codeConverters()); } //