Browse Source

Merge pull request #12151 in DESIGN/design from bugfix/11.0 to feature/x

* commit 'db17f1c9b4e62cd02ac8364f2b3ce8a4708f5633':
  REPORT-96107 8.0和11.0.2能双开,8.0和11.0.14不能双开--调整
  REPORT-96107 8.0和11.0.2能双开,8.0和11.0.14不能双开--魔数
  REPORT-96107 8.0和11.0.2能双开,8.0和11.0.14不能双开--方案调整
  REPORT-96107 8.0和11.0.2能双开,8.0和11.0.14不能双开
feature/x
superman 1 year ago
parent
commit
0304ead394
  1. 19
      designer-base/src/main/java/com/fr/design/utils/DesignUtils.java

19
designer-base/src/main/java/com/fr/design/utils/DesignUtils.java

@ -66,8 +66,8 @@ import java.util.concurrent.TimeoutException;
* Some util method of Designer
*/
public class DesignUtils {
private static int port = DesignerPort.getInstance().getMessagePort();
private static Integer port;
private static boolean started = false;
@ -80,6 +80,9 @@ public class DesignUtils {
}
public synchronized static int getPort() {
if (port == null) {
setPort(DesignerPort.getInstance().getMessagePort());
}
return port;
}
@ -93,7 +96,6 @@ public class DesignUtils {
return started;
}
/**
* 判断设计器端口是否被其他程序占用
* 尝试去通信无回应就是其他程序占用端口否则需要继续判断是否为设计器进程未关闭
@ -103,7 +105,7 @@ public class DesignUtils {
public static boolean isPortOccupied() {
ExecutorService executor = null;
Future<String> future = null;
try (Socket socket = new Socket("localhost", port);
try (Socket socket = new Socket("localhost", getPort());
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream(), StandardCharsets.UTF_8));
PrintWriter writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), StandardCharsets.UTF_8)))) {
writer.println("check");
@ -167,7 +169,7 @@ public class DesignUtils {
if (lines == null || lines.length == 0) {
return;
}
try (Socket socket = new Socket("localhost", port)) {
try (Socket socket = new Socket("localhost", getPort())) {
clientSend(lines, socket);
} catch (Exception ignore) {
@ -190,7 +192,7 @@ public class DesignUtils {
try {
serverSocket = new ServerSocket(startPort);
} catch (IOException e1) {
FineLoggerFactory.getLogger().error("Cannot create server socket on " + port);
FineLoggerFactory.getLogger().error("Cannot create server socket on " + getPort());
}
while (true) {
try {
@ -221,7 +223,7 @@ public class DesignUtils {
@Override
public void run() {
DesignerStartupContext context = DesignerStartupContext.getInstance();
// 如果在启动页展示中
if (DesignerStartupUtil.openTemplateIfOnWaiting(f)) {
return;
@ -231,7 +233,7 @@ public class DesignUtils {
// 之前就有这样的问题
return;
}
// 打开模板
DesignerContext.getDesignerFrame().openTemplate(new FileFILE(f));
}
@ -250,7 +252,7 @@ public class DesignUtils {
reader.close();
socket.close();
} else {
FineLoggerFactory.getLogger().error("Cannot create server socket on " + port);
FineLoggerFactory.getLogger().error("Cannot create server socket on " + getPort());
break;
}
} catch (IOException ignored) {
@ -484,6 +486,7 @@ public class DesignUtils {
/**
* 获取设计器可用字体
*
* @return
*/
public static String[] getAvailableFontFamilyNames4Report() {

Loading…
Cancel
Save