Documentation for Ice 3.5. The latest release is Ice 3.7. Refer to the space directory for other releases.

The entries below contain brief descriptions of the changes in a release, in no particular order. Some of the entries reflect significant new additions, while others represent minor corrections. Although this list is not a comprehensive report of every change we made in a release, it does provide details on the changes we feel Ice users might need to be aware of.

We recommend that you use the release notes included as a guide for migrating your applications to this release, and the manual for complete details on a particular aspect of Ice.

On this page:

Changes in Ice 3.5.1

These are the changes since Ice 3.5.0. Refer to the Ice 3.5.0 Release Notes for additional changelog entries.

General Changes

  • It's now possible to install an instrumentation observer with the communicator initialization data structure and still have the metrics administrative facet enabled. Previously, installing an observer would disable the metrics facet.
  • IceGrid database replication now keeps track of a serial number to compare the slave and master databases on startup. A slave database with a more recent serial number than the master database will no longer be overwritten when the slave connects and synchronizes its database with the master. Instead, an error message will be printed on both the master and slave consoles and the slave connection will be rejected by the master.

    Upon getting this error, the IceGrid administrator can decide which database to keep and either initialize the master database with the slave database or vice-versa. A new --initdb-from-replica=<replica> command-line option has been added to allow initializing a registry database from another replica.

    This change is backward compatible with Ice 3.5.0. If a 3.5.0 slave connects to an Ice 3.5.1 master, or vice-versa, no check is performed and the previous behavior applies (the slave database always gets overwritten by the master database when the slave connects to the master).
  • Improved IceGrid algorithm to find registry replicas on node or slave startup.
  • Fixed bug in IceGrid::Query::findAllReplicas implementation that could cause a crash when trying to find the proxies of an empty replica group.
  • Added support for SOCKSv4 proxies to the Ice core in C++, C# and Java. This allows outgoing TCP & SSL connections using IPv4 to be mediated by a network proxy service.
  • Fixed bug that could cause an unexpected exception or error on connection closure when the connection is closed shortly before sending pending messages.
  • Fixed the graphical IceGrid administrative tool to run and build in JVMs without JavaFX support.
  • IceGrid node now initializes the process supplementary groups.
  • Added man pages for Ice executable tools and commands.
  • Added ability to list IceStorm topic subscribers.
  • Fixed a bug in the graphical IceGrid administrative tool that caused the "Save" and "Save to File" commands to produce an empty file without reporting any errors.
  • The Visual Studio Add-in now supports configuration-specific compiler options.

C++ Changes

  • Reading an optional with the Ice::InputStream::read method should now clear the optional if the optional isn't marshaled on the input stream.
  • Fixed file descriptor leak that would occur if an object adapter listened on a UDP endpoint (one descriptor leaked per UDP endpoint).
  • Fixed a bug that could cause an unexpected exception to be thrown on plug-in loading when a plug-in property specified both a path and version.
  • Fixed a bug in slice2cpp that generated invalid C++ code for C++11 asynchronous invocations.
  • Fixed a bug in slice2cpp that generated invalid C++ code when using cpp:virtual metadata.
  • Fixed a bug in slice2cpp that generated invalid C++ code when a Slice operation has more than ten output parameters.

Java Changes

  • Fixed an SSL issue with anonymous ciphers on SLES 11 SP3 when using the IBM JDK.
  • To simplify the use of optional values with the stream API, an optionalFormat() method is now generated in Helper classes when the --stream option is enabled.
  • Fixed an assertion that would occur if a memory limit exception was raised while marshaling the response of an AMD callback.

C# Changes

  • To simplify the use of optional values with the stream API, an optionalFormat() method is now generated in Helper classes when the --stream option is enabled.
  • Fixed an assertion that would occur if a memory limit exception was raised while marshaling the response of an AMD callback.
  • Fixed a bug in slice2cs that caused incorrect code to be generated for a Slice structure that declares default values for its members.

PHP Changes

  • Fixed PHP namespace builds.
  • No labels