From 58e39422783a0a5cfc89c9e598884b9029107b9c Mon Sep 17 00:00:00 2001 From: "Destiny.Lin" Date: Wed, 30 Oct 2024 22:08:28 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-139220=20=E3=80=90fr-fbp=E5=86=92?= =?UTF-8?q?=E7=83=9F=E3=80=91=E3=80=90=E6=95=B0=E6=8D=AE=E6=BA=90=E3=80=91?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=89=B9=E9=87=8F=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E8=BF=9E=E6=8E=A5=EF=BC=8C=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E6=97=B6=E5=81=B6=E5=8F=91=E6=8A=A5=E9=94=99=E9=87=8D=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/datapane/connect/ConnectionListPane.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java index 93780213d5..2c67e71210 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java @@ -231,7 +231,7 @@ public class ConnectionListPane extends JListControlPane implements ConnectionSh List removedConnNames = new ArrayList<>(); List addConnections = new ArrayList<>(); List updateConnection = new ArrayList<>(); - List validConnection = new ArrayList<>(); + Map validConnection = new HashMap<>(); MapCompareUtils.contrastMapEntries(populatedConnectionsSnapshot, updatedMap, (entryEventKind, s, connection) -> { try { switch (entryEventKind) { @@ -242,7 +242,7 @@ public class ConnectionListPane extends JListControlPane implements ConnectionSh ConnectionInfoBean add = ConnectionInfoBeanHelper.createConnectionInfoBean(s, connection, true); if (StringUtils.isNotEmpty(add.getConnectionData())) { addConnections.add(add); - validConnection.add(connection); + validConnection.put(s, connection); } else { FineLoggerFactory.getLogger().error("Unable to find the corresponding processor : {}", connection.getClass()); } @@ -251,7 +251,7 @@ public class ConnectionListPane extends JListControlPane implements ConnectionSh ConnectionInfoBean update = ConnectionInfoBeanHelper.createConnectionInfoBean(s, connection, true); if (StringUtils.isNotEmpty(update.getConnectionData())) { updateConnection.add(update); - validConnection.add(connection); + validConnection.put(s, connection); } else { FineLoggerFactory.getLogger().error("Unable to find the corresponding processor : {}", connection.getClass()); } @@ -297,7 +297,7 @@ public class ConnectionListPane extends JListControlPane implements ConnectionSh }); /// 先不管 //this.validateDatabaseType(validConnection); - this.alterConnections(addConnections, removedConnNames, updateConnection); + this.alterConnections(addConnections, removedConnNames, updateConnection, validConnection); } /** @@ -344,17 +344,20 @@ public class ConnectionListPane extends JListControlPane implements ConnectionSh } - private void alterConnections(List addConnections, List removedConnNames, List updateConnection) throws Exception { + private void alterConnections(List addConnections, List removedConnNames, List updateConnection, Map validConnection) throws Exception { try { for (ConnectionInfoBean bean : addConnections) { ConnectionRepository.getInstance().add(bean); + populatedConnectionsSnapshot.put(bean.getConnectionName(), validConnection.get(bean.getConnectionName())); } for (ConnectionInfoBean bean : updateConnection) { ConnectionRepository.getInstance().update(bean); + populatedConnectionsSnapshot.put(bean.getConnectionName(), validConnection.get(bean.getConnectionName())); } for (String name : removedConnNames) { ConnectionRepository.getInstance().delete(new ConnectionInfoBean(name)); + populatedConnectionsSnapshot.remove(name); } // hades:远程环境时,由于时直接RPC调用远程修改,因此设计器本地配置需要失效 if (!WorkContext.getCurrent().isLocal()) {