-
Bug
-
Resolution: Not an Issue
-
P3
-
None
-
1.4.0
-
sparc
-
solaris_7
Raising ForwardRequest exception from the POA ServantActivator's incarnate() method does not invoke send_other interception point on the server side.
It's throwing a org.omg.CORBA.UNKNOWN exception instead and thus send_exception
interception point is invoked on the server side and receive_exception on the client side.
Attached example demostrates the problem.
harold.carr@Eng 2000-12-20
The ServantActivator in the attached code raises the ForwardRequest but does not supply an forwarded object reference:
class ServantActivatorTest3 extends LocalObject implements ServantActivator {
public org.omg.PortableServer.Servant incarnate(byte oid[],POA adapter) throws ForwardRequest {
System.out.println("Throwing ForwardRequestException in incarnate()");
throw new ForwardRequest();
}
public void etherealize(byte oid[],POA adapter,Servant serv, boolean cleanup_in_progress,boolean remaining_activations) {
}
}
This is a user error which results in UNKNOWN.
One correct way to do this is:
throw new ForwardRequest(
poa.create_reference_with_id(C.idlSAI2.getBytes(),
idlSAIHelper.id()));
Bottom line: given the ForwardRequest constructor a CORBA Object reference.
It's throwing a org.omg.CORBA.UNKNOWN exception instead and thus send_exception
interception point is invoked on the server side and receive_exception on the client side.
Attached example demostrates the problem.
harold.carr@Eng 2000-12-20
The ServantActivator in the attached code raises the ForwardRequest but does not supply an forwarded object reference:
class ServantActivatorTest3 extends LocalObject implements ServantActivator {
public org.omg.PortableServer.Servant incarnate(byte oid[],POA adapter) throws ForwardRequest {
System.out.println("Throwing ForwardRequestException in incarnate()");
throw new ForwardRequest();
}
public void etherealize(byte oid[],POA adapter,Servant serv, boolean cleanup_in_progress,boolean remaining_activations) {
}
}
This is a user error which results in UNKNOWN.
One correct way to do this is:
throw new ForwardRequest(
poa.create_reference_with_id(C.idlSAI2.getBytes(),
idlSAIHelper.id()));
Bottom line: given the ForwardRequest constructor a CORBA Object reference.