From 372e7d380fc477baee116d0816f438a581171208 Mon Sep 17 00:00:00 2001 From: vito Date: Thu, 13 Mar 2025 11:47:09 +0800 Subject: [PATCH 1/2] =?UTF-8?q?KERNEL-20956=20=E4=BF=AE=E5=A4=8Djxbrowser?= =?UTF-8?q?=E5=9B=A0=E8=A7=A3=E5=8E=8B=E6=96=87=E4=BB=B6=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E7=9A=84=E5=90=AF=E5=8A=A8=E5=A4=B1=E8=B4=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/jxbrowser/JxEngine.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/jxbrowser/JxEngine.java b/designer-base/src/main/java/com/fr/design/jxbrowser/JxEngine.java index bb2c1f7375..7738082a4c 100644 --- a/designer-base/src/main/java/com/fr/design/jxbrowser/JxEngine.java +++ b/designer-base/src/main/java/com/fr/design/jxbrowser/JxEngine.java @@ -3,8 +3,10 @@ package com.fr.design.jxbrowser; import com.fr.design.DesignerEnvManager; import com.fr.design.ui.ModernUIConstants; import com.fr.log.FineLoggerFactory; +import com.fr.stable.CommonUtils; import com.fr.value.ClearableLazyValue; import com.fr.web.struct.AssembleComponent; +import com.teamdev.jxbrowser.engine.ChromiumBinariesExtractionException; import com.teamdev.jxbrowser.engine.Engine; import com.teamdev.jxbrowser.engine.EngineOptions; import com.teamdev.jxbrowser.engine.RenderingMode; @@ -12,8 +14,11 @@ import com.teamdev.jxbrowser.engine.event.EngineCrashed; import com.teamdev.jxbrowser.net.Network; import com.teamdev.jxbrowser.net.Scheme; import com.teamdev.jxbrowser.net.callback.VerifyCertificateCallback; +import com.teamdev.jxbrowser.os.Environment; import org.jetbrains.annotations.NotNull; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.Collections; import java.util.Map; @@ -41,7 +46,18 @@ public class JxEngine { .addSwitch("--disable-google-traffic") .addScheme(Scheme.of(ModernUIConstants.EMB_TAG), new NxInterceptRequestCallback(this::getComponent, this::getParameterMap)); - Engine engine = Engine.newInstance(builder.build()); + Engine engine; + try { + engine = Engine.newInstance(builder.build()); + } catch (ChromiumBinariesExtractionException e) { + Path chromiumDir = Paths.get(System.getProperty("jxbrowser.chromium.dir", Environment.defaultChromiumDir().toString())); + if (CommonUtils.deleteFile(chromiumDir.toFile())) { + FineLoggerFactory.getLogger().warn("[jxbrowser]Retry start engine success after delete chromium dir manually: {}", chromiumDir); + engine = Engine.newInstance(builder.build()); + } else { + throw e; + } + } engine.on(EngineCrashed.class, (event) -> { FineLoggerFactory.getLogger().error("jxBrowser engine crashed with exitCode: {}", event.exitCode()); event.engine().close(); From 934b2a76eaa9a7b7925f371055810aea5ac48701 Mon Sep 17 00:00:00 2001 From: "shengzu.xue" Date: Thu, 13 Mar 2025 16:49:53 +0800 Subject: [PATCH 2/2] =?UTF-8?q?REPORT-149091=20=E4=BF=AE=E5=A4=8D=E5=8A=A8?= =?UTF-8?q?=E6=80=81=E5=8F=82=E6=95=B0=E5=88=87=E6=8D=A2=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dscolumn/SelectedDataColumnPane.java | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/design/dscolumn/SelectedDataColumnPane.java b/designer-realize/src/main/java/com/fr/design/dscolumn/SelectedDataColumnPane.java index de10613835..421bfdb766 100644 --- a/designer-realize/src/main/java/com/fr/design/dscolumn/SelectedDataColumnPane.java +++ b/designer-realize/src/main/java/com/fr/design/dscolumn/SelectedDataColumnPane.java @@ -21,6 +21,7 @@ import com.fr.design.mainframe.ElementCasePane; import com.fr.design.utils.gui.UIComponentUtils; import com.fr.design.widget.FRWidgetFactory; import com.fr.general.data.TableDataColumn; +import com.fr.log.FineLoggerFactory; import com.fr.report.cell.CellElement; import com.fr.report.cell.TemplateCellElement; import com.fr.report.cell.cellattr.core.group.DSColumn; @@ -373,13 +374,33 @@ public class SelectedDataColumnPane extends BasicPane { update(SelectedDataColumnPane.this.cellElement); casePane.fireTargetModified(); } + @Override + public void doCancel() { + editorPane.stopEditing(); + } }); - editorPane.populate(ps == null ? new Parameter[0] : ps); + editorPane.populate(ps == null ? new Parameter[0] : cloneParameterList(ps)); paramDialog.setVisible(true); } }); } + private Parameter[] cloneParameterList(Parameter[] parameters) { + if (parameters == null) { + return null; + } + try { + Parameter[] cloneParameterList = new Parameter[parameters.length]; + for (int i = 0; i < parameters.length; i++) { + cloneParameterList[i] = (Parameter) parameters[i].clone(); + } + return cloneParameterList; + } catch (CloneNotSupportedException e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + } + return null; + } + private boolean isColumnName(String columnExp) { return StringUtils.isNotBlank(columnExp) && (columnExp.length() > 0 && columnExp.charAt(0) == '#') && !columnExp.endsWith("#"); @@ -397,8 +418,7 @@ public class SelectedDataColumnPane extends BasicPane { public Dimension getPreferredSize() { if (this.isVisible()) { return super.getPreferredSize(); - } - else { + } else { return new Dimension(); } }