11diff --git a/platform/core.network/src/org/netbeans/core/network/proxy/pac/impl/NbPacScriptEvaluator.java b/platform/core.network/src/org/netbeans/core/network/proxy/pac/impl/NbPacScriptEvaluator.java
2- index 76bb6080c73c..a708698bd008 100644
2+ index 76bb6080c73c..da54d0c76922 100644
33--- a/platform/core.network/src/org/netbeans/core/network/proxy/pac/impl/NbPacScriptEvaluator.java
44+++ b/platform/core.network/src/org/netbeans/core/network/proxy/pac/impl/NbPacScriptEvaluator.java
55@@ -26,6 +26,7 @@
@@ -29,17 +29,16 @@ index 76bb6080c73c..a708698bd008 100644
2929 private final String pacScriptSource;
3030
3131
32- @@ -213,7 +219,8 @@ public NbPacScriptEvaluator(String pacSourceCocde) throws PacParsingException {
32+ @@ -213,7 +219,7 @@ public NbPacScriptEvaluator(String pacSourceCocde) throws PacParsingException {
3333 @Override
3434 public List<Proxy> findProxyForURL(URI uri) throws PacValidationException {
3535
3636- List<Proxy> jsResultAnalyzed;
37- + AtomicReference<List<Proxy>> resultHolder = new AtomicReference<>(null);
3837+ List<Proxy> jsResultAnalyzed = null;
3938
4039 // First try the cache
4140 if (resultCache != null) {
42- @@ -222,38 +229,36 @@ public List<Proxy> findProxyForURL(URI uri) throws PacValidationException {
41+ @@ -222,38 +228,37 @@ public List<Proxy> findProxyForURL(URI uri) throws PacValidationException {
4342 return jsResultAnalyzed;
4443 }
4544 }
@@ -73,6 +72,7 @@ index 76bb6080c73c..a708698bd008 100644
7372+ if (timeout <= 0){
7473+ jsResultAnalyzed = executeProxyScript(uri);
7574+ } else {
75+ + AtomicReference<List<Proxy>> resultHolder = new AtomicReference<>(null);
7676+ Task task = getRequestProcessor().post(() -> {
7777+ resultHolder.set(executeProxyScript(uri));
7878+ });
@@ -93,10 +93,10 @@ index 76bb6080c73c..a708698bd008 100644
9393- LOGGER.log(Level.WARNING, "Error when executing PAC script function " + scriptEngine.getJsMainFunction().getJsFunctionName() + " : ", ex);
9494- return Collections.singletonList(Proxy.NO_PROXY);
9595+ jsResultAnalyzed = resultHolder.get();
96- + }
96+ }
9797+ if (canUseURLCaching && (resultCache != null) && (jsResultAnalyzed != null)) {
9898+ resultCache.put(uri, jsResultAnalyzed); // save the result in the cache
99- }
99+ + }
100100+ return jsResultAnalyzed != null ? jsResultAnalyzed : Collections.singletonList(Proxy.NO_PROXY);
101101 }
102102-
@@ -210,15 +210,15 @@ index 178c9b162feb..90812bfa4612 100644
210210 testPacFile2("pac-test4.js", factory);
211211 }
212212diff --git a/platform/o.n.core/src/org/netbeans/core/ProxySettings.java b/platform/o.n.core/src/org/netbeans/core/ProxySettings.java
213- index 2d29427cd3c2..19e48d9bad82 100644
213+ index 2d29427cd3c2..593c99f5d6fe 100644
214214--- a/platform/o.n.core/src/org/netbeans/core/ProxySettings.java
215215+++ b/platform/o.n.core/src/org/netbeans/core/ProxySettings.java
216216@@ -49,6 +49,8 @@ public class ProxySettings {
217217 public static final String USE_PROXY_ALL_PROTOCOLS = "useProxyAllProtocols"; // NOI18N
218218 public static final String DIRECT = "DIRECT"; // NOI18N
219219 public static final String PAC = "PAC"; // NOI18N
220220+ public static final String PAC_SCRIPT_TIMEOUT = "pacScriptTimeout"; // NOI18N
221- + public static final int DEFAULT_TIMEOUT = 60000 ;
221+ + public static final int DEFAULT_TIMEOUT = 10000 ;
222222
223223 public static final String SYSTEM_PROXY_HTTP_HOST = "systemProxyHttpHost"; // NOI18N
224224 public static final String SYSTEM_PROXY_HTTP_PORT = "systemProxyHttpPort"; // NOI18N
0 commit comments