The last sentence of the third paragraph of section 4.8 (on page 40) reads
'If the outbound transform is called outside the context of an invocation then
there is no ObjectId and the ORB shall not invoke the transform function.'
This sentence is not clear, and sounds almost self-contradictory ('if called ...
not invoked...').
I believe what this is trying to say is that the outbound transform is not
called for invocations from client application threads. i.e. that it is only
called for onward invocations, being made from within servant code.
I think that this is actually an arbitrary restriction. It would be acceptable
to allow the transform to be called for client-side invocations, as these
would be distinguishable by the fact that the passed ObjectId would be
null.
Even if we want to keep the restriction, I think the wording should be
improved. Therefore I have two alternative proposals :
Proposal A : (If we want to remove this restriction.)
Change this sentence to read :
'For invocations not made from another CORBA Object (i.e. made from
an application thread), the outbound transform is still called, with a null
value for the ObjectId parameter. The transform implementor has the
option of leaving the priority unmodified in this case.'
Proposal B : (If we want to keep this restriction)
Change this sentence to read :
'The outbound priority transform is not called for invocations made from
application threads (i.e. calls that are not made from servant code.)'