JDK-6948223 : Corba issue, fail to reload object
  • Type: Bug
  • Component: other-libs
  • Sub-Component: corba:orb
  • Affected Version: 6u18
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: solaris_10
  • CPU: sparc
  • Submitted: 2010-04-28
  • Updated: 2011-02-16
  • Resolved: 2010-06-23
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6 JDK 7
6u20-rev b07Fixed 7Fixed
Description
Test case is on the new cores server cores2-da-sparc-2-a/cores/72760424. Description on how to run test case is in OriginalEmail.txt in the same directory as the test case and here:

Attached are three jar files(in cores2-da-sparc-2-a/cores/72760424).
1. suntest.jar contains all the necessary classes for this test case.
2. suntestsrc.jar contains all the necessary source files for this test case.
3. suntestout.jar contains all the output generated by the different executables that were run as part of this test case.

Test Procedure. Make sure that the provided suntest.jar is in your classpath.
1. Run the TempObjectServer using the following command or something equivalent.M:\class>java com.brooks.suntest.TempObjectServerImpl TOS

2. Run the TempObjectClient using the following command or something equivalent.M:\class>java com.brooks.suntest.TempObjectClient TOS TO

3. Read and follow the instructions on the TempObjectClient and observe the output for the server and the client.

The same output has been redirected and captured in TempObjectServer.out and TempObjectClient.out files in the attached suntestout.jar.

1. The first time, the TempObjectClient/TempObjectServer combination succeed to
load/activate, access and unload/deactivate the TempObject (TO).

2. The second time also, the TempObjectClient/TempObjectServer combination succeed to load/activate, access and unload/deactivate the TempObject (TO) demonstrating the significance of the step #4 listed above. However this time, the TempObjectClients tries to interact with the unloaded object and as expected fails.

3. The third time, the TempObjectClient/TempObjectServer combination FAIL to load/activate, access and unload/deactivate the TempObject (TO) and the exceptions
are there to be analyzed.

This test scenario works correctly with Java 1.4.2, but fails with Java 1.5 and
Java 1.6.

Refer to comments for details.

Comments
EVALUATION http://hg.openjdk.java.net/jdk7/build/corba/rev/34af2070439b
25-12-2010

EVALUATION http://hg.openjdk.java.net/jdk7/tl/corba/rev/ecf821480d09
08-11-2010

EVALUATION We need to modify the state machine in AOMEntry to handle this case. Basically we are incorrectly throwing ObjectAlreadyActive because there is an entry assigned to the key, but the state of the entry is INVALID, and that should not cause an error. This basically means adding a new action in AOMEntry that throws the correct exception, making that the default action on the ACTIVATE input symbol, and removing the current containsKey check in POAPolicyMediatorBase_R.activateObject. Then the entry.activateObject call will also handle the ObjectAlreadyActive check.
10-06-2010