diff options
| author | slewis | 2011-06-20 17:16:27 +0000 |
|---|---|---|
| committer | slewis | 2011-06-20 17:16:27 +0000 |
| commit | c6f3801e8baf62dd43aa6d67f60cdbe2e260f90b (patch) | |
| tree | a6c37d172aedc32d51951c83c387e92b6870d95e | |
| parent | 2678a683b45cccb2882511ffe45bf2cfb03a7895 (diff) | |
| download | org.eclipse.ecf-c6f3801e8baf62dd43aa6d67f60cdbe2e260f90b.tar.gz org.eclipse.ecf-c6f3801e8baf62dd43aa6d67f60cdbe2e260f90b.tar.xz org.eclipse.ecf-c6f3801e8baf62dd43aa6d67f60cdbe2e260f90b.zip | |
Yet another change for
https://bugs.eclipse.org/bugs/show_bug.cgi?id=349176
| -rw-r--r-- | framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/GenericContainerInstantiator.java | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/GenericContainerInstantiator.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/GenericContainerInstantiator.java index c5941b950..907587fb1 100644 --- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/GenericContainerInstantiator.java +++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/GenericContainerInstantiator.java @@ -153,27 +153,25 @@ public class GenericContainerInstantiator implements IContainerInstantiator, IRe newID = getIDFromArg(args[0]); } if (newID == null) { - int defaultPort = TCPServerSOContainer.DEFAULT_PORT; - // The default value for DEFAULT_FALLBACK_PORT is now true - boolean useFallbackPort = TCPServerSOContainer.DEFAULT_FALLBACK_PORT; - // if useFallbackPort and the DEFAULT_PORT is - // not available, then a free port is selected - if (useFallbackPort && !defaultPortIsFree(defaultPort)) { - defaultPort = getFreePort(); + int port = -1; + if (TCPServerSOContainer.DEFAULT_FALLBACK_PORT) { + port = getFreePort(); + } else if (portIsFree(TCPServerSOContainer.DEFAULT_PORT)) { + port = TCPServerSOContainer.DEFAULT_PORT; } - if (defaultPort < 0) - throw new IDCreateException("Server port for server cannot be -1"); //$NON-NLS-1$ - newID = IDFactory.getDefault().createStringID(TCPServerSOContainer.DEFAULT_PROTOCOL + "://" + TCPServerSOContainer.DEFAULT_HOST + ":" + defaultPort + TCPServerSOContainer.DEFAULT_NAME);//$NON-NLS-1$ //$NON-NLS-2$ + if (port < 0) + throw new IDCreateException("Server port for generic server cannot be -1"); //$NON-NLS-1$ + newID = IDFactory.getDefault().createStringID(TCPServerSOContainer.DEFAULT_PROTOCOL + "://" + TCPServerSOContainer.DEFAULT_HOST + ":" + port + TCPServerSOContainer.DEFAULT_NAME);//$NON-NLS-1$ //$NON-NLS-2$ } if (ka == null) ka = new Integer(TCPServerSOContainer.DEFAULT_KEEPALIVE); return new GenericContainerArgs(newID, ka); } - private boolean defaultPortIsFree(int defaultPort) { + private boolean portIsFree(int port) { ServerSocket ss = null; try { - ss = new ServerSocket(defaultPort); + ss = new ServerSocket(port); ss.close(); } catch (BindException e) { return false; |
