protected ISVNStatus[] processExternalStatuses(JhlStatus[] statuses) throws SVNClientException
protected JhlStatus[] processExternalStatuses(JhlStatus[] statuses) throws SVNClientException
    protected ISVNStatus[] processExternalStatuses(JhlStatus[] statuses) throws SVNClientException    {    	//Collect indexes of external statuses    	List externalStatusesIndexes = new ArrayList();    	for (int i = 0; i < statuses.length; i++) {    		if (SVNStatusKind.EXTERNAL.equals(statuses[i].getTextStatus())) {    			externalStatusesIndexes.add(new Integer(i));    		}		}    	    	if (externalStatusesIndexes.isEmpty()) {    		return statuses;    	}    	    	//Wrap the "second" externals so their textStatus is actually external    	for (Iterator iter = externalStatusesIndexes.iterator(); iter.hasNext();) {    		int index = ((Integer) iter.next()).intValue();			JhlStatus jhlStatus = statuses[index];			for (int i = 0; i < statuses.length; i++) {				if ((statuses[i].getPath() != null) && (statuses[i].getPath().equals(jhlStatus.getPath()))) {					statuses[i] = new JhlStatus.JhlStatusExternal(statuses[i]);					statuses[index] = statuses[i];				}			}		}    	    	//Fill the missing urls    	for (Iterator iter = externalStatusesIndexes.iterator(); iter.hasNext();) {    		int index = ((Integer) iter.next()).intValue();			JhlStatus jhlStatus = statuses[index];			if ((jhlStatus.getUrlString() == null) || (jhlStatus.getUrlString().length() == 0)) {				ISVNInfo info = getInfoFromWorkingCopy(jhlStatus.getFile());				if (info != null) {					statuses[index] = new JhlStatus.JhlStatusExternal(jhlStatus, info.getUrlString());				}			}		}    	return statuses;    }