Source:
<code>public void doNotifyCommit(StaplerRequest req, StaplerResponse rsp) throws ServletException, IOException { requirePOST(); Set<String> affectedPath = new HashSet<String>(); String line; BufferedReader r = new BufferedReader(req.getReader()); try { while((line=r.readLine())!=null) { if (LOGGER.isLoggable(FINER)) { LOGGER.finer("Reading line: "+line); } affectedPath.add(line.substring(4)); if (line.startsWith("svnlook changed --revision ")) { String msg = "Expecting the output from the svnlook command but instead you just sent me the svnlook invocation command line: " + line; LOGGER.warning(msg); throw new IllegalArgumentException(msg); } } } finally { IOUtils.closeQuietly(r); } if(LOGGER.isLoggable(FINE)) LOGGER.fine("Change reported to Subversion repository "+uuid+" on "+affectedPath); QueryParameterMap query = new QueryParameterMap(req); String revParam = query.get("rev"); if (revParam == null) { revParam = req.getHeader("X-Hudson-Subversion-Revision"); } long rev = -1; if (revParam != null) { rev = Long.parseLong(revParam); } boolean listenerDidSomething = false; Jenkins instance = Jenkins.getInstance(); <START> if (instance != null) { <END> for (Listener listener : instance.getExtensionList(Listener.class)) { try { if (listener.onNotify(uuid, rev, affectedPath)) { listenerDidSomething = true; } } catch (Throwable t) { LOGGER.log(WARNING, "Listener " + listener.getClass().getName() + " threw an uncaught exception", t); } } } if (!listenerDidSomething) LOGGER.log(Level.WARNING, "No interest in change to repository UUID {0} found", uuid); rsp.setStatus(SC_OK); }</code><technical_language>reverse approach simplify diffs. java Jenkins instance = Jenkins.getInstance(); if (instance == null) { return; // log? } for (Listener listener : instance.getExtensionList(Listener.class)) { ..</technical_language>

Target:
public void doNotifyCommit(StaplerRequest req, StaplerResponse rsp) throws ServletException, IOException { requirePOST(); Set<String> affectedPath = new HashSet<String>(); String line; BufferedReader r = new BufferedReader(req.getReader()); try { while((line=r.readLine())!=null) { if (LOGGER.isLoggable(FINER)) { LOGGER.finer("Reading line: "+line); } affectedPath.add(line.substring(4)); if (line.startsWith("svnlook changed --revision ")) { String msg = "Expecting the output from the svnlook command but instead you just sent me the svnlook invocation command line: " + line; LOGGER.warning(msg); throw new IllegalArgumentException(msg); } } } finally { IOUtils.closeQuietly(r); } if(LOGGER.isLoggable(FINE)) LOGGER.fine("Change reported to Subversion repository "+uuid+" on "+affectedPath); QueryParameterMap query = new QueryParameterMap(req); String revParam = query.get("rev"); if (revParam == null) { revParam = req.getHeader("X-Hudson-Subversion-Revision"); } long rev = -1; if (revParam != null) { rev = Long.parseLong(revParam); } boolean listenerDidSomething = false; Jenkins instance = Jenkins.getInstance(); if (instance == null) { LOGGER.warning("Jenkins instance is null."); return; } for (Listener listener : instance.getExtensionList(Listener.class)) { try { if (listener.onNotify(uuid, rev, affectedPath)) { listenerDidSomething = true; } } catch (Throwable t) { LOGGER.log(WARNING, "Listener " + listener.getClass().getName() + " threw an uncaught exception", t); } } if (!listenerDidSomething) LOGGER.log(Level.WARNING, "No interest in change to repository UUID {0} found", uuid); rsp.setStatus(SC_OK); }