diff --git a/src/main/java/com/btr/proxy/selector/pac/PacProxySelector.java b/src/main/java/com/btr/proxy/selector/pac/PacProxySelector.java index 3090244..8bf293e 100644 --- a/src/main/java/com/btr/proxy/selector/pac/PacProxySelector.java +++ b/src/main/java/com/btr/proxy/selector/pac/PacProxySelector.java @@ -118,13 +118,19 @@ public List select(URI uri) { * @param uri URI to be evaluated. * @return Proxy-object list as result of the evaluation. ************************************************************************/ - private List findProxy(URI uri) { try { List proxies = new ArrayList(); - String parseResult = this.pacScriptParser.evaluate(uri.toString(), + String parseResult = pacScriptParser.evaluate(uri.toString(), uri.getHost()); - String[] proxyDefinitions = parseResult.split("[;]"); + Logger.log(getClass(), LogLevel.TRACE, "Proxies for uri {0} -> {1}", uri, parseResult); + String[] proxyDefinitions; + if (parseResult != null) { + proxyDefinitions = parseResult.split("[;]"); + }else{ + Logger.log(getClass(), LogLevel.WARNING, "Pac Function returned null for uri {0}",uri); + proxyDefinitions = new String[ ]{"NULL"}; + } for (String proxyDef : proxyDefinitions) { if (proxyDef.trim().length() > 0) { proxies.add(buildProxyFromPacResult(proxyDef)); @@ -138,14 +144,14 @@ private List findProxy(URI uri) { } /************************************************************************* - * The proxy evaluator will return a proxy string. This method will - * take this string and build a matching Proxy for it. - * @param pacResult the result from the PAC parser. + * The proxy evaluator will return a proxy string. This method will + * take this string and build a matching Proxy for it. + * @param pacResult the result from the PAC parser. * @return a Proxy ************************************************************************/ private Proxy buildProxyFromPacResult(String pacResult) { - if (pacResult == null || pacResult.trim().length() < 6) { + if (pacResult == null || pacResult.trim().equalsIgnoreCase("null") || pacResult.trim().length() < 6) { return Proxy.NO_PROXY; } String proxyDef = pacResult.trim();