diff --git a/core/src/main/java/hudson/model/ItemGroupMixIn.java b/core/src/main/java/hudson/model/ItemGroupMixIn.java index 51c963004b6c0f0101cc41a8fe486478936f04dc..57ae57f9b2e7b6bd68c9d0465a5afe97eee73323 100644 --- a/core/src/main/java/hudson/model/ItemGroupMixIn.java +++ b/core/src/main/java/hudson/model/ItemGroupMixIn.java @@ -93,7 +93,7 @@ public abstract class ItemGroupMixIn { File[] subdirs = modulesDir.listFiles(new FileFilter() { public boolean accept(File child) { - return child.isDirectory() && new File(child,"config.xml").exists(); + return child.isDirectory(); } }); CopyOnWriteMap.Tree configurations = new CopyOnWriteMap.Tree(); diff --git a/core/src/main/java/hudson/model/Items.java b/core/src/main/java/hudson/model/Items.java index 9b0993dfb2c4da99012dd2c745a6048dc610b403..c2247d9b9c005e231fee524c74d69680093c0f91 100644 --- a/core/src/main/java/hudson/model/Items.java +++ b/core/src/main/java/hudson/model/Items.java @@ -42,6 +42,8 @@ import org.apache.commons.lang.StringUtils; import java.io.File; import java.io.IOException; import java.util.*; +import java.util.logging.Level; +import java.util.logging.Logger; import javax.annotation.CheckForNull; import jenkins.model.DirectlyModifiableTopLevelItemGroup; import org.apache.commons.io.FileUtils; @@ -272,7 +274,12 @@ public class Items { * The directory that contains the config file, not the config file itself. */ public static Item load(ItemGroup parent, File dir) throws IOException { - Item item = (Item)getConfigFile(dir).read(); + XmlFile xmlFile = getConfigFile(dir); + if (!xmlFile.getFile().exists()) { + Logger.getLogger( Items.class.getName() ).log( Level.WARNING, "could not find file " + xmlFile.getFile()); + return null; + } + Item item = (Item)xmlFile.read(); item.onLoad(parent,dir.getName()); return item; }