spring-projects/spring-xd — pull request #681 by pperalta (2014-03-30 18:28:29+00:00)
Title: Workaround for intermittent HSQLDB start failure

When running the build there is an occasional HSQLDB startup failure. The root cause for this failure is:

`java.net.SocketException: Invalid argument`

This exception is thrown on JDK 7 OS X when there are > 1024 open file descriptors. See this Stack Overflow thread:

http://stackoverflow.com/questions/16191236/tomcat-startup-fails-due-to-java-net-socketexception-invalid-argument-on-mac-o

This is fixed in Java 7u60:

https://bugs.openjdk.java.net/browse/JDK-8021820

In the meantime, this workaround will trap that exception and make several attempts at starting up HSQLDB before giving up.

Previously it was assumed that a startup failure was due to a port conflict. This is unlikely because an open port is selected by the test prior to configuring HSQLDB. If this does happen the log file will indicate so:

```
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'hsqldb' defined in class...
...
Caused by: java.lang.IllegalStateException: HSQLDB could not be started on 0.0.0.0:6379, state: SHUTDOWN
...
Caused by: java.net.BindException: Address already in use
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
...
```