You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ri...@apache.org on 2008/03/21 14:23:18 UTC
svn commit: r639632 [1/2] - in
/geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb: CORBA/ OB/
OBCORBA/ OBPortableServer/ OCI/IIOP/
Author: rickmcguire
Date: Fri Mar 21 06:22:39 2008
New Revision: 639632
URL: http://svn.apache.org/viewvc?rev=639632&view=rev
Log:
YOKO-421 yoko does not resolve initial references with corbaloc: url references.
Also adds a lot more logging information and some coding standards cleanup.
Modified:
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/CORBA/Delegate.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/CORBA/InputStream.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/BootManager_impl.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/ClientManager.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/CollocatedServer.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/CorbalocURLScheme_impl.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/Downcall.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/DowncallStub.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/GIOPConnectionThreaded.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/GIOPServer.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/GIOPServerStarter.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/GIOPServerStarterThreaded.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/InitialServiceManager.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/ObjectFactory.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/ObjectKey.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/ObjectKeyData.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/ServerManager.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/Upcall.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/ValueReader.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OBCORBA/ORB_impl.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OBPortableServer/POALocator.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OBPortableServer/POAManagerFactory_impl.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OBPortableServer/POAManager_impl.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OBPortableServer/POANameHasher.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OBPortableServer/POAOAInterface_impl.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OBPortableServer/POA_impl.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OCI/IIOP/Acceptor_impl.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OCI/IIOP/Connector_impl.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OCI/IIOP/Transport_impl.java
geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OCI/IIOP/Util.java
Modified: geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/CORBA/Delegate.java
URL: http://svn.apache.org/viewvc/geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/CORBA/Delegate.java?rev=639632&r1=639631&r2=639632&view=diff
==============================================================================
--- geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/CORBA/Delegate.java (original)
+++ geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/CORBA/Delegate.java Fri Mar 21 06:22:39 2008
@@ -16,14 +16,18 @@
*/
package org.apache.yoko.orb.CORBA;
+
import java.util.logging.Level;
+import java.util.logging.Logger;
import org.omg.CORBA.INV_POLICY;
+import org.omg.CORBA.LocalObject;
//
// Delegate is equivalent to OBCORBA::Object in C++
//
public final class Delegate extends org.omg.CORBA_2_4.portable.Delegate {
+ static final Logger logger = Logger.getLogger(Delegate.class.getName());
//
// The ORBInstance object
//
@@ -76,10 +80,10 @@
if (retryTSS_ != null) {
Thread t = Thread.currentThread();
RetryInfo info = (RetryInfo) retryTSS_.remove(t);
- if (info != null)
+ if (info != null) {
return info;
+ }
}
-
return new RetryInfo();
}
@@ -87,8 +91,9 @@
// Set retry information for current thread in TSS
//
private synchronized void setRetry(RetryInfo info) {
- if (retryTSS_ == null)
+ if (retryTSS_ == null) {
retryTSS_ = new java.util.Hashtable(7);
+ }
Thread t = Thread.currentThread();
retryTSS_.put(t, info);
@@ -130,15 +135,15 @@
} catch (org.omg.CORBA.TRANSIENT e) {
} catch (org.omg.CORBA.NO_RESPONSE e) {
} catch (org.omg.CORBA.SystemException e) {
- org.apache.yoko.orb.OB.Logger logger = orbInstance_.getLogger();
logger.log(java.util.logging.Level.FINE, "System exception during operation", ex);
if (coreTraceLevels.traceRetry() > 0) {
String msg = "retry only upon COMM_FAILURE, TRANSIENT "
+ "and NO_RESPONSE exceptions";
String exMsg = ex.getMessage();
- if (exMsg != null)
+ if (exMsg != null) {
msg += "\n" + exMsg;
- logger.trace("retry", msg);
+ }
+ logger.fine("retry: " + msg);
}
throw ex;
}
@@ -170,10 +175,10 @@
if (coreTraceLevels.traceRetry() > 0) {
String msg = "retry only upon locally raised exceptions\n";
String exMsg = ex.getMessage();
- if (exMsg != null)
+ if (exMsg != null) {
msg += "\n" + exMsg;
- org.apache.yoko.orb.OB.Logger logger = orbInstance_.getLogger();
- logger.trace("retry", msg);
+ }
+ logger.fine("retry " + msg);
}
throw ex;
}
@@ -186,10 +191,10 @@
String msg = "can't try again, because I "
+ "tried maximum times already";
String exMsg = ex.getMessage();
- if (exMsg != null)
+ if (exMsg != null) {
msg += "\n" + exMsg;
- org.apache.yoko.orb.OB.Logger logger = orbInstance_.getLogger();
- logger.trace("retry", msg);
+ }
+ logger.fine("retry " + msg);
}
throw ex;
}
@@ -202,10 +207,10 @@
String msg = "can't try again because the "
+ "RETRY_NEVER policy is set";
String exMsg = ex.getMessage();
- if (exMsg != null)
+ if (exMsg != null) {
msg += "\n" + exMsg;
- org.apache.yoko.orb.OB.Logger logger = orbInstance_.getLogger();
- logger.trace("retry", msg);
+ }
+ logger.fine("retry " + msg);
}
throw ex;
}
@@ -221,10 +226,10 @@
+ "RETRY_STRICT policy is set\n"
+ "and completion status is not " + "COMPLETED_NO";
String exMsg = ex.getMessage();
- if (exMsg != null)
+ if (exMsg != null) {
msg += "\n" + exMsg;
- org.apache.yoko.orb.OB.Logger logger = orbInstance_.getLogger();
- logger.trace("retry", msg);
+ }
+ logger.fine("retry " + msg);
}
throw ex;
}
@@ -237,8 +242,7 @@
if (coreTraceLevels.traceRetry() > 0) {
String msg = "next attempt in " + policies_.retry.interval
+ " milliseconds";
- org.apache.yoko.orb.OB.Logger logger = orbInstance_.getLogger();
- logger.trace("retry", msg);
+ logger.fine("retry " + msg);
}
try {
Thread.sleep(policies_.retry.interval);
@@ -252,9 +256,9 @@
// DirectServant must be explicitly destroyed in order to
// make it eligible for garbage collection
//
- if (directServant_ != null)
+ if (directServant_ != null) {
directServant_.destroy();
-
+ }
super.finalize();
}
@@ -273,8 +277,7 @@
try {
out = request(self, "_interface", true);
in = invoke(self, out);
- org.omg.CORBA.InterfaceDef def = org.omg.CORBA.InterfaceDefHelper
- .read(in);
+ org.omg.CORBA.InterfaceDef def = org.omg.CORBA.InterfaceDefHelper.read(in);
return def;
} catch (org.omg.CORBA.portable.ApplicationException ex) {
org.apache.yoko.orb.OB.Assert._OB_assert(ex);
@@ -313,8 +316,9 @@
//
// Check IDL:omg.org/CORBA/Object:1.0
//
- if (repository_id.equals("IDL:omg.org/CORBA/Object:1.0"))
+ if (repository_id.equals("IDL:omg.org/CORBA/Object:1.0")) {
return true;
+ }
//
// Check all other ids
@@ -322,17 +326,19 @@
org.omg.CORBA.portable.ObjectImpl o = (org.omg.CORBA.portable.ObjectImpl) self;
String[] ids = o._ids();
- for (int i = 0; i < ids.length; i++)
- if (repository_id.equals(ids[i]))
+ for (int i = 0; i < ids.length; i++) {
+ if (repository_id.equals(ids[i])) {
return true;
+ }
+ }
//
// Check the type_id in the IOR and the original IOR
//
synchronized (this) {
- if (repository_id.equals(IOR_.type_id)
- || repository_id.equals(origIOR_.type_id))
+ if (repository_id.equals(IOR_.type_id) || repository_id.equals(origIOR_.type_id)) {
return true;
+ }
}
//
@@ -361,8 +367,9 @@
} else {
org.omg.CORBA.portable.ServantObject so = servant_preinvoke(
self, "_is_a", null);
- if (so == null)
+ if (so == null) {
continue;
+ }
try {
org.omg.PortableServer.Servant servant = (org.omg.PortableServer.Servant) so.servant;
return servant._is_a(repository_id);
@@ -390,10 +397,10 @@
releaseReply(self, in);
}
} else {
- org.omg.CORBA.portable.ServantObject so = servant_preinvoke(
- self, "_non_existent", null);
- if (so == null)
+ org.omg.CORBA.portable.ServantObject so = servant_preinvoke(self, "_non_existent", null);
+ if (so == null) {
continue;
+ }
try {
org.omg.PortableServer.Servant servant = (org.omg.PortableServer.Servant) so.servant;
return servant._non_existent();
@@ -409,37 +416,38 @@
//
// Check for nil reference
//
- if (rhs == null)
+ if (rhs == null) {
return false;
+ }
//
// Direct object reference comparison
//
- if (self == rhs)
+ if (self == rhs) {
return true;
+ }
//
// Locality-constrained objects are never equivalent if the
// reference comparisons fail
//
- if (self instanceof org.omg.CORBA.LocalObject
- || rhs instanceof org.omg.CORBA.LocalObject)
+ if (self instanceof org.omg.CORBA.LocalObject || rhs instanceof org.omg.CORBA.LocalObject) {
return false;
+ }
//
// Direct delegate reference comparison
//
- Delegate p = (Delegate) ((org.omg.CORBA.portable.ObjectImpl) rhs)
- ._get_delegate();
- if (p == this)
+ Delegate p = (Delegate) ((org.omg.CORBA.portable.ObjectImpl) rhs)._get_delegate();
+ if (p == this) {
return true;
+ }
//
// Ask the client manager
//
synchronized (this) {
- org.apache.yoko.orb.OB.ClientManager clientManager = orbInstance_
- .getClientManager();
+ org.apache.yoko.orb.OB.ClientManager clientManager = orbInstance_.getClientManager();
return clientManager.equivalent(origIOR_, p._OB_origIOR());
}
}
@@ -449,8 +457,7 @@
// Ask the client manager
//
synchronized (this) {
- org.apache.yoko.orb.OB.ClientManager clientManager = orbInstance_
- .getClientManager();
+ org.apache.yoko.orb.OB.ClientManager clientManager = orbInstance_.getClientManager();
return clientManager.hash(origIOR_, maximum);
}
}
@@ -469,8 +476,7 @@
org.omg.CORBA.NVList arg_list, org.omg.CORBA.NamedValue result,
org.omg.CORBA.ExceptionList excepts,
org.omg.CORBA.ContextList contexts) {
- Request request = new Request(self, operation, arg_list, result,
- excepts, contexts);
+ Request request = new Request(self, operation, arg_list, result, excepts, contexts);
request.ctx(ctx);
return request;
@@ -536,16 +542,15 @@
RetryInfo info = (RetryInfo) obout._OB_delegateContext();
try {
org.apache.yoko.orb.OB.DowncallStub downcallStub = _OB_getDowncallStub(self);
- org.omg.CORBA.portable.InputStream in = downcallStub.invoke(self,
- obout);
+ org.omg.CORBA.portable.InputStream in = downcallStub.invoke(self, obout);
return in;
} catch (org.omg.CORBA.portable.ApplicationException ex) {
- org.apache.yoko.orb.OB.Logger logger = orbInstance_.getLogger();
logger.log(java.util.logging.Level.FINE, "Received ApplicationException for request", ex);
throw ex;
} catch (org.omg.CORBA.portable.RemarshalException ex) {
// fall through
} catch (Exception ex) {
+ logger.log(java.util.logging.Level.FINE, "Received unexpected exception for request", ex);
_OB_handleException(self, ex, info, false, true);
}
@@ -583,8 +588,8 @@
// Check for duplicate policy type
//
if (np.length > 1) {
- for (int i = 0; i < np.length - 1; i++)
- for (int j = i + 1; j < np.length; j++)
+ for (int i = 0; i < np.length - 1; i++) {
+ for (int j = i + 1; j < np.length; j++) {
if (np[i].policy_type() == np[j].policy_type()) {
throw new org.omg.CORBA.BAD_PARAM(
org.apache.yoko.orb.OB.MinorCodes
@@ -592,6 +597,8 @@
org.apache.yoko.orb.OB.MinorCodes.MinorDuplicatePolicyType,
org.omg.CORBA.CompletionStatus.COMPLETED_NO);
}
+ }
+ }
}
//
@@ -605,24 +612,27 @@
} else // ADD_OVERRIDE
{
java.util.Vector v = new java.util.Vector();
- for (int i = 0; i < policies_.value.length; i++)
+ for (int i = 0; i < policies_.value.length; i++) {
v.addElement(policies_.value[i]);
+ }
for (int i = 0; i < np.length; i++) {
int len = v.size();
int j;
for (j = 0; j < len; j++) {
- org.omg.CORBA.Policy policy = (org.omg.CORBA.Policy) v
- .elementAt(j);
- if (policy.policy_type() == np[i].policy_type())
+ org.omg.CORBA.Policy policy = (org.omg.CORBA.Policy) v.elementAt(j);
+ if (policy.policy_type() == np[i].policy_type()) {
break;
+ }
}
- if (j < len)
+ if (j < len) {
v.setElementAt(np[i], j);
- else
+ }
+ else {
v.addElement(np[i]);
+ }
}
newPolicies = new org.omg.CORBA.Policy[v.size()];
@@ -652,16 +662,16 @@
public boolean is_local(org.omg.CORBA.Object self) {
if (checkLocal_) {
synchronized (directServantMutex_) {
- if (directServant_ != null && !directServant_.deactivated())
+ if (directServant_ != null && !directServant_.deactivated()) {
return true;
+ }
org.apache.yoko.orb.OBPortableServer.POAManagerFactory pmFactory = orbInstance_
.getPOAManagerFactory();
org.apache.yoko.orb.OBPortableServer.POAManagerFactory_impl factory = (org.apache.yoko.orb.OBPortableServer.POAManagerFactory_impl) pmFactory;
while (true) {
try {
- directServant_ = factory._OB_getDirectServant(IOR_,
- policies_);
+ directServant_ = factory._OB_getDirectServant(IOR_, policies_);
break;
} catch (org.apache.yoko.orb.OB.LocationForward ex) {
synchronized (this) {
@@ -669,8 +679,9 @@
// Change the IOR
//
IOR_ = ex.ior;
- if (ex.perm)
+ if (ex.perm) {
origIOR_ = ex.ior;
+ }
//
// Clear the downcall stub
@@ -696,8 +707,9 @@
if (directServant_.servant.getClass().getClassLoader() == self
.getClass().getClassLoader()) {
getRetry();
- if (!directServant_.locate_request())
+ if (!directServant_.locate_request()) {
throw new org.omg.CORBA.OBJECT_NOT_EXIST();
+ }
return true;
}
}
@@ -708,12 +720,12 @@
checkLocal_ = false;
}
}
-
return false;
}
public org.omg.CORBA.portable.ServantObject servant_preinvoke(
- org.omg.CORBA.Object self, String operation, Class expectedType) {
+ org.omg.CORBA.Object self, String operation, Class expectedType)
+ {
org.omg.CORBA.portable.ServantObject result = null;
org.apache.yoko.orb.OBPortableServer.DirectServant ds = directServant_;
@@ -761,28 +773,27 @@
//
if (types.length == 0) {
org.omg.CORBA.Policy[] all = new org.omg.CORBA.Policy[policies_.value.length];
- System
- .arraycopy(policies_.value, 0, all, 0,
- policies_.value.length);
+ System.arraycopy(policies_.value, 0, all, 0, policies_.value.length);
return all;
}
java.util.Vector policies = new java.util.Vector();
- for (int i = 0; i < types.length; i++)
- for (int j = 0; j < policies_.value.length; j++)
- if (policies_.value[j].policy_type() == types[i])
+ for (int i = 0; i < types.length; i++) {
+ for (int j = 0; j < policies_.value.length; j++) {
+ if (policies_.value[j].policy_type() == types[i]) {
policies.addElement(policies_.value[j]);
+ }
+ }
+ }
- org.omg.CORBA.Policy[] result = new org.omg.CORBA.Policy[policies
- .size()];
+ org.omg.CORBA.Policy[] result = new org.omg.CORBA.Policy[policies.size()];
policies.copyInto(result);
return result;
}
- public org.omg.CORBA.Policy get_client_policy(org.omg.CORBA.Object self,
- int type) {
+ public org.omg.CORBA.Policy get_client_policy(org.omg.CORBA.Object self, int type) {
//
// TODO: Implement
//
@@ -825,8 +836,9 @@
}
public org.apache.yoko.orb.OCI.TransportInfo get_oci_transport_info() {
- if (is_local(null))
+ if (is_local(null)) {
return null;
+ }
RetryInfo info = new RetryInfo();
while (true) {
@@ -886,10 +898,11 @@
}
public org.omg.CORBA.Policy _OB_getPolicy(int policy_type) {
- for (int i = 0; i < policies_.value.length; i++)
- if (policies_.value[i].policy_type() == policy_type)
+ for (int i = 0; i < policies_.value.length; i++) {
+ if (policies_.value[i].policy_type() == policy_type) {
return policies_.value[i];
-
+ }
+ }
return null;
}
@@ -901,7 +914,6 @@
void _OB_handleException(org.omg.CORBA.Object self, Exception ex,
RetryInfo info, boolean ignoreRebind, boolean useTSS) {
- org.apache.yoko.orb.OB.Logger logger = orbInstance_.getLogger();
try {
throw ex;
} catch (org.apache.yoko.orb.OB.LocationForward e) {
@@ -918,7 +930,7 @@
if (policies_.rebindMode == org.omg.Messaging.NO_RECONNECT.value
&& !ignoreRebind) {
if (coreTraceLevels.traceRetry() > 0) {
- logger.trace("retry", "can't try again, because "
+ logger.fine("retry: can't try again, because "
+ "NO_RECONNECT prevents a transparent "
+ "location forward");
}
@@ -934,8 +946,7 @@
info.hop++;
if (info.hop > 10) {
if (coreTraceLevels.traceRetry() > 0) {
- logger.trace("retry",
- "location forward hop count exceeded");
+ logger.fine("retry: location forward hop count exceeded");
}
throw new org.omg.CORBA.TRANSIENT(
@@ -950,8 +961,9 @@
// Change the IOR
//
IOR_ = e.ior;
- if (e.perm)
+ if (e.perm) {
origIOR_ = e.ior;
+ }
//
// We need to reget the downcall stub
@@ -964,13 +976,13 @@
checkLocal_ = true;
if (coreTraceLevels.traceRetry() > 0) {
- logger.trace("retry", "trying again because of location "
- + "forward");
+ logger.fine("retry: trying again because of location forward");
}
}
- if (useTSS)
+ if (useTSS) {
setRetry(info);
+ }
} catch (org.apache.yoko.orb.OB.FailureException e) {
info.retry++;
@@ -985,13 +997,15 @@
String msg = "trying again (" + info.retry
+ ") because of failure";
String exMsg = e.exception.getMessage();
- if (exMsg != null)
+ if (exMsg != null) {
msg += "\n" + exMsg;
- logger.trace("retry", msg);
+ }
+ logger.fine("retry: " + msg);
}
- if (useTSS)
+ if (useTSS) {
setRetry(info);
+ }
} catch (org.omg.CORBA.TRANSIENT e) {
info.retry++;
@@ -1006,13 +1020,15 @@
String msg = "trying again (" + info.retry
+ ") because server sent a TRANSIENT " + "exception";
String exMsg = e.getMessage();
- if (exMsg != null)
+ if (exMsg != null) {
msg += "\n" + exMsg;
- logger.trace("retry", msg);
+ }
+ logger.fine("retry: " + msg);
}
- if (useTSS)
+ if (useTSS) {
setRetry(info);
+ }
} catch (org.omg.CORBA.SystemException e) {
logger.log(java.util.logging.Level.FINE, "Received SystemException", e);
throw e;
@@ -1033,19 +1049,18 @@
throws org.apache.yoko.orb.OB.LocationForward,
org.apache.yoko.orb.OB.FailureException {
if (downcallStub_ == null) {
- downcallStub_ = new org.apache.yoko.orb.OB.DowncallStub(
- orbInstance_, IOR_, origIOR_, policies_);
- if (!downcallStub_.locate_request())
+ downcallStub_ = new org.apache.yoko.orb.OB.DowncallStub(orbInstance_, IOR_, origIOR_, policies_);
+ if (!downcallStub_.locate_request()) {
throw new org.omg.CORBA.OBJECT_NOT_EXIST();
+ }
}
-
return downcallStub_;
}
public synchronized void _OB_closeConnection(boolean terminate) {
- if (downcallStub_ == null)
+ if (downcallStub_ == null) {
return;
-
+ }
downcallStub_._OB_closeConnection(terminate);
downcallStub_ = null;
}
Modified: geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/CORBA/InputStream.java
URL: http://svn.apache.org/viewvc/geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/CORBA/InputStream.java?rev=639632&r1=639631&r2=639632&view=diff
==============================================================================
--- geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/CORBA/InputStream.java (original)
+++ geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/CORBA/InputStream.java Fri Mar 21 06:22:39 2008
@@ -26,6 +26,7 @@
final public class InputStream extends org.omg.CORBA_2_3.portable.InputStream {
static final Logger logger = Logger.getLogger(InputStream.class.getName());
+
org.apache.yoko.orb.OB.ORBInstance orbInstance_;
public org.apache.yoko.orb.OCI.Buffer buf_;
Modified: geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/BootManager_impl.java
URL: http://svn.apache.org/viewvc/geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/BootManager_impl.java?rev=639632&r1=639631&r2=639632&view=diff
==============================================================================
--- geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/BootManager_impl.java (original)
+++ geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/BootManager_impl.java Fri Mar 21 06:22:39 2008
@@ -16,12 +16,18 @@
*/
package org.apache.yoko.orb.OB;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
import org.apache.yoko.orb.OB.BootLocator;
import org.apache.yoko.orb.OB.BootManager;
+import org.omg.CORBA.ORB;
+import org.omg.CORBA.ORBPackage.InvalidName;
final public class BootManager_impl extends org.omg.CORBA.LocalObject implements
BootManager {
+ static final Logger logger = Logger.getLogger(BootManager_impl.class.getName());
//
// Set of known bindings
//
@@ -32,9 +38,13 @@
// since assign and read methods are atomic in Java.
//
private BootLocator locator_ = null;
+
+ // the ORB that created us
+ private ORB orb_;
- public BootManager_impl() {
+ public BootManager_impl(ORB orb) {
bindings_ = new java.util.Hashtable(17);
+ orb_ = orb;
}
// ------------------------------------------------------------------
@@ -44,6 +54,9 @@
public void add_binding(byte[] id, org.omg.CORBA.Object obj)
throws org.apache.yoko.orb.OB.BootManagerPackage.AlreadyExists {
ObjectIdHasher oid = new ObjectIdHasher(id);
+ if (logger.isLoggable(Level.FINE)) {
+ logger.fine("Adding binding under id " + IORUtil.dump_octets(id));
+ }
//
// If binding id is not already mapped add the binding.
@@ -59,6 +72,9 @@
public void remove_binding(byte[] id)
throws org.apache.yoko.orb.OB.BootManagerPackage.NotFound {
ObjectIdHasher oid = new ObjectIdHasher(id);
+ if (logger.isLoggable(Level.FINE)) {
+ logger.fine("Removing binding with id " + IORUtil.dump_octets(id));
+ }
//
// If binding id is mapped remove the binding
@@ -87,22 +103,41 @@
// binding for the requested ObjectId.
//
ObjectIdHasher oid = new ObjectIdHasher(id);
+
+ if (logger.isLoggable(Level.FINE)) {
+ logger.fine("Searching for binding with id " + IORUtil.dump_octets(id));
+ }
org.omg.CORBA.Object obj = (org.omg.CORBA.Object) bindings_.get(oid);
if (obj == null && locator_ != null) {
+ logger.fine("Object not found, passing on to locator");
try {
org.omg.CORBA.ObjectHolder objHolder = new org.omg.CORBA.ObjectHolder();
org.omg.CORBA.BooleanHolder addHolder = new org.omg.CORBA.BooleanHolder();
locator_.locate(id, objHolder, addHolder);
obj = objHolder.value;
- if (addHolder.value)
+ if (addHolder.value) {
bindings_.put(oid, obj);
+ }
} catch (org.apache.yoko.orb.OB.BootManagerPackage.NotFound ex) {
}
}
- if (obj == null)
- return null;
+ if (obj == null) {
+ // these should map to initial references as well when used as a corbaloc name.
+ // convert the key to a string and try for one of those
+ String keyString = new String(id);
+ try {
+ obj = orb_.resolve_initial_references(keyString);
+ } catch (org.omg.CORBA.ORBPackage.InvalidName ex) {
+ // if this is not valid, it won't work
+ return null;
+ }
+ // just return null if still not there
+ if (obj == null) {
+ return null;
+ }
+ }
org.apache.yoko.orb.CORBA.Delegate p = (org.apache.yoko.orb.CORBA.Delegate) (((org.omg.CORBA.portable.ObjectImpl) obj)
._get_delegate());
Modified: geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/ClientManager.java
URL: http://svn.apache.org/viewvc/geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/ClientManager.java?rev=639632&r1=639631&r2=639632&view=diff
==============================================================================
--- geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/ClientManager.java (original)
+++ geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/ClientManager.java Fri Mar 21 06:22:39 2008
@@ -16,6 +16,9 @@
*/
package org.apache.yoko.orb.OB;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
import org.apache.yoko.orb.OB.CONNECTION_REUSE_POLICY_ID;
import org.apache.yoko.orb.OB.ConnectionReusePolicy;
@@ -23,8 +26,10 @@
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.omg.PortableServer.POAManagerPackage.State;
public final class ClientManager {
+ static final Logger logger = Logger.getLogger(ClientManager.class.getName());
private boolean destroy_; // True if destroy() was called
//
@@ -67,8 +72,9 @@
//
// Don't destroy twice
//
- if (destroy_)
+ if (destroy_) {
return;
+ }
//
// Set the destroy flag
@@ -115,18 +121,21 @@
//
// Can't create a Client for a nil object
//
- if (ior.type_id.length() == 0 && ior.profiles.length == 0)
+ if (ior.type_id.length() == 0 && ior.profiles.length == 0) {
throw new org.omg.CORBA.INV_OBJREF("Object reference is nil");
+ }
//
// The ORB destroys this object, so it's an initialization error
// if this operation is called after ORB destruction
//
- if (destroy_)
+ if (destroy_) {
throw new org.omg.CORBA.INITIALIZE(org.apache.yoko.orb.OB.MinorCodes
.describeInitialize(org.apache.yoko.orb.OB.MinorCodes.MinorORBDestroyed),
org.apache.yoko.orb.OB.MinorCodes.MinorORBDestroyed,
org.omg.CORBA.CompletionStatus.COMPLETED_NO);
+ }
+
//
// Find out whether private clients are requested
@@ -134,10 +143,10 @@
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)
+ ConnectionReusePolicy p = ConnectionReusePolicyHelper.narrow(policies[i]);
+ if (p.value() == false) {
privateClients = true;
+ }
break;
}
}
@@ -161,8 +170,9 @@
if (policies[i].policy_type() == org.omg.BiDirPolicy.BIDIRECTIONAL_POLICY_TYPE.value) {
org.omg.BiDirPolicy.BidirectionalPolicy p = org.omg.BiDirPolicy.BidirectionalPolicyHelper
.narrow(policies[i]);
- if (p.value() == org.omg.BiDirPolicy.BOTH.value)
+ if (p.value() == org.omg.BiDirPolicy.BOTH.value) {
enableBidir = true;
+ }
}
}
@@ -171,8 +181,7 @@
//
// First try to create CollocatedClients
//
- org.apache.yoko.orb.OBPortableServer.POAManagerFactory pmFactory = orbInstance_
- .getPOAManagerFactory();
+ org.apache.yoko.orb.OBPortableServer.POAManagerFactory pmFactory = orbInstance_.getPOAManagerFactory();
org.omg.PortableServer.POAManager[] managers = pmFactory.list();
for (int i = 0; i < managers.length; i++) {
@@ -182,19 +191,20 @@
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);
- if (localProfileInfos.length > 0)
+ org.apache.yoko.orb.OCI.ProfileInfo[] localProfileInfos = acceptors[j].get_local_profiles(ior);
+ if (localProfileInfos.length > 0) {
local = true;
+ }
}
- if (local) {
+ // 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) {
//
// Retrieve the CollocatedServer from the POAManager
//
org.apache.yoko.orb.OBPortableServer.POAManager_impl manager = (org.apache.yoko.orb.OBPortableServer.POAManager_impl) managers[i];
- CollocatedServer collocatedServer = manager
- ._OB_getCollocatedServer();
+ CollocatedServer collocatedServer = manager._OB_getCollocatedServer();
//
// Create a new CollocatedClient and add the new client to
@@ -202,12 +212,10 @@
// that is returned
//
CodeConverters conv = new CodeConverters();
- Client client = new CollocatedClient(collocatedServer,
- concModel_, conv);
+ Client client = new CollocatedClient(collocatedServer, concModel_, conv);
allClients_.addElement(client);
- org.apache.yoko.orb.OCI.ProfileInfo[] profileInfos = client
- .getUsableProfiles(ior, policies);
+ org.apache.yoko.orb.OCI.ProfileInfo[] profileInfos = client.getUsableProfiles(ior, policies);
for (int j = 0; j < profileInfos.length; j++) {
ClientProfilePair pair = new ClientProfilePair();
pair.client = client;
@@ -237,11 +245,12 @@
// protocol list
//
if (protocolPolicy != null) {
- org.apache.yoko.orb.OCI.ConnectorInfo info = reusableClient
- .connectorInfo();
- if (info != null)
- if (!protocolPolicy.contains(info.id()))
+ org.apache.yoko.orb.OCI.ConnectorInfo info = reusableClient.connectorInfo();
+ if (info != null) {
+ if (!protocolPolicy.contains(info.id())) {
continue;
+ }
+ }
}
org.apache.yoko.orb.OCI.ProfileInfo[] profileInfos = reusableClient
@@ -271,14 +280,16 @@
// protocol list
//
if (protocolPolicy != null)
- if (!protocolPolicy.contains(connectors[j].id()))
+ {
+ if (!protocolPolicy.contains(connectors[j].id())) {
continue;
+ }
+ }
//
// Get all usable profiles
//
- org.apache.yoko.orb.OCI.ProfileInfo[] profileInfos = connectors[j]
- .get_usable_profiles(ior, policies);
+ org.apache.yoko.orb.OCI.ProfileInfo[] profileInfos = connectors[j].get_usable_profiles(ior, policies);
Assert._OB_assert(profileInfos.length >= 1);
//
@@ -298,10 +309,10 @@
int l;
for (l = 0; l < pairs.size(); l++) {
- ClientProfilePair pair = (ClientProfilePair) pairs
- .elementAt(l);
- if (pair.client.equal(client))
+ ClientProfilePair pair = (ClientProfilePair) pairs.elementAt(l);
+ if (pair.client.equal(client)) {
break;
+ }
}
if (l != pairs.size()) {
@@ -331,8 +342,9 @@
// If no private clients have been requested, also add the
// client to the list of existing reusable clients
//
- if (!privateClients)
+ if (!privateClients) {
reusableClients_.addElement(client);
+ }
}
}
}
@@ -354,10 +366,10 @@
//
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)
+ org.apache.yoko.orb.OCI.ConnectorInfo info = pair.client.connectorInfo();
+ if (info == null) {
newPairs.addElement(pair);
+ }
}
//
@@ -365,13 +377,13 @@
//
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()))
+ 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);
+ }
+ }
}
}
@@ -382,12 +394,13 @@
// If we still don't have any client/profile pairs, throw a
// TRANSIENT exception
//
- if (pairs.isEmpty())
+ if (pairs.isEmpty()) {
throw new org.omg.CORBA.TRANSIENT(org.apache.yoko.orb.OB.MinorCodes
.describeTransient(org.apache.yoko.orb.OB.MinorCodes.MinorNoUsableProfileInIOR)
+ "Unable to create client",
org.apache.yoko.orb.OB.MinorCodes.MinorNoUsableProfileInIOR,
org.omg.CORBA.CompletionStatus.COMPLETED_NO);
+ }
//
// Increment the usage count on all clients
@@ -396,7 +409,6 @@
ClientProfilePair pair = (ClientProfilePair) pairs.elementAt(i);
pair.client.incUsage();
}
-
return pairs;
}
@@ -405,8 +417,9 @@
// The ORB destroys this object, so it's an initialization error
// if this operation is called after ORB destruction
//
- if (destroy_)
+ if (destroy_) {
return;
+ }
//
// TODO:
@@ -453,10 +466,11 @@
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 (int i = 0; i < factories.length; i++) {
+ if (!factories[i].equivalent(ior1, ior2)) {
return false;
-
+ }
+ }
return true;
}
@@ -464,12 +478,11 @@
org.apache.yoko.orb.OCI.ConFactoryRegistry conFactoryRegistry = orbInstance_
.getConFactoryRegistry();
- org.apache.yoko.orb.OCI.ConFactory[] factories = conFactoryRegistry
- .get_factories();
+ org.apache.yoko.orb.OCI.ConFactory[] factories = conFactoryRegistry.get_factories();
int hash = 0;
- for (int i = 0; i < factories.length; i++)
+ for (int i = 0; i < factories.length; i++) {
hash ^= factories[i].hash(ior, maximum);
-
+ }
return hash % (maximum + 1);
}
}
Modified: geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/CollocatedServer.java
URL: http://svn.apache.org/viewvc/geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/CollocatedServer.java?rev=639632&r1=639631&r2=639632&view=diff
==============================================================================
--- geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/CollocatedServer.java (original)
+++ geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/CollocatedServer.java Fri Mar 21 06:22:39 2008
@@ -17,7 +17,11 @@
package org.apache.yoko.orb.OB;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
final public class CollocatedServer extends Server implements UpcallReturn {
+ static final Logger logger = Logger.getLogger(CollocatedServer.class.getName());
//
// The next request ID and the corresponding mutex
//
@@ -106,6 +110,7 @@
//
public synchronized void hold() {
Assert._OB_assert(!destroy_);
+ logger.fine("Collocated server placed in hold state");
hold_ = true;
//
@@ -119,6 +124,7 @@
//
public synchronized void activate() {
Assert._OB_assert(!destroy_);
+ logger.fine("Collocated server activated");
hold_ = false;
//
@@ -131,6 +137,7 @@
// Called to emit downcalls
//
public boolean send(Downcall down, boolean b) {
+ logger.fine("Sending a request");
//
// We need a state monitor if the request is dispatched in a
// separate thread.
@@ -149,6 +156,7 @@
//
while (hold_ && !destroy_) {
try {
+ logger.fine("Waiting for hold to be released");
wait();
} catch (InterruptedException ex) {
}
@@ -164,8 +172,7 @@
//
// Collect the Upcall data
//
- org.apache.yoko.orb.OCI.ProfileInfo profileInfo = down
- .profileInfo();
+ org.apache.yoko.orb.OCI.ProfileInfo profileInfo = down.profileInfo();
int reqId = down.requestId();
String op = down.operation();
org.apache.yoko.orb.CORBA.OutputStream out = down.output();
@@ -247,6 +254,7 @@
}
public boolean receive(Downcall down, boolean block) {
+ logger.fine("Receiving a request");
//
// Try to receive the reply
//
Modified: geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/CorbalocURLScheme_impl.java
URL: http://svn.apache.org/viewvc/geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/CorbalocURLScheme_impl.java?rev=639632&r1=639631&r2=639632&view=diff
==============================================================================
--- geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/CorbalocURLScheme_impl.java (original)
+++ geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/CorbalocURLScheme_impl.java Fri Mar 21 06:22:39 2008
@@ -35,14 +35,14 @@
for (int i = 0; i < result.length; i++) {
char ch = keyStr.charAt(i);
- if (ch > 255)
+ if (ch > 255) {
throw new org.omg.CORBA.BAD_PARAM(
MinorCodes
.describeBadParam(org.apache.yoko.orb.OB.MinorCodes.MinorBadSchemeSpecificPart)
+ ": invalid character in key",
org.apache.yoko.orb.OB.MinorCodes.MinorBadSchemeSpecificPart,
org.omg.CORBA.CompletionStatus.COMPLETED_NO);
-
+ }
result[i] = (byte) ch;
}
@@ -56,24 +56,25 @@
//
if (str.substring(startIdx, startIdx + 4).equals("rir:")) {
int comma = str.indexOf(',', startIdx);
- if (comma != -1 && comma <= endIdx)
+ if (comma != -1 && comma <= endIdx) {
throw new org.omg.CORBA.BAD_PARAM(
MinorCodes
.describeBadParam(org.apache.yoko.orb.OB.MinorCodes.MinorBadSchemeSpecificPart)
+ ": rir cannot be used with other protocols",
org.apache.yoko.orb.OB.MinorCodes.MinorBadSchemeSpecificPart,
org.omg.CORBA.CompletionStatus.COMPLETED_NO);
+ }
- if (startIdx + 3 != endIdx)
+ if (startIdx + 3 != endIdx) {
throw new org.omg.CORBA.BAD_PARAM(org.apache.yoko.orb.OB.MinorCodes
.describeBadParam(org.apache.yoko.orb.OB.MinorCodes.MinorBadAddress)
+ ": rir does not allow an address",
org.apache.yoko.orb.OB.MinorCodes.MinorBadAddress,
org.omg.CORBA.CompletionStatus.COMPLETED_NO);
+ }
try {
- InitialServiceManager initialServiceManager = orbInstance_
- .getInitialServiceManager();
+ InitialServiceManager initialServiceManager = orbInstance_.getInitialServiceManager();
return initialServiceManager.resolveInitialReferences(keyStr);
} catch (org.omg.CORBA.ORBPackage.InvalidName ex) {
throw new org.omg.CORBA.BAD_PARAM(
@@ -102,31 +103,36 @@
//
String protocol;
int colon = str.indexOf(':', pos);
- if (colon == -1)
+ if (colon == -1) {
throw new org.omg.CORBA.BAD_PARAM(
MinorCodes
.describeBadParam(org.apache.yoko.orb.OB.MinorCodes.MinorBadSchemeSpecificPart)
+ ": no protocol",
org.apache.yoko.orb.OB.MinorCodes.MinorBadSchemeSpecificPart,
org.omg.CORBA.CompletionStatus.COMPLETED_NO);
- else if (colon > endIdx)
+ }
+ else if (colon > endIdx) {
break;
- if (colon == pos) // ":" is shorthand for "iiop:"
+ }
+ if (colon == pos) {// ":" is shorthand for "iiop:"
protocol = "iiop";
- else
+ }
+ else {
protocol = str.substring(pos, colon).toLowerCase();
+ }
pos = colon;
//
// Check for rir (again)
//
- if (protocol.equals("rir"))
+ if (protocol.equals("rir")) {
throw new org.omg.CORBA.BAD_PARAM(
MinorCodes
.describeBadParam(org.apache.yoko.orb.OB.MinorCodes.MinorBadSchemeSpecificPart)
+ ": rir cannot be used with other protocols",
org.apache.yoko.orb.OB.MinorCodes.MinorBadSchemeSpecificPart,
org.omg.CORBA.CompletionStatus.COMPLETED_NO);
+ }
//
// Get the protocol address
@@ -159,12 +165,13 @@
}
}
- if (profiles.size() == 0)
+ if (profiles.size() == 0) {
throw new org.omg.CORBA.BAD_PARAM(org.apache.yoko.orb.OB.MinorCodes
.describeBadParam(org.apache.yoko.orb.OB.MinorCodes.MinorBadSchemeSpecificPart)
+ ": no valid protocol addresses",
org.apache.yoko.orb.OB.MinorCodes.MinorBadSchemeSpecificPart,
org.omg.CORBA.CompletionStatus.COMPLETED_NO);
+ }
org.omg.IOP.IOR ior = new org.omg.IOP.IOR();
ior.type_id = "";
@@ -201,19 +208,21 @@
// Although an object key is optional according to the specification,
// we consider this to be an invalid URL
//
- if (slash == -1)
+ if (slash == -1) {
throw new org.omg.CORBA.BAD_PARAM(org.apache.yoko.orb.OB.MinorCodes
.describeBadParam(org.apache.yoko.orb.OB.MinorCodes.MinorOther)
+ ": no key specified", org.apache.yoko.orb.OB.MinorCodes.MinorOther,
org.omg.CORBA.CompletionStatus.COMPLETED_NO);
+ }
int addrStart = 9; // skip "corbaloc:"
int addrEnd = slash - 1;
- if (addrStart == slash)
+ if (addrStart == slash) {
throw new org.omg.CORBA.BAD_PARAM(org.apache.yoko.orb.OB.MinorCodes
.describeBadParam(org.apache.yoko.orb.OB.MinorCodes.MinorBadAddress)
+ ": no protocol address", org.apache.yoko.orb.OB.MinorCodes.MinorBadAddress,
org.omg.CORBA.CompletionStatus.COMPLETED_NO);
+ }
String key = url.substring(slash + 1);
return parse_addresses(url, addrStart, addrEnd, key);
@@ -232,9 +241,9 @@
public void add_protocol(CorbalocProtocol protocol)
throws org.apache.yoko.orb.OB.CorbalocURLSchemePackage.ProtocolAlreadyExists {
String name = protocol.name();
- if (protocols_.containsKey(name))
+ if (protocols_.containsKey(name)) {
throw new org.apache.yoko.orb.OB.CorbalocURLSchemePackage.ProtocolAlreadyExists();
-
+ }
protocols_.put(name, protocol);
}
Modified: geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/Downcall.java
URL: http://svn.apache.org/viewvc/geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/Downcall.java?rev=639632&r1=639631&r2=639632&view=diff
==============================================================================
--- geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/Downcall.java (original)
+++ geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/Downcall.java Fri Mar 21 06:22:39 2008
@@ -17,6 +17,8 @@
package org.apache.yoko.orb.OB;
+import java.util.logging.Level;
+
public class Downcall {
//
// The ORBInstance object
Modified: geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/DowncallStub.java
URL: http://svn.apache.org/viewvc/geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/DowncallStub.java?rev=639632&r1=639631&r2=639632&view=diff
==============================================================================
--- geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/DowncallStub.java (original)
+++ geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/DowncallStub.java Fri Mar 21 06:22:39 2008
@@ -16,6 +16,9 @@
*/
package org.apache.yoko.orb.OB;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
import org.apache.yoko.orb.OB.RETRY_ALWAYS;
@@ -23,13 +26,12 @@
// DowncallStub is equivalent to the C++ class OB::MarshalStubImpl
//
public final class DowncallStub {
+ static final Logger logger = Logger.getLogger(DowncallStub.class.getName());
//
// The ORBInstance object
//
private ORBInstance orbInstance_;
- protected Logger logger_; // the orbInstance_ logger object
-
//
// The IOR and the original IOR
//
@@ -72,8 +74,7 @@
// Get all clients that can be used
//
ClientManager clientManager = orbInstance_.getClientManager();
- clientProfilePairs_ = clientManager.getClientProfilePairs(IOR_,
- policies_.value);
+ clientProfilePairs_ = clientManager.getClientProfilePairs(IOR_, policies_.value);
}
//
@@ -83,7 +84,7 @@
if (clientProfilePairs_.isEmpty()) {
CoreTraceLevels coreTraceLevels = orbInstance_.getCoreTraceLevels();
if (coreTraceLevels.traceRetry() >= 2) {
- logger_.trace("retry", "no profiles available");
+ logger.fine("retry: no profiles available");
}
throw new FailureException(new org.omg.CORBA.TRANSIENT(org.apache.yoko.orb.OB.MinorCodes
@@ -92,8 +93,7 @@
org.omg.CORBA.CompletionStatus.COMPLETED_NO));
}
- ClientProfilePair clientProfilePair = (ClientProfilePair) clientProfilePairs_
- .elementAt(0);
+ ClientProfilePair clientProfilePair = (ClientProfilePair) clientProfilePairs_.elementAt(0);
profileInfo.value = clientProfilePair.profile;
return clientProfilePair.client;
}
@@ -133,9 +133,6 @@
// Save the ORBInstance object
//
orbInstance_ = orbInstance;
- // and get the logger from the instance
- logger_ = orbInstance_.getLogger();
-
//
// Save the IOR
//
@@ -157,17 +154,16 @@
Client client = getClientProfilePair(profile);
Assert._OB_assert(client != null);
- if (!policies_.interceptor)
- return new Downcall(orbInstance_, client, profile.value, policies_,
- op, resp);
+ if (!policies_.interceptor) {
+ return new Downcall(orbInstance_, client, profile.value, policies_, op, resp);
+ }
PIManager piManager = orbInstance_.getPIManager();
if (piManager.haveClientInterceptors()) {
return new PIDowncall(orbInstance_, client, profile.value,
policies_, op, resp, IOR_, origIOR_, piManager);
} else {
- return new Downcall(orbInstance_, client, profile.value, policies_,
- op, resp);
+ return new Downcall(orbInstance_, client, profile.value, policies_, op, resp);
}
}
@@ -179,8 +175,7 @@
//
// A LocateRequest is not seen by the interceptors
//
- return new Downcall(orbInstance_, client, profile.value, policies_,
- "_locate", true);
+ return new Downcall(orbInstance_, client, profile.value, policies_, "_locate", true);
}
public Downcall createPIArgsDowncall(String op, boolean resp,
@@ -376,21 +371,15 @@
// completion status is not COMPLETED_NO
//
if (policies_.retry.mode != RETRY_ALWAYS.value
- && ex.exception.completed != org.omg.CORBA.CompletionStatus.COMPLETED_NO)
+ && ex.exception.completed != org.omg.CORBA.CompletionStatus.COMPLETED_NO) {
throw ex;
+ }
//
// If no client/profile pairs are left, we cannot retry either
//
if (clientProfilePairs_.isEmpty()) {
- CoreTraceLevels coreTraceLevels = orbInstance_.getCoreTraceLevels();
- if (coreTraceLevels.traceRetry() >= 2) {
- String msg = "retry: no profiles left to try\n"
- + ex.exception.getMessage();
-
- logger_.debug(msg, ex.exception);
- }
-
+ logger.log(Level.FINE, "no profiles left to try", ex.exception);
throw ex;
}
@@ -398,14 +387,11 @@
// OK, let's continue with the next profile
//
CoreTraceLevels coreTraceLevels = orbInstance_.getCoreTraceLevels();
- if (coreTraceLevels.traceRetry() >= 2) {
- String msg = "trying next profile\n" + ex.exception.getMessage();
-
- logger_.trace("retry", msg);
- }
+ logger.log(Level.FINE, "trying next profile", ex.exception);
}
public boolean locate_request() throws LocationForward, FailureException {
+ logger.fine("performing a locate_request");
while (true) {
org.apache.yoko.orb.OB.Downcall down = createLocateRequestDowncall();
@@ -420,16 +406,21 @@
//
// If the LocateRequest policy is false, then return now
//
- if (!policies_.locateRequest)
+ if (!policies_.locateRequest) {
+ logger.fine("LocateRequest policy is false, returning true");
return true;
+ }
//
// If the client doesn't support twoway invocations,
// then silently pretend the locate request succeeded
//
- if (!client.twoway())
+ if (!client.twoway()) {
+ logger.fine("Twoway invocations not supported, returning true");
return true;
+ }
} catch (org.omg.CORBA.SystemException ex) {
+ logger.log(Level.FINE, "Exception occurred during locate request", ex);
throw new FailureException(ex);
}
@@ -438,10 +429,13 @@
locate(down);
preUnmarshal(down);
postUnmarshal(down);
+ logger.fine("Object located");
return true;
} catch (org.omg.CORBA.OBJECT_NOT_EXIST ex) {
+ logger.log(Level.FINE, "Object does not exist", ex);
return false;
} catch (FailureException ex) {
+ logger.log(Level.FINE, "Object lookup failure", ex);
handleFailureException(down, ex);
}
}
@@ -614,8 +608,9 @@
//
// If the DowncallStub has changed, then remarshal
//
- if (ctx.downcallStub != this)
+ if (ctx.downcallStub != this) {
throw new org.omg.CORBA.portable.RemarshalException();
+ }
Downcall down = ctx.downcall;
@@ -627,10 +622,12 @@
down.postMarshal();
boolean response = down.responseExpected();
- if (response)
+ if (response) {
down.request();
- else
+ }
+ else {
down.oneway();
+ }
if (response) {
org.apache.yoko.orb.CORBA.InputStream in = down.preUnmarshal();
@@ -1002,15 +999,15 @@
//
// Align to an 8 byte boundary if we have something left
//
- if (buf.rest_length() > 0)
+ if (buf.rest_length() > 0) {
buf.pos((buf.pos() + 7) & ~7);
+ }
//
// Copy in the rest of the message body
//
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());
requestMessage.body = messageBody;
//
@@ -1034,10 +1031,9 @@
//
int curLength = requestInfo.to_visit.length;
org.omg.MessageRouting.Router[] toVisit = new org.omg.MessageRouting.Router[curLength + 1];
- if (curLength > 0)
- System
- .arraycopy(requestInfo.to_visit, 0, toVisit, 1,
- curLength);
+ if (curLength > 0) {
+ System.arraycopy(requestInfo.to_visit, 0, toVisit, 1, curLength);
+ }
toVisit[0] = curRouter;
requestInfo.to_visit = toVisit;
@@ -1049,7 +1045,7 @@
//
delivered = true;
} catch (org.omg.CORBA.SystemException ex) {
- orbInstance_.getLogger().warning("Failed to contact router: " + ex.getMessage(), ex);
+ logger.log(Level.FINE, "Failed to contact router: " + ex.getMessage(), ex);
//
// Failure: try the next router in the list
//
Modified: geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/GIOPConnectionThreaded.java
URL: http://svn.apache.org/viewvc/geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/GIOPConnectionThreaded.java?rev=639632&r1=639631&r2=639632&view=diff
==============================================================================
--- geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/GIOPConnectionThreaded.java (original)
+++ geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/GIOPConnectionThreaded.java Fri Mar 21 06:22:39 2008
@@ -17,7 +17,11 @@
package org.apache.yoko.orb.OB;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
public final class GIOPConnectionThreaded extends GIOPConnection {
+ static final Logger logger = Logger.getLogger(GIOPConnectionThreaded.class.getName());
// ----------------------------------------------------------------
// Inner helper classes
// ----------------------------------------------------------------
@@ -391,6 +395,8 @@
// called from a receiver thread to perform a reception
//
public void execReceive() {
+
+ logger.fine("Receiving incoming message " + this);
GIOPIncomingMessage inMsg = new GIOPIncomingMessage(orbInstance_);
org.apache.yoko.orb.OCI.Buffer buf = null;
@@ -405,6 +411,7 @@
// Receive header, blocking, detect connection loss
//
try {
+ logger.fine("Reading message header");
transport_.receive(buf, true);
Assert._OB_assert(buf.is_full());
} catch (org.omg.CORBA.SystemException ex) {
@@ -417,6 +424,7 @@
//
try {
inMsg.extractHeader(buf);
+ logger.fine("Header received for message of size " + inMsg.size());
buf.realloc(12 + inMsg.size());
} catch (org.omg.CORBA.SystemException ex) {
processException(State.Error, ex, false);
@@ -428,12 +436,14 @@
// Receive body, blocking
//
try {
+ logger.fine("Receiving message body of size " + inMsg.size());
transport_.receive(buf, true);
Assert._OB_assert(buf.is_full());
} catch (org.omg.CORBA.SystemException ex) {
processException(State.Closed, ex, false);
break;
}
+ logger.fine("Message body received ");
}
//
@@ -464,8 +474,9 @@
try {
org.apache.yoko.orb.OCI.Buffer bufCopy = buf;
buf = null;
- if (inMsg.consumeBuffer(bufCopy) == true)
+ if (inMsg.consumeBuffer(bufCopy) == true) {
upcall = processMessage(inMsg);
+ }
} catch (org.omg.CORBA.SystemException ex) {
processException(State.Error, ex, false);
break;
@@ -476,6 +487,7 @@
// a fragment or error, so we can proceed to invoke it
//
if (upcall != null) {
+ logger.fine("Processing message using upcall " + upcall.getClass().getName());
//
// in the BiDir case, this upcall could result in a
// nested call back and forth. This requires a new
@@ -543,9 +555,10 @@
// client-side send method (from DowncallEmitter)
//
public boolean send(Downcall down, boolean block) {
- Assert
- ._OB_assert(transport_.mode() != org.apache.yoko.orb.OCI.SendReceiveMode.ReceiveOnly);
+ Assert._OB_assert(transport_.mode() != org.apache.yoko.orb.OCI.SendReceiveMode.ReceiveOnly);
Assert._OB_assert(down.unsent() == true);
+
+ logger.fine("Sending a request with Downcall of type " + down.getClass().getName());
//
// if we send off a message in the loop, this var might help us
@@ -566,8 +579,9 @@
//
// make the downcall thread-safe
//
- if (down.responseExpected())
+ if (down.responseExpected()) {
down.initStateMonitor();
+ }
//
// buffer the request
@@ -577,8 +591,9 @@
//
// check the sent status while we're locked
//
- if ((properties_ & Property.RequestSent) != 0)
+ if ((properties_ & Property.RequestSent) != 0) {
msgSentMarked = true;
+ }
}
//
@@ -631,8 +646,9 @@
//
// Timeout?
//
- if (!buf.is_full())
+ if (!buf.is_full()) {
throw new org.omg.CORBA.NO_RESPONSE();
+ }
}
}
} catch (org.omg.CORBA.SystemException ex) {
@@ -703,6 +719,7 @@
}
}
+ logger.fine(" Request send completed with Downcall of type " + down.getClass().getName());
return !down.responseExpected();
}
@@ -710,11 +727,14 @@
// client-side receive method (from DowncallEmitter)
//
public boolean receive(Downcall down, boolean block) {
+ logger.fine("Receiving response with Downcall of type " + down.getClass().getName());
//
// Try to receive the reply
//
try {
- return down.waitUntilCompleted(block);
+ boolean result = down.waitUntilCompleted(block);
+ logger.fine("Completed eceiving response with Downcall of type " + down.getClass().getName());
+ return result;
} catch (org.omg.CORBA.SystemException ex) {
processException(State.Closed, ex, false);
return true;
Modified: geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/GIOPServer.java
URL: http://svn.apache.org/viewvc/geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/GIOPServer.java?rev=639632&r1=639631&r2=639632&view=diff
==============================================================================
--- geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/GIOPServer.java (original)
+++ geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/GIOPServer.java Fri Mar 21 06:22:39 2008
@@ -17,7 +17,11 @@
package org.apache.yoko.orb.OB;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
final class GIOPServer extends Server {
+ static final Logger logger = Logger.getLogger(GIOPServer.class.getName());
protected ORBInstance orbInstance_; // The ORB Instance
protected boolean destroy_; // True if destroy() was called
@@ -51,6 +55,8 @@
destroy_ = false;
acceptor_ = acceptor;
oaInterface_ = oaInterface;
+
+ logger.fine("GIOPServer " + System.identityHashCode(this) + " created for orb instance " + orbInstance_.getOrbId() + " and server " + orbInstance_.getServerId() + " identityHash=" + System.identityHashCode(orbInstance_));
try {
switch (concModel_) {
@@ -69,6 +75,7 @@
// Destroy the server
//
public void destroy() {
+ logger.fine("Destroying GIOPServer " + System.identityHashCode(this) + " started for orb instance " + orbInstance_.getOrbId() + " and server " + orbInstance_.getServerId() + System.identityHashCode(orbInstance_));
//
// Don't destroy twice
//
@@ -92,6 +99,7 @@
// Hold any new requests that arrive for the Server
//
public void hold() {
+ logger.fine("Holding GIOPServer " + System.identityHashCode(this) + " started for orb instance " + orbInstance_.getOrbId() + " and server " + orbInstance_.getServerId() + System.identityHashCode(orbInstance_));
Assert._OB_assert(!destroy_);
Assert._OB_assert(starter_ != null);
starter_.setState(GIOPServerStarter.StateHolding);
@@ -101,6 +109,7 @@
// Dispatch any requests that arrive for the Server
//
public void activate() {
+ logger.fine("Activating GIOPServer " + System.identityHashCode(this) + " started for orb instance " + orbInstance_.getOrbId() + " and server " + orbInstance_.getServerId() + System.identityHashCode(orbInstance_));
Assert._OB_assert(!destroy_);
Assert._OB_assert(starter_ != null);
starter_.setState(GIOPServerStarter.StateActive);
Modified: geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/GIOPServerStarter.java
URL: http://svn.apache.org/viewvc/geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/GIOPServerStarter.java?rev=639632&r1=639631&r2=639632&view=diff
==============================================================================
--- geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/GIOPServerStarter.java (original)
+++ geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/GIOPServerStarter.java Fri Mar 21 06:22:39 2008
@@ -17,9 +17,14 @@
package org.apache.yoko.orb.OB;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
import org.apache.yoko.orb.PortableServer.*;
abstract class GIOPServerStarter {
+ static final Logger logger = Logger.getLogger(GIOPServerStarter.class.getName());
+
protected ORBInstance orbInstance_; // The ORBInstance
protected org.apache.yoko.orb.OCI.Acceptor acceptor_; // The acceptor
Modified: geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/GIOPServerStarterThreaded.java
URL: http://svn.apache.org/viewvc/geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/GIOPServerStarterThreaded.java?rev=639632&r1=639631&r2=639632&view=diff
==============================================================================
--- geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/GIOPServerStarterThreaded.java (original)
+++ geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/GIOPServerStarterThreaded.java Fri Mar 21 06:22:39 2008
@@ -36,6 +36,7 @@
Assert._OB_assert(ex);
}
+ logger.fine("Shutting down ORB server listener thread");
//
// Shutdown the acceptor so that no further connections are
// accepted
@@ -46,7 +47,6 @@
//
// Accept all connections which might have queued up in the
// listen() backlog
- //
while (true) {
org.apache.yoko.orb.OCI.Transport transport = null;
@@ -55,8 +55,10 @@
} catch (org.omg.CORBA.SystemException ex) {
}
- if (transport == null)
+ if (transport == null) {
+ logger.fine("Null transport received from a connect");
break;
+ }
try {
GIOPConnection connection = new GIOPConnectionThreaded(
@@ -91,6 +93,7 @@
org.apache.yoko.orb.OCI.Acceptor acceptor, OAInterface oaInterface) {
super(orbInstance, acceptor, oaInterface);
+ logger.fine("GIOPServer thread started " + this + " using acceptor " + acceptor);
try {
//
// Retrieve the thread group for the servers
@@ -124,15 +127,19 @@
//
// Don't do anything if there is no state change
//
- if (state_ == state)
+ if (state_ == state) {
return;
+ }
+
+ logger.fine("Setting server state to " + state);
//
// It is not possible to transition backwards, except if we are
// in holding state
//
- if (state_ != StateHolding && state < state_)
+ if (state_ != StateHolding && state < state_) {
return;
+ }
switch (state) {
case StateActive: {
@@ -216,11 +223,13 @@
//
while (state_ == StateHolding) {
try {
+ logger.fine("Waiting on an inbound connection because the state is holding. acceptor=" + acceptor_);
wait();
} catch (InterruptedException ex) {
}
}
+ logger.fine("Processing an inbound connection with state=" + state_);
if (transport != null) {
try {
if (state_ == StateActive) {
@@ -233,6 +242,7 @@
connections_.addElement(connection);
connection.setState(GIOPConnection.State.Active);
} else {
+ logger.fine("Processing an inbound connection because state is closed");
//
// If we're closed, we create a new dummy
// worker, only in order to set it to
@@ -246,14 +256,15 @@
connection.setState(GIOPConnection.State.Closing);
}
} catch (org.omg.CORBA.SystemException ex) {
- String msg = "can't accept connection\n"
- + ex.getMessage();
- orbInstance_.getLogger().log(java.util.logging.Level.WARNING, msg, ex);
+ String msg = "can't accept connection\n" + ex.getMessage();
+ logger.log(java.util.logging.Level.WARNING, msg, ex);
}
}
- if (state_ == StateClosed)
+ if (state_ == StateClosed) {
+ logger.fine("Shutting down server thread");
break;
+ }
}
}
}
Modified: geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/InitialServiceManager.java
URL: http://svn.apache.org/viewvc/geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/InitialServiceManager.java?rev=639632&r1=639631&r2=639632&view=diff
==============================================================================
--- geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/InitialServiceManager.java (original)
+++ geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/InitialServiceManager.java Fri Mar 21 06:22:39 2008
@@ -141,11 +141,12 @@
// The ORB destroys this object, so it's an initialization error
// if this operation is called after ORB destruction
//
- if (destroy_)
+ if (destroy_) {
throw new org.omg.CORBA.INITIALIZE(org.apache.yoko.orb.OB.MinorCodes
.describeInitialize(org.apache.yoko.orb.OB.MinorCodes.MinorORBDestroyed),
org.apache.yoko.orb.OB.MinorCodes.MinorORBDestroyed,
org.omg.CORBA.CompletionStatus.COMPLETED_NO);
+ }
Assert._OB_assert(identifier != null);
@@ -160,8 +161,9 @@
//
Service svc = (Service) services_.get(identifier);
if (svc != null) {
- if (svc.obj != null)
+ if (svc.obj != null) {
obj = svc.obj;
+ }
else if (svc.ref.length() > 0) {
obj = objectFactory.stringToObject(svc.ref);
svc.obj = obj;
@@ -210,16 +212,16 @@
} catch (org.omg.CORBA.INV_POLICY ex) {
}
- if (policy == null)
+ if (policy == null) {
policy = orbPolicies[i];
+ }
vec.addElement(policy);
}
org.omg.CORBA.Policy[] p = new org.omg.CORBA.Policy[vec.size()];
vec.copyInto(p);
- return obj._set_policy_override(p,
- org.omg.CORBA.SetOverrideType.SET_OVERRIDE);
+ return obj._set_policy_override(p, org.omg.CORBA.SetOverrideType.SET_OVERRIDE);
}
public void addInitialReference(String name, org.omg.CORBA.Object obj)
@@ -268,16 +270,18 @@
// The ORB destroys this object, so it's an initialization error
// if this operation is called after ORB destruction
//
- if (destroy_)
+ if (destroy_) {
throw new org.omg.CORBA.INITIALIZE(org.apache.yoko.orb.OB.MinorCodes
.describeInitialize(org.apache.yoko.orb.OB.MinorCodes.MinorORBDestroyed),
org.apache.yoko.orb.OB.MinorCodes.MinorORBDestroyed,
org.omg.CORBA.CompletionStatus.COMPLETED_NO);
+ }
Assert._OB_assert(name != null);
- if (services_.containsKey(name) && !override)
+ if (services_.containsKey(name) && !override) {
throw new org.omg.CORBA.ORBPackage.InvalidName();
+ }
Service svc = new Service();
svc.ref = "";
Modified: geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/ObjectFactory.java
URL: http://svn.apache.org/viewvc/geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/ObjectFactory.java?rev=639632&r1=639631&r2=639632&view=diff
==============================================================================
--- geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/ObjectFactory.java (original)
+++ geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/ObjectFactory.java Fri Mar 21 06:22:39 2008
@@ -17,7 +17,12 @@
package org.apache.yoko.orb.OB;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
public final class ObjectFactory {
+ static final Logger logger = Logger.getLogger(ObjectFactory.class.getName());
+
private boolean destroy_; // True if destroy() was called
ORBInstance orbInstance_; // The ORBInstance object
@@ -70,18 +75,22 @@
// The ORB destroys this object, so it's an initialization error
// if this operation is called after ORB destruction
//
- if (destroy_)
+ if (destroy_) {
throw new org.omg.CORBA.INITIALIZE(org.apache.yoko.orb.OB.MinorCodes
.describeInitialize(org.apache.yoko.orb.OB.MinorCodes.MinorORBDestroyed),
org.apache.yoko.orb.OB.MinorCodes.MinorORBDestroyed,
org.omg.CORBA.CompletionStatus.COMPLETED_NO);
+ }
//
// Check for nil object reference
//
- if (ior.type_id.length() == 0 && ior.profiles.length == 0)
+ if (ior.type_id.length() == 0 && ior.profiles.length == 0) {
return null;
+ }
+ logger.fine("Creating an object of type " + ior.type_id);
+
//
// Create new delegate, set policies and change delegate
//
@@ -93,6 +102,7 @@
// Create new object, set the delegate and return
//
org.omg.CORBA.portable.ObjectImpl obj;
+
if(ior.type_id.startsWith("RMI")) {
obj = new org.apache.yoko.orb.CORBA.StubForRemote();
}
@@ -104,6 +114,7 @@
}
public org.omg.CORBA.Object stringToObject(String ior) {
+ logger.fine("Creating an object from " + ior);
return orbInstance_.getURLRegistry().parse_url(ior);
}
Modified: geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/ObjectKey.java
URL: http://svn.apache.org/viewvc/geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/ObjectKey.java?rev=639632&r1=639631&r2=639632&view=diff
==============================================================================
--- geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/ObjectKey.java (original)
+++ geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/ObjectKey.java Fri Mar 21 06:22:39 2008
@@ -31,8 +31,15 @@
//
package org.apache.yoko.orb.OB;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.apache.yoko.orb.OB.IORUtil;
final public class ObjectKey {
+ static final Logger logger = Logger.getLogger(ObjectKey.class.getName());
+
public static byte[] CreateObjectKey(ObjectKeyData id) {
byte[] key;
@@ -40,8 +47,9 @@
// Count the number of bytes for the poas.
//
int len = id.serverId.length() + 1;
- for (int i = 0; i < id.poaId.length; i++)
+ for (int i = 0; i < id.poaId.length; i++) {
len += id.poaId[i].length() + 1;
+ }
//
// Add one for the '\0'
@@ -85,8 +93,9 @@
} else {
key[data++] = (byte) '1';
int n = time.length();
- for (int i = 0; i < n; i++)
+ for (int i = 0; i < n; i++) {
key[data++] = (byte) time.charAt(i);
+ }
data++;
}
@@ -94,14 +103,16 @@
// Copy in the data for the poas
//
int n = id.serverId.length();
- for (int j = 0; j < n; j++)
+ for (int j = 0; j < n; j++) {
key[data++] = (byte) id.serverId.charAt(j);
+ }
data++;
for (int i = 0; i < id.poaId.length; i++) {
n = id.poaId[i].length();
- for (int j = 0; j < n; j++)
+ for (int j = 0; j < n; j++) {
key[data++] = (byte) id.poaId[i].charAt(j);
+ }
data++;
}
@@ -112,6 +123,10 @@
System.arraycopy(id.oid, 0, key, data, id.oid.length);
+
+ if (logger.isLoggable(Level.FINEST)) {
+ logger.finest("Created object key\n" + IORUtil.dump_octets(key));
+ }
return key;
}
@@ -126,6 +141,10 @@
//
int data = 0;
int end = key.length;
+
+ if (logger.isLoggable(Level.FINE)) {
+ logger.fine("Parsing object key\n" + IORUtil.dump_octets(key));
+ }
//
// First try to figure out whether the object-key is OB 4.x
@@ -138,27 +157,34 @@
data += 3;
if (key[data] == '0') // persistent
{
+ logger.fine("Parsing persistent object key");
keyData.persistent = true;
keyData.createTime = 0;
++data;
} else {
- if (key[data] != '1')
+ if (key[data] != '1') {
+ logger.fine("Characters '1' expected at position " + data);
return false;
+ }
keyData.persistent = false;
++data;
//
// Remember the start of the time stamp
//
int start = data;
- while (data < end && key[data] != '\0')
+ while (data < end && key[data] != '\0') {
data++;
- if (data >= end)
+ }
+ if (data >= end) {
+ logger.fine("Missing '\0' in key data");
return false;
+ }
String t = new String(key, start, data - start);
try {
keyData.createTime = Integer.valueOf(t).intValue();
} catch (NumberFormatException ex) {
+ logger.log(Level.FINE, "Invalid timestamp in key data", ex);
return false;
}
//
@@ -174,23 +200,29 @@
// Remember the start of the POA name
//
int start = data;
- while (data < end && key[data] != '\0')
+ while (data < end && key[data] != '\0') {
data++;
+ }
//
// Ensure that we haven't gone too far...
//
- if (data >= end)
+ if (data >= end) {
+ logger.fine("Missing '\0' in key data");
return false;
+ }
//
// Append this to the sequence of POA's.
//
if (first) {
keyData.serverId = new String(key, start, data - start);
+ logger.fine("Parsed serverId=" + keyData.serverId);
first = false;
} else {
- poaId.addElement(new String(key, start, data - start));
+ String element = new String(key, start, data - start);
+ logger.fine("Parsed POA name=" + element);
+ poaId.addElement(element);
}
//
@@ -210,8 +242,10 @@
//
// Verify that we haven't gone too far.
//
- if (data >= end)
+ if (data >= end) {
+ logger.fine("Missing object id in key data");
return false;
+ }
//
// Remaining portion is the ObjectId.
@@ -220,8 +254,13 @@
keyData.oid = new byte[len];
System.arraycopy(key, data, keyData.oid, 0, len);
+ if (logger.isLoggable(Level.FINEST)) {
+ logger.finest("Parsed object id is\n" + IORUtil.dump_octets(keyData.oid));
+ }
+
return true;
} else {
+ logger.fine("Invalid magic number in object key");
return false;
}
}
Modified: geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/ObjectKeyData.java
URL: http://svn.apache.org/viewvc/geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/ObjectKeyData.java?rev=639632&r1=639631&r2=639632&view=diff
==============================================================================
--- geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/ObjectKeyData.java (original)
+++ geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OB/ObjectKeyData.java Fri Mar 21 06:22:39 2008
@@ -44,6 +44,19 @@
}
public String toString() {
- return serverId + ":" + poaId + ":" + IORUtil.format_octets(oid);
+ StringBuffer buf = new StringBuffer();
+ buf.append(serverId);
+ buf.append(':');
+ if (poaId != null) {
+ for (int i = 0; i < poaId.length; i++) {
+ buf.append('/');
+ buf.append(poaId[i]);
+ }
+ }
+ buf.append(':');
+ if (oid != null) {
+ buf.append(IORUtil.format_octets(oid));
+ }
+ return buf.toString();
}
}