Upgrading your Application to Ice 3.7.2 from Ice 3.4

In addition to the information provided in Upgrading your Application to Ice 3.7.2 from Ice 3.5, users who are upgrading from Ice 3.4 should also review this page.

On this page:

Slicing behavior in Ice 3.5

In version 1.0 of the Ice encoding, Slice classes and user exceptions are always marshaled in a format that allows a receiver to "slice" an unknown derived type to a known base type. An application that uses Ice 3.4 or earlier may depend on this behavior. For example, the slicing feature makes it possible for a sender to evolve independently of a receiver, adding more derived types that the receiver does not understand without causing the receiver to fail should it encounter one of these new types.

Version 1.1 of the Ice encoding introduces two formats for classes and exceptions. The compact format, which is used by default, does not support the slicing feature, meaning an application that relies on this feature may begin to receive NoObjectFactoryException or UnknownUserException errors after upgrading to Ice 3.5. There are several possible solutions:

  • Continue using version 1.0 of the Ice encoding by setting Ice.Default.*