1 package org.apidesign.deadlock.startuplock;
3 import java.io.DataOutputStream;
5 import java.io.FileOutputStream;
6 import java.io.IOException;
7 import java.net.ServerSocket;
8 import java.util.logging.Level;
9 import java.util.logging.Logger;
11 public final class CLIHandlerBlocking {
13 public static int start(File lockFile) throws IOException {
15 if (lockFile.exists ()) {
16 // read the port number and connect to it
18 int alive = readPortNumber(lockFile);
24 // otherwise try to create the file yourself
26 lockFile.createNewFile();
27 DataOutputStream os = new DataOutputStream(new FileOutputStream(lockFile));
28 ServerSocket server = new ServerSocket();
30 int p = server.getLocalPort();
39 private static Logger LOG = Logger.getLogger(CLIHandlerBlocking.class.getName());
40 private static void enterState(int state) {
41 LOG.log(Level.FINEST, "enterState {0}", state);
44 private static int readPortNumber(File lockFile) throws IOException {