Platform Notes for Ice 3.6.0

This page provides platform-specific notes for Ice 3.6.

On this page:

Android notes

Socket connection issue in Android emulator

An Ice application that attempts to connect to an invalid address can generate "spurious wakeup" messages in logcat when running under an emulator for Android 4.2 or later. This issue does not occur on hardware devices, however you can still experience lengthy delays before receiving an exception. As a defensive measure, it is a good idea to always set reasonable timeouts on your proxies to avoid unexpected delays.

Java notes

IceGrid Admin GUI

The IceGrid graphical administrative utility can be used with Java7 or Java8, however the metrics graph feature is only available when running with JavaFX.

A JavaFX bug can generate NullPointerException errors when using drag & drop in the GUI. This bug is fixed in Java7u10.

SSL issues in Java

When using the Ice for Java SSL plug-in (IceSSL), you may experience occasional hangs. The most likely reason is that your system's entropy pool is empty. If you have sufficient system privileges, you can solve this issue by editing the file java.home/jre/lib/security/java.security and changing it to use /dev/urandom instead of /dev/random. If you do not have permission to modify the security file, you can also use the command-line option shown below:

java -Djava.security.egd=file:/dev/urandom MyClass ...

IPv6 hang in Java

On systems with IPv6 enabled, you may experience occasional hangs the first time an Ice object adapter is activated within a JVM. A work-around is to disable IPv6 support by setting the Java property java.net.preferIPv4Stack to true. For example:

java -Djava.net.preferIPv4Stack=true MyClass ...

OS X notes

SSL issues in OS X

A client that tries to connect to an OS X server using TLS 1.2 may receive a handshake error caused by a bug in OS X's Secure Transport implementation of TLS 1.2. This only affects servers that request client authentication. To work around this issue, you can configure the server to not allow TLS 1.2 connections by setting the following configuration property:

IceSSL.ProtocolVersionMax=tls1_1

Windows notes

Windows users should be aware of the following issues.

Monotonic clock

Ice uses the QueryPerformanceCounter Windows API function to measure time with a monotonic clock. If you are experiencing timing or performance issues, there are two knowledgebase articles that may be relevant for your system:

http://support.microsoft.com/?id=896256
http://support.microsoft.com/?id=895980

Anti-Virus when testing WebSocket

If your anti-virus intercepts http traffic on localhost, a number of tests in the Ice test suite may fail due to timeouts when running the test suite with the ws (WebSocket) protocol. We reproduced this problem with a popular anti-virus program, NOD32 version 8 from ESET. The work-around is to disable the "web access protection" feature of the anti-virus entirely or at least for localhost (127.0.0.1).