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(
28 new FileOutputStream(lockFile)
30 ServerSocket server = new ServerSocket();
32 int p = server.getLocalPort();
41 private static Logger LOG = Logger.getLogger(CLIHandlerBlocking.class.getName());
42 private static void enterState(int state) {
43 LOG.log(Level.FINEST, "enterState {0}", state);
46 private static int readPortNumber(File lockFile) throws IOException {