| Summary: | jacorb.implName default value problem in org/jacorb/poa/POA.java | ||
|---|---|---|---|
| Product: | JacORB | Reporter: | Richard G. Hash <richard.hash> |
| Component: | POA | Assignee: | Reimo Tiedemann <tie> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | ||
| Priority: | P2 | ||
| Version: | 2.2.4 | ||
| Hardware: | All | ||
| OS: | All | ||
|
Description
Richard G. Hash
2004-07-23 23:39:41 UTC
I agree that this default looks iffy - I think that due to defaulting this to StandardImplName will mean that transient servers will never get serverId set (See getPOAId). If the server is persistent the implname property should be set to a unique value; possibly StandardImplName should only be an example not the default and checks should be made if its persistent and implname isn't set. Probably related to bug 473 and bug 378. For now, specify jacorb.implName to be a unique value. *** This bug has been marked as a duplicate of 378 *** This bug is not fixed in JacORB_2.2.4. In 2.2 the problem was the default used for 'implName' in POA.java and ORB.java. When patched to default implName to the same thing (eg "") then the Delegate.is_really_local() would work. However it was true that in 2.2 the 'serverId' in POA.java wasn't actually ever used, since 'implName' could never be null. The "fix" in 2.2.4 uses the POA serverId if jacorb.implname isn't specified, so that in POA.getImplName() the serverId is used if no implName is specified *OR* if !isPersistent() (both of which are true for my case). However the same fix was not made in ORB.java, so there the 'implName' member is still defaulted to "". This means that when the Delegate.is_really_local() is called and the poa has to be resolved, then orb.findPOA() is called, and it is going to return null because "refImplName" is some random number (dug out of the delegate object key) and 'implName' is "". This is going to make the Delegate.is_really_local() return false instead of true, which is wrong. This causes exactly the same deadlock described in the original bug report. It appears the 2.2.4 solution isn't taking non-persistent and non- "jacorb.implname" cases into account. This is a 2+ year old issue now - can a knowledgable person take a look at this? I think there are enough details for someone to go on, but I can try to provide more if neeeded. Thanks, Richard G. Hash its fixed in the CVS (and in the next release). to be sure i've added another test: test/regression/src/org/jacorb/test/bugs/bug503/Bug503Test.java. please retest and close the ticket if appropiate This bug does seem to be fixed (yeah!) in 2.3.0_beta2. Alphonse - Thanks a bunch |