omniORB 3.0.0 bugs

The following bugs in omniORB 3.0.0 have been fixed. Update from CVS to get the fixes.

Summary: omniIDL/C++ backend generated incorrect typecode data for some interfaces. (bug number 21)
Date: Thu Aug 17 18:11:14 BST 2000
Reported by: dme
Description: Incorrect typecode data was generated for some interfaces eg:
  interface I{
    typedef sequence<I> t_I;

Summary: Any insertion functions for PortableServer exceptions missing (bug number 20)
Date: Tue Aug 15 14:11:37 BST 2000
Reported by: Jean François Poilpret

Summary: omniIDL C++ backend didn't always report unsupported IDL constructs (eg wide strings) in the AST. (bug number 19)
Date: Mon Aug 14 20:29:57 BST 2000
Reported by: André Bjärby

Summary: If the remote server is not present, a CORBA call on win32 platforms blocks for 30 seconds before raising a COMM_FAILURE exception. (bug number 18)
Date: Fri Jul 21 16:20:43 BST 2000
Reported by: sll

The ORB uses a select() after the connect() call. Win32 differs from other platforms in that it reports a connect() failure to the select() via the exception fd_set. This was not tested by the ORB.

Summary: -ORBpoa_iiop_port overrides OMNIORB_USEHOSTNAME (bug number 17)
Date: Tue Aug 8 15:55:35 BST 2000
Reported by: Beat Meier
Description: -ORBpoa_iiop_port would override the OMNIORB_USEHOSTNAME environment variable, meaning that -ORBpoa_iiop_name_port had to be used.

Summary: CORBA calls with large arguments on Win32 platforms may fail because tcp socket was wrongly left in non-blocking state. (bug number 16)
Date: Fri Jul 21 16:20:43 BST 2000
Reported by: chm

The connect code in 3.0.0 now turns the socket to non-blocking and set a limit on the time it prepares to wait. Once connected, the socket is turned back to blocking. Unfortunately, the ioctlsocket call is passed the wrong argument which leaves the socket in non-blocking state. The end result is that for CORBA calls with large arguments, the call may fail mysteriously (because windows says the send call would block and the ORB thinks it is wrong because it thinks the socket is blocking).

Summary: Fixes for AIX with xlC (bug number 15)
Date: Fri Aug 4 12:33:25 BST 2000
Reported by: Michael Donahue
Description: Small updates to make rules and omniidl

Summary: Fix to bug 4 broke escaped identifiers (bug number 14)
Date: Fri Aug 4 10:00:42 BST 2000
Reported by: dme
Description: The fix to bug 4 broke look-ups of escaped identifiers. omniidl would complain about differences in case between the escaped identifier and the target.

Summary: omniIDL/C++ generated method signature mismatch when using -Wbvirtual_objref (bug number 13)
Date: Thu Aug 3 22:22:24 BST 2000
Reported by: dme
Description: omniIDL generated a method prototype in the .hh file which didn't match up with the implementation in the file due to a variable name typo in the C++ backend.

Summary: Comments are incorrectly attached to struct members (bug number 12)
Date: Tue Aug 1 12:21:35 BST 2000
Reported by: Stefan Seefeld
Description: omniidl attached comments which should have been attached to struct members to the wrong nodes.

Summary: omniidl C++ backend missed some forward declarations and typedefs when in BOA compatibility mode (bug number 11)
Date: Wed Jul 26 16:21:09 BST 2000
Reported by: Renzo Tomaselli

Summary: omniidl bug with inheriting typedef to forward declared interface (bug number 10)
Date: Wed Jul 26 11:46:16 BST 2000
Description: The following IDL is valid, but omniidl flagged it as an error:
    interface I;
    typedef I J;
    interface I {};
    interface K : J {};

Summary: Suppressed compiler warning when an operation with no arguments and no return value is encountered. (bug number 9)
Date: Mon Jul 24 16:09:20 BST 2000
Reported by: Robert Stent

Summary: Added missing constructor to BOA compatibility skeletons. (bug number 8)
Date: Mon Jul 24 11:14:00 BST 2000
Reported by: Paul Nader
Description: For an interface I, the _sk_I::_sk_I(const omniOrbBoaKey&) was missing.

Summary: Support for object references with unlikely repository ids. (bug number 7)
Date: Fri Jul 21 16:20:43 BST 2000
Reported by: chm

In the case that omniORB receives an object reference claiming to be type "A", and it requires type "B", but it has static knowledge that "A" is not derived from "B", it rejects the object reference. This is incorrect, since the object may actually have type "C", which is derived from both "A" and "B".

A special case of this is an object reference claiming to be a base type of the target type (such as CORBA::Object). Attempts to narrow such a reference would always fail.

Summary: String_var copy initialisations changed to direct initialisations (bug number 6)
Date: Fri Jul 21 10:48:44 BST 2000
Reported by: Bruce Visscher

Summary: Thread tracing accidentally left on (bug number 5)
Date: Wed Jul 19 18:03:11 BST 2000

Tracing of mutexes and condition variables was accidentally left turned on in include/omniORB3/tracedthread.h. Turning it off gives a significant performance improvement, especially for local calls.

All omniORB libraries need to be rebuilt to make this change; the make rules should do this automatically. The libraries remain compatible with user code, so it does not need to be recompiled. If you have omniORBpy installed, you must also recompile that. Unfortunately, its make rules do not realise that a recompile is necessary (I don't know why), so you must explicitly "make clean" before "make export".

Summary: omniidl name look-up is more strict (bug number 4)
Date: Wed Jul 19 17:22:34 BST 2000
Description: When looking-up a name, omniidl now raises an error if a name which differs only in case is found along the look-up path. Before, it would ignore the name and continue until an exact match was found.

Summary: OpenVMS patches from Bruce Visscher (bug number 3)
Date: Mon Jul 17 15:20:18 BST 2000

This adds some missing makefiles for a directory that contains tools for building shareable images on the VAX platform. Also, some minor problems with the build of omniORBpy were fixed.

Note: This update is only available through CVS or the FTP snapshots, not via the patch file.

Summary: String freeing bug in genior (bug number 2)
Date: Mon Jul 17 14:22:25 BST 2000
Reported by: Jean Francois Poilpret

Summary: IDL compiler bug -- inheritance from typedef (bug number 1)
Date: Mon Jul 17 10:30:00 BST 2000
Reported by: Renzo Tomaselli