Source:
public void optionsLoaded() { super.optionsLoaded(); if (View.isInitialised()) { getQuickStartPanel().optionsLoaded(this.getQuickStartParam()); } new Thread("ZAP-NewsFetcher") { @Override public void run() { HttpMessage msg; String launchPageUrl = getLaunchPageURL(); try { HttpSender httpSender = new HttpSender( Model.getSingleton().getOptionsParam().getConnectionParam(), true, HttpSender.CHECK_FOR_UPDATES_INITIATOR); httpSender.setFollowRedirect(true); msg = new HttpMessage( new URI(launchPageUrl, true), Model.getSingleton().getOptionsParam().getConnectionParam()); httpSender.sendAndReceive(msg, true); if (msg.getResponseHeader().getStatusCode() == HttpStatusCode.OK) { String zapLocale = Constant.getLocale().toString(); ZapXmlConfiguration xmlNews = new ZapXmlConfiguration(); xmlNews.setDelimiterParsingDisabled(true); xmlNews.load(new StringReader(msg.getResponseBody().toString())); ConfigurationNode newsNode = getFirstChildNode(xmlNews.getRoot(), "news"); if (newsNode != null) { String id = getFirstChildNodeString(newsNode, "id"); ConfigurationNode localeNode = getFirstChildNode(newsNode, zapLocale); if (localeNode == null) { localeNode = getFirstChildNode(newsNode, "default"); } if (localeNode != null) { announceNews(new NewsItem(id, getFirstChildNodeString(localeNode, "item"), new URI(getFirstChildNodeString(localeNode, "link"), true))); } } } else { LOGGER.debug( "Response from " + launchPageUrl + " : " + msg.getResponseHeader().getStatusCode()); } } catch (Exception e) { LOGGER.debug( "Failed to read from " + launchPageUrl + " : " + e.getMessage(), e); } } }.start(); }

Target:
public void optionsLoaded() { super.optionsLoaded(); if (View.isInitialised()) { getQuickStartPanel().optionsLoaded(this.getQuickStartParam()); } new Thread("ZAP-NewsFetcher") { @Override public void run() { HttpMessage msg; String newsPageUrl = getNewsPageURL(); try { HttpSender httpSender = new HttpSender( Model.getSingleton().getOptionsParam().getConnectionParam(), true, HttpSender.CHECK_FOR_UPDATES_INITIATOR); httpSender.setFollowRedirect(true); msg = new HttpMessage( new URI(newsPageUrl, true), Model.getSingleton().getOptionsParam().getConnectionParam()); httpSender.sendAndReceive(msg, true); if (msg.getResponseHeader().getStatusCode() == HttpStatusCode.OK) { String zapLocale = Constant.getLocale().toString(); ZapXmlConfiguration xmlNews = new ZapXmlConfiguration(); xmlNews.load(new StringReader(msg.getResponseBody().toString())); ConfigurationNode newsNode = getFirstChildNode(xmlNews.getRoot(), "news"); if (newsNode != null) { String id = getFirstChildNodeString(newsNode, "id"); ConfigurationNode localeNode = getFirstChildNode(newsNode, zapLocale); if (localeNode == null) { localeNode = getFirstChildNode(newsNode, "default"); } if (localeNode != null) { String itemText = getFirstChildNodeString(localeNode, "item"); if (itemText != null && itemText.length() > 0) { announceNews( new NewsItem( id, itemText, new URI( getFirstChildNodeString( localeNode, "link"), true))); } } } } else { LOGGER.debug( "Response from " + newsPageUrl + " : " + msg.getResponseHeader().getStatusCode()); } } catch (Exception e) { LOGGER.debug("Failed to read from " + newsPageUrl + " : " + e.getMessage(), e); } } }.start(); }