diff --git a/designer-base/src/main/java/com/fr/design/extra/PluginUtils.java b/designer-base/src/main/java/com/fr/design/extra/PluginUtils.java index 1c9e518e3..170f5da2d 100644 --- a/designer-base/src/main/java/com/fr/design/extra/PluginUtils.java +++ b/designer-base/src/main/java/com/fr/design/extra/PluginUtils.java @@ -6,6 +6,7 @@ import com.fr.general.http.HttpClient; import com.fr.json.JSONArray; import com.fr.json.JSONObject; import com.fr.log.FineLoggerFactory; +import com.fr.plugin.PluginVerifyException; import com.fr.plugin.basic.version.Version; import com.fr.plugin.basic.version.VersionIntervalFactory; import com.fr.plugin.context.PluginContext; @@ -18,6 +19,7 @@ import com.fr.stable.ProductConstants; import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; +import javax.swing.JOptionPane; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; @@ -82,12 +84,12 @@ public class PluginUtils { return jsonArray.toString(); } - public static void downloadShopScripts(String id, Process p) throws Exception { - HttpClient httpClient = new HttpClient(getDownloadPath(id)); - if (httpClient.getResponseCode() == HttpURLConnection.HTTP_OK) { - InputStream reader = null; - FileOutputStream writer = null; - try { + public static boolean downloadShopScripts(String id, Process p) { + InputStream reader = null; + FileOutputStream writer = null; + try { + HttpClient httpClient = new HttpClient(getDownloadPath(id)); + if (httpClient.getResponseCode() == HttpURLConnection.HTTP_OK) { int totalSize = httpClient.getContentLength(); reader = httpClient.getResponseStream(); String temp = StableUtils.pathJoin(PluginConstants.DOWNLOAD_PATH, PluginConstants.TEMP_FILE); @@ -103,19 +105,32 @@ public class PluginUtils { totalBytesRead += bytesRead; p.process(totalBytesRead / (double) totalSize); } - }catch (Exception e){ - throw new Exception(); - }finally { - if(null != reader){ - reader.close(); - } - if(null != writer){ - writer.flush(); - writer.close(); - } + } else { + throw new com.fr.plugin.PluginVerifyException(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Connect_Server_Error")); } - } else { - throw new com.fr.plugin.PluginVerifyException(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Connect_Server_Error")); + } catch (PluginVerifyException e) { + JOptionPane.showMessageDialog(null, e.getMessage(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Warning"), JOptionPane.ERROR_MESSAGE); + return false; + } catch (Exception e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + return false; + } finally { + closeStream(reader, writer); + } + return true; + } + + private static void closeStream(InputStream reader, FileOutputStream writer){ + try { + if (null != reader) { + reader.close(); + } + if (null != writer) { + writer.flush(); + writer.close(); + } + } catch (Exception e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); } } diff --git a/designer-base/src/main/java/com/fr/design/extra/WebViewDlgHelper.java b/designer-base/src/main/java/com/fr/design/extra/WebViewDlgHelper.java index 54ddcd8c0..fef7c5159 100644 --- a/designer-base/src/main/java/com/fr/design/extra/WebViewDlgHelper.java +++ b/designer-base/src/main/java/com/fr/design/extra/WebViewDlgHelper.java @@ -259,21 +259,12 @@ public class WebViewDlgHelper { new SwingWorker() { @Override protected Boolean doInBackground() throws Exception { - try { - PluginUtils.downloadShopScripts(scriptsId, new Process() { - @Override - public void process(Double integer) { - // 这个注释毫无意义,就是为了通过SonarQube - } - }); - } catch (PluginVerifyException e) { - JOptionPane.showMessageDialog(null, e.getMessage(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Plugin_Warning"), JOptionPane.ERROR_MESSAGE); - return false; - } catch (Exception e) { - FineLoggerFactory.getLogger().error(e.getMessage(), e); - return false; - } - return true; + return PluginUtils.downloadShopScripts(scriptsId, new Process() { + @Override + public void process(Double integer) { + // 这个注释毫无意义,就是为了通过SonarQube + } + }); } @Override