Fix NPE when nothing is found
diff --git a/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/PreviousConfigurationFinder.java b/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/PreviousConfigurationFinder.java
index 68dbf8f..09ae0f1 100644
--- a/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/PreviousConfigurationFinder.java
+++ b/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/PreviousConfigurationFinder.java
@@ -10,18 +10,17 @@
  *******************************************************************************/
 package org.eclipse.equinox.internal.p2.ui.sdk.scheduler;
 
-import org.eclipse.equinox.internal.p2.touchpoint.eclipse.AgentFromInstall;
-
 import java.io.*;
 import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import org.eclipse.core.runtime.Platform;
+import org.eclipse.equinox.internal.p2.touchpoint.eclipse.AgentFromInstall;
 import org.eclipse.equinox.p2.core.IProvisioningAgent;
 
 public class PreviousConfigurationFinder {
 
-	private static final Pattern path = Pattern.compile("(.+?)_{1}?([0-9\\.]+)_{1}?(\\d+)_*?([^_].*)"); //$NON-NLS-1$
+	private static final Pattern path = Pattern.compile("(.+?)_{1}?([0-9\\.]+)_{1}?(\\d+)(_*?([^_].*)|$)"); //$NON-NLS-1$
 
 	public static class Identifier {
 		private static final String DELIM = ". _-"; //$NON-NLS-1$
@@ -139,7 +138,7 @@
 		Matcher m = path.matcher(candidate.getName());
 		if (!m.matches())
 			return null;
-		return new ConfigurationDescriptor(m.group(1), new Identifier(m.group(2)), m.group(3), m.group(4), candidate.getAbsoluteFile());
+		return new ConfigurationDescriptor(m.group(1), new Identifier(m.group(2)), m.group(3), m.group(5), candidate.getAbsoluteFile());
 	}
 
 	public IProvisioningAgent findPreviousInstalls(File searchRoot, File installFolder) {
@@ -180,6 +179,8 @@
 				criteriaMet++;
 			}
 
+			if (criteriaMet == 0)
+				continue;
 			if (criteriaMet > numberOfcriteriaMet) {
 				bestMatch = candidate;
 				numberOfcriteriaMet = criteriaMet;
@@ -210,6 +211,8 @@
 				//We have a match
 				criteriaMet++;
 			}
+			if (criteriaMet == 0)
+				continue;
 			if (criteriaMet > numberOfcriteriaMet) {
 				bestMatch = candidate;
 				numberOfcriteriaMet = criteriaMet;