Issues for Portability RTF List-defunt list, aliases to orb_revision

To comment on any of these issues, send email to port-rtf@omg.org. (Please include the issue number in the Subject: header, thusly: [Issue ###].) To submit a new issue, send email to issues@omg.org.

List of issues (green=resolved, yellow=pending Board vote, red=unresolved)

List options: All ; Open Issues only; or Closed Issues only

Issue 579: ServantActivator::etherealize (Errata for orbos/97-05-15)
Issue 580: Errata for orbos/97-05-15 page 18-2, 18.1.1, editorial
Issue 581: Errata for orbos/97-05-15 page 18-14, 18.5.1
Issue 583: InconsistentTypeCode not specified
Issue 584: Bug in example 4.4.1
Issue 612: use_servant_manager and default_servant
Issue 613: Default_servant and NON_UNIQUE_ID
Issue 614: Threading and shutdown interfaces
Issue 616: POA::id_to_reference()
Issue 619: Section 2.4 defines typedef void status- no legal IDL
Issue 628: POA::activate_object_with_id() and POA::create_reference_with_id()
Issue 629: Object::get_implementation()
Issue 638: Section 3.3.1: _this() and IMPLICIT_ACTIVATION need clarification
Issue 639: Sections 18.1.1 and/or18.1.2: implicit activation
Issue 642: Add operation to POAManager to query state
Issue 643: return of invalid Servant as result of incarnate() or preinvoke()
Issue 644: Hierarchy example in 14.24.5 incorrect
Issue 645: PortableServer::POA::AdapterInactive exception is never used in IDL
Issue 648: Server request and oneway operations
Issue 654: Chapter 4.3, 4.3.3.7, Comments on DynAny
Issue 655: Chapter 4.3.3 (editorial)
Issue 656: Chapter 4.3.3.2, Comments on Dynamic Any
Issue 657: Chapter 4.3.3.8, Comments on DynAny
Issue 658: Chapter 4.3.6, Comments on DynAny (current_member_type)
Issue 659: Chapter 4.3.7
Issue 660: Chapter 4.3.8, length attribute
Issue 662: PolicyType constants not assigned
Issue 664: section 3.3.6: clarification of SINGLE_THREAD_MODEL policy
Issue 667: POAs and threads
Issue 668: Definition of Lifespan policy of TRANSIENT should be extended
Issue 669: Clarification on TRANSIENT
Issue 670: Section 3.2.2: clarification needed
Issue 671: Behavior of ServantManager should be clarified
Issue 672: Behavior of preinvoke and postinvoke
Issue 676: use of root POA to implement root POA and POAMAnager impossible
Issue 677: What happens if programmer invokes destroy() operation?
Issue 715: Change interface of AdaptorActivator::unknown_adapter() method
Issue 728: no PolicyTypes for POA policies
Issue 729: POA C++ example in orbos/97-05-15
Issue 736: ORB::run
Issue 737: Defining a new standard CORBA exception named OBJECT_DISABLED
Issue 738: DSI servants should support an _is_a method which receives an ObjectId
Issue 742: Defining Cookie as sequence<octet> instead of native
Issue 743: ServantActivator interface
Issue 744: get_servant_manager and set_servant_manager
Issue 745: DynAny : invoke operation next()
Issue 746: DynAny section 4.3.3.7
Issue 747: Inconsistent usage of next() for DynUnions
Issue 748: Value of length attribute in DynAny
Issue 750: Setting the value of a DynAny after calling rewind() may be harmful
Issue 752: Invoke a create reference operation passing empty RepositoryID string
Issue 774: Question about ObjectId
Issue 802: POAManager (02)
Issue 921: Description of ServantActivator::etherialize()
Issue 934: POA::create_reference_*() Issue
Issue 958: Separator character for POAs should be specified
Issue 962: need list_POAs call
Issue 963: Can"t determine a POA creation policies
Issue 964: No POA hook for future Policies
Issue 993: ORB/POA and ServanrtManager issue
Issue 994: ServantManager and ForwardRequest issue
Issue 997: Can ServantManagwers be incarnated by other Servant Managers?
Issue 1089: Inconsistent TypeCode exception never defined
Issue 1116: DynAny issues
Issue 1117: DynAny issues (02), CORBA 2.2 chapter 7
Issue 1118: DynAny issue (03), CORBA 2.2 chapter 7
Issue 1119: DynAny issue (04), CORBA 2.2, chapter 7
Issue 1120: DynAny issue (05), CORBA 2.2, chapter 7
Issue 1121: DynAny issue (06), CORBA 2.2 chapter 7
Issue 1122: DynAny issue (07), CORBA 2.2 chapter 7
Issue 1123: DynAny issue (08), CORBA 2.2 chapter 7
Issue 1127: POA TRANSIENT Policy needs clarification
Issue 1135: POAManager transition to same state
Issue 1144: What does DynAny::current_component() do if invoked on a primit
Issue 1147: DynAny issue
Issue 1150: POACurrent should be augmented for efficiency and symmetry
Issue 1157: DynUnion::member_name() issue
Issue 1158: DynUnion::set_as_default question
Issue 1159: DynUnion interface unsafe as specified
Issue 1161: Etherialization when destroying trees of POAs
Issue 1162: Problems with ORB shutdown
Issue 1314: Access to the Active Object Map
Issue 1407: Interaction of find_POA() and AdapterActivatorts and create_POA()
Issue 1408: POA destroy() operation is ill-defined
Issue 1409: Multiple threads calling destroy() once destroy() operation has begun
Issue 1410: Changing default servant, etc. after POA activation
Issue 1428: Blocking POA operations
Issue 1514: typos in DynamicImplementation example
Issue 1628: POA API support for default servant
Issue 1639: DynAny and bounded strings/wstrings
Issue 1644: destroy() forDyn Any?
Issue 1645:
Issue 1646: DynAny assignment
Issue 1647: Inconsistent Typecode?
Issue 1648: DynAny::next semantics
Issue 1649: DynAny::seek semantics
Issue 1652: DynFixed IDL
Issue 1668: DynFixed interface isn"t usefu
Issue 1670: DynAny::current_component if no components?
Issue 1671: DynAny: sometimes Any, sometimes DynAny?
Issue 1675: DynAny: attributes vs operations

Issue 579: ServantActivator::etherealize (Errata for orbos/97-05-15) (port-rtf)

Click here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: Errata for orbos/97-05-15: page 3-34, 3.3.8.16  two refs to "ServantLocator::etherealize" should be "ServantActivator::etherealize"

Resolution: fixed, close issue
Revised Text:
Actions taken:
May 27, 1997: received issue
June 25, 1998: closed issue

Discussion:


Issue 580: Errata for orbos/97-05-15 page 18-2, 18.1.1, editorial (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: Append to the next to last sentence:"on a default ORB".

Resolution: Fixed in CORBA 2.2 editing process
Revised Text:
Actions taken:
May 27, 1997: received issue
January 2, 1998: closed issue

Discussion:


Issue 581: Errata for orbos/97-05-15 page 18-14, 18.5.1 (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: The C++ code for PortableServer::ServantLocator::Cookie defines Cookie directly in the PortableServer namespace. It should be inside the class ServantLocator

Resolution: Fixed in CORBA 2.2 editing process
Revised Text:
Actions taken:
May 27, 1997: received issue
January 2, 1998: closed issue

Discussion:


Issue 583: InconsistentTypeCode not specified (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: Exception "InconsistentTypeCode" raised by the ORBs DynAny creation functions is not specified. Is it declared within the ORB? Is it derived from UserException?

Resolution: Fixed in 2.3
Revised Text:
Actions taken:
June 13, 1997: received issue
June 22, 1998: moved from orb_revision to port-rtf
August 12, 1999: closed issue

Discussion:
 closed issue


Issue 584: Bug in example 4.4.1 (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: There is a bug in example 4.4.1 <example> "mems->length(2)" must be added

Resolution: close no change in 2.4
Revised Text:
Actions taken:
June 13, 1997: received issue
June 23, 1998: moved from orb_revision to port-rtf
August 12, 1999: closed issue

Discussion:


Issue 612: use_servant_manager and default_servant (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: What if both use_servant_manager and default_servant set?

Resolution: clarified, close issue
Revised Text:
Actions taken:
June 20, 1997: received issue
June 25, 1998: closed issue

Discussion:


Issue 613: Default_servant and NON_UNIQUE_ID (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: What if Default_servant and NON_UNIQUE_ID?

Resolution: clarified, close issue
Revised Text:
Actions taken:
June 20, 1997: received issue
June 25, 1998: closed issue

Discussion:


Issue 614: Threading and shutdown interfaces (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: The ORB interface for shutdown is incomplete and underspecified. work_pending and perform_work as specified are inadequate. See suggested changes in communicating archive file.

Resolution: issue closed, no action
Revised Text:
Actions taken:
June 20, 1997: received issue
July 30, 1998: closed issue

Discussion:


Issue 616: POA::id_to_reference() (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: Within context of request invocation, the POA can return ObjectId for target object. One could pass this to POA::id_to_reference to get references used to invoke target. Not true in non-retain case

Resolution:
Revised Text:
Actions taken:
July 8, 1997: received issue

Discussion:


Issue 619: Section 2.4 defines typedef void status- no legal IDL (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: This is not legat IDL, since void can only be used as the return type of an operation declaration, per the grammar

Resolution: clarified/fixed
Revised Text:
Actions taken:
July 11, 1997: received issue
June 25, 1998: closed issue

Discussion:


Issue 628: POA::activate_object_with_id() and POA::create_reference_with_id() (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: The paragraphs describing when calls for these operations are NOT valid are confusing. Clarify the text to make this more obvious

Resolution: Fixed in Rev 2.3
Revised Text:
Actions taken:
July 16, 1997: received issue
February 22, 1999: closed issue

Discussion:


Issue 629: Object::get_implementation() (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: Object::get-implementation() operation was supposed to be deprecated, but the orbos/97-0501[56] Portability submission doesn"t. It should be since ImplementationDe is still undefined

Resolution: fixed, close issue
Revised Text:
Actions taken:
July 10, 1997: received issue
June 25, 1998: closed issue

Discussion:


Issue 638: Section 3.3.1: _this() and IMPLICIT_ACTIVATION need clarification (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: second bullet: "..a language mapping may provide a default implementation of this interface...". For C++ it appears that Servant::_default_POA() operation is intended to provide feature t

Resolution: clarified/fixed
Revised Text:
Actions taken:
July 30, 1997: received issue
July 30, 1997: moved to issue #637
July 30, 1997: closed issue

Discussion:
 closed issue


Issue 639: Sections 18.1.1 and/or18.1.2: implicit activation (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: These sections should explicitly state that Servant::_default_POA() is used by the ORB to accomplish implicit activation

Resolution: clarified/fixed, move to issue 637
Revised Text:
Actions taken:
July 30, 1997: received issue
July 30, 1997: moved to issue #637
July 30, 1997: closed issue

Discussion:
 closed issue


Issue 642: Add operation to POAManager to query state (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: There is no operation to query state of POAManager. Add:          enum State { HOLDING, ACTIVE, DISCARDING, INACTIVE };             State get_state()     to interface

Resolution: Accepted for Portability 2.3 RTF.
Revised Text: Revision: Page 9-19, Section 9.3.2 "POAManager Interface". Add
Actions taken:
August 1, 1997: received issue
July 30, 1998: closed issue

Discussion:


Issue 643: return of invalid Servant as result of incarnate() or preinvoke() (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: Spec does not address case when ServantManager returns an invalid Servant to POA as result of an incarnate() or preinvoke() operation. Spec should be clarified

Resolution: Accepted for Portability 2.3 RTF
Revised Text: Revision: Page 9-34, 9.3.4 ServantManager Interface. Add a
Actions taken:
August 4, 1997: received issue
July 30, 1998: closed issue

Discussion:


Issue 644: Hierarchy example in 14.24.5 incorrect (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: The IDL for interface G does not inherit from interface D, but the generated POA_G__vepv structure contains a POA_D__epv *.

Resolution: Fixed in CORBA 2.2 Editing process
Revised Text:
Actions taken:
August 4, 1997: received issue
February 26, 1998: closed issue

Discussion:


Issue 645: PortableServer::POA::AdapterInactive exception is never used in IDL (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: The exception PortableServer::POA::Adapterinactive is never used in the IDL in section 3.4.2. It looks like it was left over when POAManager interface was added. Should be removed

Resolution: fixed, close issue
Revised Text:
Actions taken:
August 1, 1997: received issue
June 25, 1998: closed issue

Discussion:


Issue 648: Server request and oneway operations (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: Given it"s optional to call set_result operation of CORBA::ServerRequest, an ORB can"t determine whether operation supported is oneway or not

Resolution: closed with no action
Revised Text:
Actions taken:
August 4, 1997: received issue
July 30, 1998: closed issue

Discussion:
deferred in June 2011 to the next RTF


Issue 654: Chapter 4.3, 4.3.3.7, Comments on DynAny (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: At time of creation a DynAny contains typecode but no value. Whay exception is raised by various get operations?Put something in the raises clause of the get operations

Resolution: changes incorporated close issue in 2.4
Revised Text: : See ptc/99-03-02
Actions taken:
August 7, 1997: received issue
August 12, 1999: closed issue

Discussion:


Issue 655: Chapter 4.3.3 (editorial) (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: Several of the bullet items at the beginning of this section are repeated.

Resolution: fixed
Revised Text:
Actions taken:
August 7, 1997: received issue
June 25, 1998: closed issue

Discussion:


Issue 656: Chapter 4.3.3.2, Comments on Dynamic Any (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: Aliases are not dealt with at all in this chapter and some form of TypeCode equivalence is implied ut never defined. How about bound and a unbound string. Typecode equivalence needs to be defin

Resolution: Fixed in Rev 2.3 with the TypeCode equivalence fixes.
Revised Text:
Actions taken:
August 7, 1997: received issue
February 22, 1999: closed issue

Discussion:


Issue 657: Chapter 4.3.3.8, Comments on DynAny (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: There are repeated references in the chapter to narrowing a DynAny to the desired type, but there is no standard narrowing mechanism defined in CORBA IDL. Editorials in para 5 and 8 also

Resolution: fixed, close issue
Revised Text:
Actions taken:
August 7, 1997: receivved issue
June 25, 1998: closed issue

Discussion:


Issue 658: Chapter 4.3.6, Comments on DynAny (current_member_type) (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: current_member_type operation "may return an empty string since the TypeCode of the struct being manipulated may not contain the names of members in the struct." When can this occur?

Resolution: fixed, close issue
Revised Text:
Actions taken:
August 7, 1997: received issue
June 25, 1998: closed issue

Discussion:


Issue 659: Chapter 4.3.7 (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: Why are there explicit operations for setting value in a struct, enum seq, etc., but not for setting the discriminator and/or member value of a union?

Resolution: fixed/clarified, close issue
Revised Text:
Actions taken:
August 7, 1997: received issue
June 25, 1998: closed issue

Discussion:


Issue 660: Chapter 4.3.8, length attribute (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: THe length attribute contains the number of elements in (or to be contained in) the sequence. Which is it, in or to be in? What does this mean??

Resolution: changes incorporated close issue in 2.4
Revised Text: See ptc/99-03-02
Actions taken:
August 7, 1997: received issue
August 12, 1999: closed issue

Discussion:


Issue 662: PolicyType constants not assigned (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: None of the policy objects defined in PortableServer IDL module have PolicyType constants assigned. These are needed to implement the policy objects correctly

Resolution: close issue
Revised Text:
Actions taken:
August 9, 1997: received issue
June 25, 1998: closed issue

Discussion:


Issue 664: section 3.3.6: clarification of SINGLE_THREAD_MODEL policy (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: Statement in section 3.3.6 that "no serialization of preinvoke or postinvoke may be assumed".Spec should be clarified to state that the SINGLE_THREAD_MODEL policy.

Resolution: clos eissue, clarified
Revised Text:
Actions taken:
August 9, 1997: received issue
June 25, 1998: closed issue

Discussion:


Issue 667: POAs and threads (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: The multithreading support ooffered by POAs is fairly inadequate for real-world, portable, multithreaded applications.(examples available in corresponding archive file)

Resolution: Close with no change.
Revised Text: Close with no change.
Actions taken:
August 11, 1997: received issue
August 12, 1999: closed issue

Discussion:
While it would be nice in some cases to have additional functionality, 
it is certainly possible to implement and use an ORB without any 
clarification. This suggestion is more properly the subject for an RFP. 
The Real-Time CORBA has a suitable scope for this, and the current joint 
submission to it covers this functionality.


Issue 668: Definition of Lifespan policy of TRANSIENT should be extended (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: Definition of Lifespan policy of TRANSIENT should be extended toinclude temporary network outages that don"t affect server processes

Resolution: closed with no change
Revised Text: Close without change. Network connections between client and server
Actions taken:
August 11, 1997: received issue
August 12, 1999: closed issue

Discussion:
are permitted to come and go, even for transient objects. 

What seems to be suggested here is that in some cases it may be 
impossible to re-establish a connection that has been broken, and that 
this situation should have some affect on the meaning of TRANSIENT. It 
isn't obvious how this change in wording would affect orb 
implementations or users. If the user cannot re-establish contact with 
the server then it is going to get an error in any case. On the server 
side, no requests will be received for the objects whose references 
had now unreachable addresses. If new references are created using a 
different address, why should they not be valid?


Issue 669: Clarification on TRANSIENT (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: IIOP implementors can"t depend only on host and port to reject transient object references (section 3.3.7.2)

Resolution: clos eissue
Revised Text:
Actions taken:
August 11, 1997: received issue
June 25, 1998: closed issue

Discussion:


Issue 670: Section 3.2.2: clarification needed (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: Section 3.2.2 should state that an Object Id can appear in the Active Object Map only once

Resolution: fixed, close issue
Revised Text:
Actions taken:
August 11, 1997: received issue
June 25, 1998: closed issue

Discussion:


Issue 671: Behavior of ServantManager should be clarified (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: Behavior of ServantManager should be clarified with respect to GIOP Locate requests.Just because incarnate or preinvoke are calledit"s not necessarily case that servant will be invoked

Resolution: Accepted for CORBA 2.3.
Revised Text: Revision: Section 9.3.6 "ServantLocator Interface", page 9-24.
Actions taken:
August 11, 1997: received issue
July 30, 1998: closed issue

Discussion:


Issue 672: Behavior of preinvoke and postinvoke (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: Behavior of preinvoke and postinvoke are ambiguous about when the request is finished and the reply is delivered to the client

Resolution: closed, duplicate of 921
Revised Text:
Actions taken:
August 11, 1997: received issue
July 30, 1998: closed issue

Discussion:


Issue 676: use of root POA to implement root POA and POAMAnager impossible (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: It"s impossible to use root POA to implement the root POA and its POAManager, due to a deadlock because POAManager starts in the HOLDING state.

Resolution: closed with no action
Revised Text:
Actions taken:
August 15, 1997: received issue
February 25, 1999: closed issue

Discussion:


Issue 677: What happens if programmer invokes destroy() operation? (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: What happens if the programmer invokes the destroy() operation on the root POA? The spec should be changed to state that destroying the root POA is equivalent to calling ORB::shutdown()

Resolution: closed issue
Revised Text:
Actions taken:
August 15, 1997: received issue
June 25, 1998: closed issue

Discussion:


Issue 715: Change interface of AdaptorActivator::unknown_adapter() method (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized
Severity:
Summary:
Summary: Change this interface to allow the implementor to raise the ForwardRequest exception, to indicate that the incoming request that cause method to be called can be appropriately forwarded

Resolution: clarified/fixed
Revised Text:
Actions taken:
September 4, 1997: received issue
June 25, 1998: closed issue

Discussion:


Issue 728: no PolicyTypes for POA policies (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity: Minor
Summary:
Summary: PolicyType values are allocated by the OMG. None of the Policy interfaces supplied by the POA spec have PolicyType values allocated for them yet

Resolution: closed issue, fixed
Revised Text:
Actions taken:
October 3, 1997: received issue
June 25, 1998: closed issue

Discussion:


Issue 729: POA C++ example in orbos/97-05-15 (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity: Minor
Summary:
Summary: orbos/97-05-15, section 3.6.2-creating a POA: The code in this section should first set the length of the sequence before using operator[]

Resolution: fixed, close issue
Revised Text:
Actions taken:
September 19, 1997: received issue
February 26, 1998: closed issue

Discussion:


Issue 736: ORB::run (port-rtf)

Click
here for this issue's archive.
Nature: Revision
Severity: Minor
Summary:
Summary: On page 2-11 of the portability submission it"s specified that operation ORB::run returns when the ORB has shut down. Does this mean that ORB::run returns when ORB::shutdown returns? The behaviour is not well specified

Resolution: Accepted for CORBA 2.3.
Revised Text: Revision: Section 4.9.3 "run", page 4-20. At the end of the
Actions taken:
October 3, 1997: received issue
July 30, 1998: closed issue

Discussion:
:shutdown has been called and the shutdown has



Issue 737: Defining a new standard CORBA exception named OBJECT_DISABLED (port-rtf)

Click
here for this issue's archive.
Nature: Enhancement
Severity: Significant
Summary:
Summary: There are scenarios where it may be interesting to raise an exception indicating that a CORBA object exists but is not operable unless corrective action is taken It"s appropriate to distinguish between the 3 following exceptions: TRANSIENT, OBJECT_DISABLED, and OBJECT_NOT_EXIST

Resolution: close no change in 2.4
Revised Text:
Actions taken:
October 3, 1997: received issue
August 12, 1999: closed issue

Discussion:
This issue has been sitting in the port-rtf list for quite a while. the Portability submitters did not see it fit to add this to the spec. It seems inappropriate
for the Core RTF to add this feature without an overwhelming push to do so, of which there has been scant evidence. Consequently, propose that this one be laid to
rest.


Issue 738: DSI servants should support an _is_a method which receives an ObjectId (port-rtf)

Click
here for this issue's archive.
Nature: Enhancement
Severity: Significant
Summary:
Summary:  "DSI servants should support an _is_a method which 
    receives a RepositoryId and is invoked by the ORB to support remote
    _is_a_requests. _is_a should be included in the list of operations 
    that a DSI servant should support"  
 

Resolution:
Revised Text:
Actions taken:
October 3, 1997: received issue
July 30, 1998: closed issue

Discussion:
 Revision:   Section 9.3.1 "The Servant IDL type", page 9-14. Add             



Issue 742: Defining Cookie as sequence<octet> instead of native (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity: Minor
Summary:
Summary: It is not clear why the Cookie parameter in the preinvoke and postinvoke operations in the ServantLocator interfaces were defined as native. Defining it as native introduces more work in klanguage mappings

Resolution: closed with no action
Revised Text:
Actions taken:
October 3, 1997: received issue
July 30, 1998: closed issue

Discussion:


Issue 743: ServantActivator interface (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity: Minor
Summary:
Summary: Some of the statements set in section 3.3.5 of POA chapter (ServantActivator interface) are not correct in order to describe behaviour of incarnate and etherialize operations

Resolution: resolved
Revised Text: After contacting Juan for clarification, I learned that his concern is that there is no need to serialize calls to incarnate or etherealize for different ObjectIds - serialization should be done separately for each distinct ObjectId. Revised Text: Replace the last bulleted item of section 11.3.5 on pg 11-22 with the following: . Incarnations of a particular object may not overlap; that is, incarnate shall not be invoked with a particular ObjectId while, within the same POA, that ObjectId is in use as the ObjectId of an activated object or as the argument of a call to incarnate or etherealize that has not completed.
Actions taken:
October 3, 1997: received issue
August 12, 1999: closed issue

Discussion:


Issue 744: get_servant_manager and set_servant_manager (port-rtf)

Click
here for this issue's archive.
Nature: Revision
Severity: Minor
Summary:
Summary: get_servant_manager and set_servant_manager operations should not require the USE_SERVANT_MANAGER policy to work . These paragraphs should be dropped

Resolution: closed with no action
Revised Text:
Actions taken:
October 3, 1997: received issue
July 30, 1998: closed issue

Discussion:


Issue 745: DynAny : invoke operation next() (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity: Minor
Summary:
Summary: It may be convenient for programmers that operation next() be invoked in order to access the first component of a DynAny

Resolution: Closed with no action
Revised Text:
Actions taken:
October 3, 1997: received issue
July 30, 1998: closed issue

Discussion:


Issue 746: DynAny section 4.3.3.7 (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity: Minor
Summary:
Summary: Clarify behaviour of operations for accessing components of a constructed DynAny when they are members of basic data types

Resolution: clarified, close issue
Revised Text:
Actions taken:
October 3, 1997: received issue
June 25, 1998: closed issue

Discussion:


Issue 747: Inconsistent usage of next() for DynUnions (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity: Minor
Summary:
Summary: If we decide to maintain that next() doesn"t need to be invoked in order to access the first component of a DynAny, then it is not necessary to invoke next() twice in order to get access to the value of the member in the DynUnion

Resolution: changes incorporated close issue in 2.4
Revised Text: see ptc/99-03-02
Actions taken:
October 3, 1997: received issue
August 12, 1999: closed issue

Discussion:


Issue 748: Value of length attribute in DynAny (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity: Minor
Summary:
Summary: Value of the length attribute in the DynAny object associated to a sequence must be set prior to inserting values of the sequence

Resolution: closed issue
Revised Text:
Actions taken:
October 3, 1997: received issue
June 25, 1998: closed issue

Discussion:


Issue 750: Setting the value of a DynAny after calling rewind() may be harmful (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity: Minor
Summary:
Summary: Instead of making implementations of DynAny more complex, we suggest to clarify that calling rewind() to set the value associated a DynAny object may lead to unpredictable results. It should also be specified that rewind() is only safe if used  to re-read components associated to DynAny or re-write components associated to a DynAny if the type associated to DynAny remains the same and that it is of fixed length

Resolution:
Revised Text:
Actions taken:
October 6, 1997: received issue

Discussion:


Issue 752: Invoke a create reference operation passing empty RepositoryID string (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity: Minor
Summary:
Summary:  In current POA specification, it is not specified
 what is the behaviour of create_reFerence* operations
 that receive an empty RepositoryId string.
 

   The specification should clearly state what"s the
 behaviour in this case, but it doesn"t.
 

Resolution:
Revised Text:
Actions taken:
October 6, 1997: received issue
July 30, 1998: closed issue

Discussion:


Issue 774: Question about ObjectId (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: The POA specs are particularly confusing on the definition of ObjectID (POA spec as of May 20): p 3-38, section 3.4.1 IDL in COR BA module concerning the POA, p 3-39, section 3.4.2 IDL for POA and Related Interfaces, p 14-43, Operations for obtaining initial object references (C mapping). We have two legal definitions of ObjectId: PortableServer::ObjectId, and CORBA::ORB::ObjectId, specified differently

Resolution: clarified, close issue
Revised Text:
Actions taken:
October 16, 1997: received issue
June 25, 1998: closed issue

Discussion:


Issue 802: POAManager (02) (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity: Minor
Summary:
Summary: How does a POA associate itself with a POAManager?
 

Resolution:
Revised Text: clarified/fixed
Actions taken:
December 12, 1997: received issue
January 12, 1998: moved from C++ to Portability RTF
February 22, 1999: closed issue

Discussion:
 closed issue


Issue 921: Description of ServantActivator::etherialize() (port-rtf)

Click
here for this issue's archive.
Nature: Revision
Severity:
Summary:
Summary: The description of the ServantActivator::etherialize() and
 ServantLocator()::postinvoke() operations do not describe what actions
 the POA should take if either of these operations returns a system
 exception.

Resolution: :postinvoke() operations do not describe what actions
Revised Text:
Actions taken:
January 27, 1998: received issue
July 30, 1998: closed issue

Discussion:


Issue 934: POA::create_reference_*() Issue (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: The descriptions of POA::create_reference() and
 POA::create_reference_with_id() do not describe the intf argument.
 

Resolution: :create_reference_with_id() do not describe the intf argument.
Revised Text:
Actions taken:
February 2, 1998: received issue
June 25, 1998: closed issue

Discussion:
 received issue


Issue 958: Separator character for POAs should be specified (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity: Minor
Summary:
Summary: The Portability submission should specify a separator charater
 for POAs that may not be used in a POA name.  We propose that
 "/" be the separator character in POA name, and that a "/" is
 not valid if used in a POA name.  This provides for vendors to
 provide a more compact on-the-wire encoding, rather than
 use sequence<string>, and also is a convenience for the user
 if we allow compound POA names to be used anywhere an
 adapter_name is currently used in the POA APIs.
 
 

Resolution:
Revised Text:
Actions taken:
February 24, 1998: received issue
July 30, 1998: closed issue

Discussion:


Issue 962: need list_POAs call (port-rtf)

Click
here for this issue's archive.
Nature: Revision
Severity: Minor
Summary:
Summary: There is currently no way to determine all currently active
 subPOAs of a given POA.  We propse that a new method
 be added to the POA to provide this functionality.  This would
 allow application developers to write portable tools which
 browse currently active POAs.
 
 We propose a new method:
 
 sequence<string> list_POAs();
 
 which will return a list of currently active sub-POAs under
 the current POA.
 

Resolution: Incorporate changes in 2.4 and close issue.
Revised Text: A. Add the following new section between sections 11.3.8.7 "the_parent" and 11.3.8.8 "the_POAManager". "the_children" readonly attribute POAList the_children; This attribute identifies the current set of all child POAs of the POA. The set of child POAs includes only the POA's immediate children, and not their descendants. B. In section 11.4 "IDL for PortableServer module". Add the following declaration after the forward declaration of the POA interface: typedef sequence<POA> POAList; Add the following attribute declaration in the definition of the POA interface between the attributes the_parent and the_POAManager: readonly attribute POAList the_children; C. In section 11.5 "UML Description of PortableServer" update the UML accordingly. i.e. in figure 11-4, in the PortableServer::POA box, insert the line: the_children : PortableServer::POAList between the line: the_parent : PortableServer::POA and the line: the_manager : PortableServer::POAManager (Hopefully that diagram is a frame manipulatable diagram and not a cut and paste job from somewhere else.:-()
Actions taken:
February 27, 1998: received issue
August 12, 1999: closed issue

Discussion:
This seems to be a useful feature for management applications 
which may wish to browse the set of currently active POAs in a portable 
fashion. Propose that we add this feature as described below.


Issue 963: Can"t determine a POA creation policies (port-rtf)

Click
here for this issue's archive.
Nature: Revision
Severity: Minor
Summary:
Summary: There is currently no portable way to determine what
 policies a POA was created with.  We propose adding the following:
 
 readonly attribute PolicyList the_policies;
 
 Which returns the policies which the POA was created with.
 

Resolution:
Revised Text:
Actions taken:
February 27, 1998: received issue

Discussion:


Issue 964: No POA hook for future Policies (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity: Minor
Summary:
Summary: The POA spec currently provides no hook for adding future POA
 Policies.  Several submission currently in the works will be adding
 new policies to the POA. We propose a generic create_policy() method which can be used
 to create any Policy.  We are open for discussion on the signature,
 but a current thought is something like this:
 
 Policy create_policy(PolicyType policyType, Any policyValue);
 
 

Resolution:
Revised Text:
Actions taken:
February 27, 1998: received issue
July 30, 1998: closed issue

Discussion:


Issue 993: ORB/POA and ServanrtManager issue (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity: Minor
Summary:
Summary: What should the ORB/POA do if a ServantManager or an object operation
 throws a ForwardRequest and supplies an object that does not support the
 interface that the operation was defined in?
 
 

Resolution: closed
Revised Text:
Actions taken:
March 7, 1998: received issue
August 12, 1999: closed issue

Discussion:
There is no obligation for the ORB/POA on the server side to do 
anything special in this case. The ORB should do the obvious - send a 
LOCATION_FORWARD reply to the caller. 

If there is anything that should be done on the client side when the 
reply is received, then it is a language binding issue. In the case of 
collocation, the behavior should be the same on the grounds of 
location transparency. 

Have a copy of  this issue assigned to each of the Language Binding RTFs, 
and remove it from the Core list. 
Revised Text: 
Actions taken: Have a copy of tthis issue assigned to each of the 
Language Binding RTFs, and remove it from the Core list.


Issue 994: ServantManager and ForwardRequest issue (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: When a ServantManager throws a ForwardRequest exception from a call to
 incarnate() or preinvoke(), how does the ORB/POA know whether the
 forward request was for the object in question or to forward to a
 different ServantManager?  It seems that there is an ambiguity here,
 because the FowardRequest could mean two different things.
 

Resolution: Close no change in 2.4
Revised Text:
Actions taken:
March 7, 1998: received issue
June 4, 1999: closed issue

Discussion:
This should be closed without change. 

While at first look it seems ambiguous, when you look closely it is not. 
When incarnate/preinvoke is called on the servant for a servant manager, 
if ForwardRequest is thrown it applies to the reference that the call 
was working on. But, if while doing that there is a recursive call to 
incarnate/preinvoke the servant manager reference itself then a 
ForwardRequest from the servant that handles that affects the servant 
manager reference itself. 

This is hard to explain, and subtle to implement, but not especially 
expensive in either time or code. I have an existence proof so I know it 
is feasible.


Issue 997: Can ServantManagwers be incarnated by other Servant Managers? (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: What would happen if someone coded up an implementation of a
 ServantManager whose POA used a ServantManager?  (I know this is weird,
 but legal.)
 

Resolution: Close no change in 2.4
Revised Text: recommend closing this without change. I just made the same recommendation for Issue 994 because the issue isn't really there at all. Because there is no problem with that, there is no problem to fix here. As Steve pointed out, there is nothing illegal with using a servant manager to incarnate another servant manager. I would strongly resist making a special case restriction here. Some of the ideas generated by this issue may form the basis for future RFP work.
Actions taken:
March 11, 1998: received issue
August 12, 1999: closed issue

Discussion:


Issue 1089: Inconsistent TypeCode exception never defined (port-rtf)

Click
here for this issue's archive.
Nature: Revision
Severity:
Summary:
Summary: In section 7.2.2 of the CORBA 2.2 spec, add the following IDL
 declaration before the definion of the CORBA::ORB::create_*any()
 operations:
 
 exception InconsistentTypeCode {};
 

Resolution: :ORB::create_*any()
Revised Text:
Actions taken:
March 20, 1998: received issue
June 25, 1998: closed issue

Discussion:
 clarified, close issue


Issue 1116: DynAny issues (port-rtf)

Click
here for this issue's archive.
Nature: Revision
Severity:
Summary:
Summary: Section 7.1 states:
 
 "Destroying a DynAny object implies deleting the buffer it points to and
 also destroying all DynAny objects obtained from it. Invoking operations
 using references to descendants of a destroyed DynAny object leads to
 unpredictable results. Note that releasing a reference to a DynAny
 object will not delete the buffer pointed by the object, since the
 object indeed exists (it has not been explicitly destroyed)."
 
 This does not seem to completely specify the semantics of how destroying
 a DynAny affects its semantics.  If I have 3 DynAnys, DA1, DA2, and DA3,
 where I created DA2 from DA1 using current_component(), and DA3 from DA2
 also using current_component, what are the effects of the following
 operations:
 
 1.  DA1->destroy()
 
 2.  DA2->destroy()
 
 3.  DA3->destroy()
 
 

Resolution:
Revised Text:
Actions taken:
March 30, 1998: received issue
June 19, 1998: moved from orb_revision to port-rtf
July 30, 1998: closed issue

Discussion:


Issue 1117: DynAny issues (02), CORBA 2.2 chapter 7 (port-rtf)

Click
here for this issue's archive.
Nature: Revision
Severity:
Summary:
Summary: * The whole DynAny description should be reworded to avoid talking
 about buffers, as I think this is more confusing than helpful.
 

Resolution: incorporated changes close issue in 2.4
Revised Text: see ptc/99-03-02
Actions taken:
March 31, 1998: received issue
June 19, 1998: moved from orb_revision to port-rtf
August 12, 1999: closed issue

Discussion:


Issue 1118: DynAny issue (03), CORBA 2.2 chapter 7 (port-rtf)

Click
here for this issue's archive.
Nature: Revision
Severity:
Summary:
Summary: * Page 7-9, section "Iterating through components of a DynAny": The
 first sentence in this section says that DynAny allows iteration
 through structs. It should make it clear that it also allows
 iteration through sequences, arrays, and unions as well.
 

Resolution:
Revised Text:
Actions taken:
March 31, 1998: received issue
June 19, 1998: moved from orb_revision to port-rtf
July 30, 1998: closed issue

Discussion:
 Revision:   Section 7.2.3 "The DynAny interface", Page 7-9, 



Issue 1119: DynAny issue (04), CORBA 2.2, chapter 7 (port-rtf)

Click
here for this issue's archive.
Nature: Revision
Severity:
Summary:
Summary: * Page 7-10 and 7-11, section 7.2.5: the DynEnum interface uses
 read/write attributes to allow get/set of enum values as strings or
 as ulongs. What happens if a value is specified that is outside the
 enumerator range of values? The use of attributes here disallows
 throwing an InvalidValue exception.
 

Resolution: changed attributes to operations
Revised Text: see ptc/99-03-02
Actions taken:
March 31, 1998: received issue
June 19, 1998: moved from orb_revision to port-rtf
August 12, 1999: closed issue

Discussion:
 incorporated changes close issue in 2.4


Issue 1120: DynAny issue (05), CORBA 2.2, chapter 7 (port-rtf)

Click
here for this issue's archive.
Nature: Revision
Severity:
Summary:
Summary: * Page 7-13 and 7-14, section 7.2.7: the DynUnion interface supports
 a set_as_default attribute that can be used to see if the
 discriminator is set to a default value. This should be a readonly
 attribute, since makeing it read/write means I can use it to say that
 the discriminator has a default value when it really doesn"t.
 

Resolution: DynUnion revised to fix this problem
Revised Text: see ptc/99-03-02
Actions taken:
March 31, 1998: received issue
June 19, 1998: moved from orb_revision to port-rtf
August 19, 1999: closed issue

Discussion:


Issue 1121: DynAny issue (06), CORBA 2.2 chapter 7 (port-rtf)

Click
here for this issue's archive.
Nature: Revision
Severity:
Summary:
Summary: * Page 7-13, section 7.2.8: the description of the "length" attribute
 for DynSequence says that the length is set to zero for unbounded
 sequences. This is useless as it confuses bound with length. That
 part of the sentence should be removed. If I want to know the
 sequence bound, I can ask its TypeCode. The DynSequence length
 attribute should be used to get/set the actual length of the sequence
 in the DynSequence regardless of whether its bounded or unbounded.
 

Resolution:
Revised Text:
Actions taken:
March 31, 1998: received issue
June 19, 1998: moved from orb_revision to port-rtf
July 30, 1998: closed issue

Discussion:


Issue 1122: DynAny issue (07), CORBA 2.2 chapter 7 (port-rtf)

Click
here for this issue's archive.
Nature: Revision
Severity:
Summary:
Summary: * Page 7-15, C++ example at the top of the page: "value1" should be
 of type CORBA::Long, not long; "value2" should be of type
 CORBA::Boolean, not boolean. The "mems" sequence does not have its
 length set anywhere, so the first invocation of operator[] on it is
 illegal; "mems.length(2);" should be invoked before that. The
 DynAny::to_any() returns a CORBA::Any*, not a CORBA::Any, so the
 "result" variable should be declared as a CORBA::Any_var.
 

Resolution: :Long, not long; "value2" should be of type
Revised Text: :Boolean, not boolean. The "mems" sequence does not have its
Actions taken:
March 31, 1998: received issue
June 19, 1998: moved from orb_revision to port-rtf
July 30, 1998: closed issue

Discussion:
:Any_var.


Issue 1123: DynAny issue (08), CORBA 2.2 chapter 7 (port-rtf)

Click
here for this issue's archive.
Nature: Revision
Severity:
Summary:
Summary: * Page 7-16, C++ example: the do-while loop condition should be
 
 while (!found && dyn_struct->next());
 
 That is, the ! negation of next() currently present in the example is
 wrong.
 
 In the same example, the semicolons after the close braces for the
 two "if" statements and the eval_filter() function are all unnecessary.
 
 * Overall: somebody needs to globally substitute "associated with"
 for "associated to" on this entire chapter.
 
 

Resolution:
Revised Text:
Actions taken:
March 31, 1998: received issue
June 19, 1998: moved from orb_revision to port-rtf
July 30, 1998: closed issue

Discussion:


Issue 1127: POA TRANSIENT Policy needs clarification (port-rtf)

Click
here for this issue's archive.
Nature: Clarification
Severity:
Summary:
Summary: The current POA spec needs some clarification on the TRANSIENT
 lifespan policy.  The current spec defines TRANSIENT as follows:
 
 "The objects implemented in the POA cannot outlive the process in
 which they are first created.  Once the POA is deactivated, use of any
 object references generated from it will result in an OBJECT_NOT_EXIST
 exception."
 
 

Resolution:
Revised Text:
Actions taken:
March 31, 1998: received issue
July 30, 1998: closed issue

Discussion:


Issue 1135: POAManager transition to same state (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: The POAManager processing states diagram does not show an arrow from a
 given state to itself. Does it mean that the state transition from one
 state to the same state is disallowed? The accompanying text does not talk
 about this. 
 
 Suggestion is to allow one state to same state transition without raising
 an exception. The action should be no-op.
 

Resolution:
Revised Text:
Actions taken:
April 9, 1998: received issue
June 25, 1998: closed issue

Discussion:


Issue 1144: What does DynAny::current_component() do if invoked on a primit (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: What does DynAny::current_component() do if invoked on a DynAny that
 contains a primitive type?
 
 I think that it should raise a CORBA::DynAny::TypeMismatch exception in
 this case.
 

Resolution: incorporated changes close issue in 2.4
Revised Text:
Actions taken:
April 16, 1998: received issue
August 19, 1999: closed issue

Discussion:
Specified semantics of create operations with respect to current position and 
initial values 
Revised Text: see ptc/99-03-02


Issue 1147: DynAny issue (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: What should a DynStruct(or other structured DynAny type) do if someone
 calls a primitive inserter or getter past the end of the structure?
 
 For example:
 
 // IDL
 struct Foo {
     boolean b;
 };
 
 // C++
 
 	DynStruct_var	ds = orb->create_dyn_struct(_tc_Foo);
 	
 	ds->insert_boolean(0);
 	ds->insert_boolean(1);  // what exception should happen here?
 

Resolution: incorporated change close issue in 2.4
Revised Text: see ptc/99-03-02
Actions taken:
April 16, 1998: received issue
August 19, 1999: closed issue

Discussion:
Calling an insert or get operation on a DynAny that has components but has a current 
position of -1 raises InvalidValue.


Issue 1150: POACurrent should be augmented for efficiency and symmetry (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: To write efficient DSI implementations, there needs to be a new
 operation to POACurrent, as follows.
 
 	CORBA::RepositoryId get_interface() raises (NoContext);
 
 	Description: The get_interface operation returns the
                    RepositoryId of the interface on which the
                    request was made. If called outside the
                    context of a POA-dispatched operation,
                    a NoContext exception is raised.
 

Resolution: Close with no change in 2.4 with the above explanation
Revised Text:
Actions taken:
April 17, 1998: received issue
August 19, 1999: closed issue

Discussion:
Close with no change. 

  Some time ago I sent out a complex strawhorse proposal on how to 
  accomplish some of what this issues requests. There has since 
  been extensive discussion on the general subject, often jointly 
  with people from CorbaSec. 

  Based on that discussion, I am now convinced that it is better 
  to expect the servant to provide this information. Doing otherwise 
  invites abuse by clients that might tamper with the object reference. 


Issue 1157: DynUnion::member_name() issue (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: What should DynUnion::member_name() & DynUnion::member() return for a
 union whose discriminator value does not match any of the union switch
 arms?
 

Resolution: Revision of the DynUnion interface fixes this problem
Revised Text: see ptc/99-03-02
Actions taken:
April 20, 1998: received issue
August 19, 1999: closed issue

Discussion:


Issue 1158: DynUnion::set_as_default question (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: There is almost no information about the behavior of the
 DynAny::set_as_default attribute.  I assume that when getting the
 attributes value, true is returned if the union has a default branch and
 the current discriminator value of the union falls in the range of the
 default branch.  I also assume that setting the set_as_default attribute
 to true causes the union discriminator value to be set to a value that
 matches the default branch.  But what should setting the set_as_default
 attribute to false do?
 

Resolution: Revision of DynUnion interface fixes this problem
Revised Text:
Actions taken:
April 20, 1998: received issue
August 19, 1999: closed issue

Discussion:


Issue 1159: DynUnion interface unsafe as specified (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: The DynUnion interface is pretty unsafe as specified.  There is no text
 in the description of the interface that states whether the programmer
 or the DynUnion implementation is responsible for assuring that the
 discriminator value and the chosen member of the underlying union are
 consistent.  Given that the programmer can access the discriminator
 value and the member value as separate DynAny objects, it is awkward for
 the implementation to detect an inconsistent union value.
 

Resolution: Revision of DynUnion interface fixes this problem
Revised Text: see ptc/99-03-02
Actions taken:
April 20, 1998: received issue
August 19, 1999: closed issue

Discussion:


Issue 1161: Etherialization when destroying trees of POAs (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: There is not (as far as I can see from the spec) any guarantee of
 the order of events when a hierarchy of POAs is destroyed. Because
 ServantActivators are themselves activated in some POA, there is no
 guarantee that when etherialization is performed for one POA that the
 servant activator itself won"t already have been deactivated. 
 

Resolution:
Revised Text:
Actions taken:
April 20, 1998: received issue
June 25, 1998: closed issue

Discussion:
 clarified/fixed


Issue 1162: Problems with ORB shutdown (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: There are some problems with ORB::shutdown as currently specified -
 specifically with the wait_for_completion parameter.
 
 There are two distinct contexts in which the call might be made:
 - in the context of an operation invocation
 - outside the context of an operation invocation.
 

Resolution: Close issue in 2.4 without change with annotation as above
Revised Text:
Actions taken:
April 20, 1998: received issue
August 19, 1999: closed issue

Discussion:
This issue appears to be outside the scope of this RTF. 
While it is a limitation, it is not a fatal one, and I see no 
reasonable upward compatible way to make a change to support it. 

This issue would be worth considering in a possible 
RFP at some future time. It would be quite reasonable to make 
this sort of change in the context of replacing servant managers 
and adapter activators with something that uses a different 
implementation technique.


Issue 1314: Access to the Active Object Map (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: How about adding visibility to the Active Object Map.  This would be
 beneficial to a factory-type server application that created and activated
 Servants and also periodically reported status on what it is in its AOM.
 
 Changes to the spec would look something like:
 
 module PortableServer
 {
 	typedef sequence<Object> ObjectSequence;
 	interface POA
 	{
 		ObjectSequence get_active_objects();
 	};
 
 };
 

Resolution:
Revised Text:
Actions taken:
May 11, 1998: received issue
July 30, 1998: closed issue

Discussion:


Issue 1407: Interaction of find_POA() and AdapterActivatorts and create_POA() (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: 1. Interaction of find_POA() and AdapterActivators and create_POA().
 
 In a single-threaded environment, one can call find_POA() and cause
 an AdapterActivator to be invoked, which will ultimately call create_POA()
 and return control back to the user after completeing the initialization of
 that POA.
 
 In a multi-threaded environment, things are not that simple.  One can call
 find_POA(), which will invoke an AdapterActivator.  Now from here many
 things can happen.  For instance, another thread can come in and call create_POA()
 and create the POA before the AdapterActivator gets a chance to.  The
 AdapterActivator will then need to handle this unexpected condition.
 Granted, this was probably a poorly written program, but properly designed
 APIs should still have defined behavior for even incorrectly written programs.
 

Resolution:
Revised Text:
Actions taken:
June 1, 1998: received issue
July 30, 1998: closed issue

Discussion:


Issue 1408: POA destroy() operation is ill-defined (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: The POA destroy() operation is ill-defined with respect to what happens
 to requests which are currently executing when destroy() is called.
 

Resolution:
Revised Text:
Actions taken:
June 1, 1998: received issue
February 23, 1999: closed issue

Discussion:
 received issue


Issue 1409: Multiple threads calling destroy() once destroy() operation has begun (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: There is also a problem with multiple threads calling destroy() once a destroy() operation has
 begun.  This is particularly important when they set wait_for_completion to true, or if they
 call destroy with a different etherealize_objects value.  My current thought on this is that
 the first thread which calls destroy determines the etherealization policy for the destroy.
 If subsequent threads call destroy() while destruction is in progress they will wait for completion
 if wait_for_completion is true, otherwise they return immediately, and let the intial thread which
 called destroy() complete the destruction.
 
 

Resolution:
Revised Text:
Actions taken:
June 1, 1998: received issue
February 23, 1999: closed issue

Discussion:


Issue 1410: Changing default servant, etc. after POA activation (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: There is currently no defined behavior for what happens when one attempts
 to change the default servant by calling set_servant() when there are already
 activations on the current default servant.  There is a similar problem for
 calls to set_servant_manager() which are just as dangerous.  For instance,
 one could have a ServantLocator installed and have its preinvoke() method
 called, then change the ServantLocator to a new one, and it would have its
 postinvoke() operation called instead of the original ServantLocator.
 

Resolution:
Revised Text:
Actions taken:
June 1, 1998: received issue
July 30, 1998: closed issue

Discussion:


Issue 1428: Blocking POA operations (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: Several operations on the POAManager and the POA itself have
 a boolean paramter wait_for_completion which is intended to
 block the thread until the operation has completed.  Unfortunately,
 this is not trivial to implement in an arbitrary multi-threaded implementation
 of the POA (or even a single-threaded for that matter).  The semantics of
 wait_for_completion are also quite  muddy in this situation, and we prefer not
 to add complexity to a system when the only gain is some very murky semantics.
 
 We would like to propose that wait_for_completion parameter is ignored
 and always set to FALSE, when the operation is invoked from a thread
 which is executing in a POA context (i.e. if Current::get_POA() returns
 a POA).  Or put another way, wait_for_completion is only meaningful
 when invoked outside the context of the POA by either a user-created
 thread, or in user-event loop (in single-thread environments).
 

Resolution:
Revised Text:
Actions taken:
June 2, 1998: received issue
March 1, 1999: closed issue

Discussion:


Issue 1514: typos in DynamicImplementation example (port-rtf)

Click
here for this issue's archive.
Nature: Revision
Severity:
Summary:
Summary: On page 9-58 of CORBA 2.2 the example DatabaseEntryImpl class has two
 problems:
 
 1. It derives from POA_PortableServer::DynamicImplementation instead of
 PortableServer::DynamicImplementation. Section 20.36.3 (page 20-100) of CORBA
 2.2 clearly states that DynamicImplementation is in the PortableServer C++
 namespace:
 
 "In C++, DSI servants inherit from the standard DynamicImplementation class.
 This class inherits from the ServantBase class and is also defined in the
 PortableServer namespace."
 
 The definition of the DynamicImplementation class on page 20-101 further shows
 it to reside in the PortableServer namespace.
 
 2. DatabaseEntryImpl has a member function named _defaultPOA instead of
 _default_POA.
 

Resolution:
Revised Text:
Actions taken:
June 9, 1998: received issue
July 30, 1998: closed issue

Discussion:


Issue 1628: POA API support for default servant (port-rtf)

Click
here for this issue's archive.
Nature: Revision
Severity:
Summary:
Summary: The current POA APIs do not adequately support the use of
 default servants in the POA.  The particular operations of
 concern are servant_to_id, servant_to_reference, and 
 id_to_servant.
 

Resolution:
Revised Text:
Actions taken:
July 2, 1998: received issue
July 30, 1998: closed issue

Discussion:
 Revision:   Section 9.3.8 "POA Interface".



Issue 1639: DynAny and bounded strings/wstrings (port-rtf)

Click
here for this issue's archive.
Nature: Revision
Severity:
Summary:
Summary: The DynAny chapter makes no mention of bounded strings. I assume that
 create_basic_dyn_any() is to be used for bounded strings, but the
 spec doesn"t say. Similarly, object references seem to belong here too,
 but again, they are not mentioned.
 
 Right now, the description of create_basic_dyn_any() talks about "basic
 data types", but as far as I can see, does not define the meaning of that.
 

Resolution: incorporated change close issue in 2.4
Revised Text: Both bounded and unbounded strings are inserted using insert_string and insert_wstring. These operations raise the InvalidValue exception if the string inserted is longer than the bound of a bounded string. Revised Text: see ptc/99-03-02
Actions taken:
July 8, 1998: received issue
August 19, 1999: closed issue

Discussion:


Issue 1644: destroy() forDyn Any? (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: I"m having a hard time understanding the motivation for adding a destroy()
 operation to DynAny. Because DynAny is locality-constrained, it seems
 redundant to have a destroy() operation. However, the resolution to
 issue 1116 explicitly requires that I have to call destroy() before
 I release the last reference to a DynAny to avoid memory leaks.
 
 What I don"t understand is why we don"t just use the normal
 duplicate/release semantics on references to achieve all this.
 

Resolution: Specified behavior for destruction of components
Revised Text: see ptc/99-03-02
Actions taken:
July 8, 1998: received issue
July 8, 1998: received issue
August 19, 1999: closed issue

Discussion:


Issue 1645: (port-rtf)

Click
here for this issue's archive.
Nature:
Severity:
Summary:

Resolution:
Revised Text:
Actions taken:
February 22, 1999: closed issue

Discussion:


Issue 1646: DynAny assignment (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: The text for the assign operation says:
 
 	If an invalid DynAny object is passed (it has a different typecode
 	or doesn"t contain a meaningful value), the Invalid exception
 	is raised.
 
 Two problems with this:
 
 	- What"s a "meaningful" value, or more pertinently, what"s a
 	  value that isn"t meaningful?
 
 	  I think this needs to be defined a lot more clearly.
 
 	- More seriously, why can"t I assign a DynAny containing a
 	  string to a DynAny containing, say, a structure? I would
 	  have expected assignment to simply do a proper deep copy
 	  of all the components, including the type code. As defined,
 	  I can assign a DynAny to another DynAny only if the target
 	  does not have "a different type code".
 
 	  Was this intentional? If so, what"s the motivation?
 

Resolution:
Revised Text:
Actions taken:
July 8, 1998: received issue
February 22, 1999: closed issue

Discussion:


Issue 1647: Inconsistent Typecode? (port-rtf)

Click
here for this issue's archive.
Nature:
Severity:
Summary:
Summary: The DynAny create operations on the ORB interface use the
 InconsistentTypeCode exception. As far as I can see, that exception is
 never defined. I assume it should be in the ORB interface.
 

Resolution:
Revised Text:
Actions taken:
July 8, 1998: received issue
February 22, 1999: closed issue

Discussion:


Issue 1648: DynAny::next semantics (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: For the next() operation, the spec says:
 
 	The next operation logically advances the pointer and returns TRUE
 	if the resulting pointer points to a component, or FALSE if there
 	are no more components.
 
 This does not make it clear what the current position is after next() does
 indeed return FALSE. In other words, if I have just called next() and 
 received FALSE, what will I get if I call current_component()? A nil
 reference? An exception? The DynAny for the last component?
 
 This needs to be nailed down.
 

Resolution: incorporated changes close issue in 2.4
Revised Text:
Actions taken:
July 8, 1998: received issue
August 19, 1999: closed issue

Discussion:
Specified semantics of create operations with respect to current position and 
initial values 
Revised Text: see ptc/99-03-02


Issue 1649: DynAny::seek semantics (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: >From the spec:
 
 	Operation seek logically sets a new offset for this pointer,
 	returning TRUE if the resulting pointer points to a component
 	or FALSE if there is no component at the designated offset.
 
 Issues:
 
 	"... new offset for this pointer, ..."
 
 What pointer? The pointer was mentioned previously, but too far away
 for the expression "this pointer" to make sense here.
 
 Also, someone else suggested that the entire story about buffers and pointers
 should be abandandoned. I agree -- it would make more sense to talk about
 a DynAny as an ordered collection of component DynAnys, and to talk about
 the current "position" instead of a pointer.
 
 The semantics of seek do not state what the current position will be
 if I pass an out-of-range index value. As it stands, I have to assume
 the current position will be undefined if I do this. I suggest to explicitly
 state this, or alternatively, to require an out-of-range index to leave
 the current position unaffected.
 

Resolution: incorporated changes close issue in 2.4
Revised Text:
Actions taken:
July 8, 1998: received issue
August 19, 1999: closed issue

Discussion:
Specified semantics of create operations with respect to current position and 
initial values. Cleaned up semantics to fully define the behavior under various boundary 
conditions. 
Revised Text: see ptc/99-03-02


Issue 1652: DynFixed IDL (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: Delete the type definition for OctetSeq inside the DynAny interface
 	on page 7-3.
 
 	Add
 
 		typedef sequence<Octet> OctetSeq;
 
 	on page 7-4 just before the definition of DynFixed.
 
 This makes the IDL sylistically consistent and it also removes the
 mismatch between the IDL on pages 7-3 and 7-4 with the IDL on page 7-10.
 

Resolution: incorporated change close issue in 2.4
Revised Text:
Actions taken:
July 9, 1998: received issue
August 19, 1999: closed issue

Discussion:
Deleted definition of OctetSeq here (Issue 1652). It was defined twice, once in the 
CORBA scope and once in the CORBA::DynAny scope. Because DynAny itself 
does not use OctetSeq, and because supporting type definitions for other DynAny 
types, such as DynStruct, also appear in the CORBA scope, deleting the definition 
here was the cleanest fix. 
Revised Text: see ptc/99-03-02


Issue 1668: DynFixed interface isn"t usefu (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: The interface for DynFixed requires me to deal with a fixed-point type
 as an octet sequence. The contents of the octet sequence are simply
 the bytes that would be generated by the CDR marshaling rules for a
 fixed-point value.
 
 Fine, that allows me to get the values in and out, but it is pragmatically
 useless. Do we really expect every application dealing with DynFixed to
 re-implement the marshaling rules? Moreover, at run time, getting the
 value in and out is very complex. Either I use decadic logarithms to
 extract the digit values, or I need to turn the fixed-point value into
 a string and then parse out the digits (never mind that there is no
 standard API call for turning the fixed-point value into a string to
 start with).
 
 >From there, it is still completely unclear how I could turn the fixed-point
 octet sequence (which I now hold as a string or as a series of decimal
 digits) into a value I use to do computation. I would have to multiply
 successive digits into an accumulator, dividing by 10 for every digit.
 
 This is simply useless for all intents and purposes, because it is far
 too much work.
 l

Resolution:
Revised Text:
Actions taken:
July 13, 1998: received issue

Discussion:


Issue 1670: DynAny::current_component if no components? (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: What does DynAny::CurrentComponent() return if there are no components,
 for example if I iterate over an empty exception or empty sequence?
 

Resolution:
Revised Text:
Actions taken:
July 13, 1998: received issue

Discussion:
 received issue


Issue 1671: DynAny: sometimes Any, sometimes DynAny? (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: Something a bit strange about component types for DynAny...
 
 For unions, the discriminator and the active member are controlled as
 type DynAny. For sequences and arrays, they are sequences of *any* (not
 DynAny). Yet, when I iterate over a sequence or array, the members are
 dealt with as type DynAny (instead of any).
 
 For structures, if I access the members via iteration, they are accessed
 as type DynAny, whereas if I use set_members() and get_members(), they
 are sequences of name-*any* pairs, not sequences of name-*DynAny* pairs.
 
 I don"t see why, in some cases, components are dealt with as type any,
 and in other cases, they are dealt with as DynAny. Any particular reason?
 
 

Resolution:
Revised Text:
Actions taken:
July 13, 1998: received issue
February 22, 1999: closed issue

Discussion:


Issue 1675: DynAny: attributes vs operations (port-rtf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: The DynAny interface uses an interesting mix of attributes and operations.
 
 For example, in DynFixed, we find:
 
 	interface DynFixed : DynAny {
 		OctetSeq get_value();
 		void set_value(in OctetSeq val) raises(InvalidValue);
 	};
 
 However, in DynEnum, we find:
 
 	interface DynEnum : DynAny {
 		attribute string value_as_string;
 		attribute unsigned long value_as_ulong;
 	};
 
 Why does one interface use a modifier and an accessor, while the other
 interface uses writable attributes?
 

Resolution: Changed attributes to operations
Revised Text: see ptc/99-03-02
Actions taken:
July 14, 1998: received issue
August 19, 1999: closed issue

Discussion: