if (zipEntry == null)
if (zipEntry == null || zipEntry.isDirectory())
		public File getFile(String entry)		{			ZipEntry zipEntry = getZipEntry(entry);			if (zipEntry == null) 			{				return null;			}			try			{				File bundleGenerationDir = bundledata.getGenerationDir();				/* if the generation dir exists, then we have place to cache */				if (bundleGenerationDir.exists())				{					String path = ".cp";    /* put all these entries in this subdir */					String name = zipEntry.getName().replace('/', File.separatorChar);					if ((name.length() > 1) && (name.charAt(0) == File.separatorChar)) /* if name has a leading slash */					{						path = path.concat(name);					}					else					{						path = path + File.separator + name;					}					File nested = new File(bundleGenerationDir, path);					if (nested.exists())					{						/* the entry is already cached */						if (Debug.DEBUG && Debug.DEBUG_GENERAL)						{							Debug.println("File already present: "+nested.getPath());						}					}					else					{						/* the entry has not been cached */						if (Debug.DEBUG && Debug.DEBUG_GENERAL)						{							Debug.println("Creating file: "+nested.getPath());						}						/* create the necessary directories */						File dir = new File(nested.getParent());						if (!dir.exists() && !dir.mkdirs())						{							if (Debug.DEBUG && Debug.DEBUG_GENERAL)							{								Debug.println("Unable to create directory: "+dir.getPath());							}							throw new IOException(AdaptorMsg.formatter.getString("ADAPTOR_STORAGE_EXCEPTION"));						}						/* copy the entry to the cache */						DefaultAdaptor.readFile(zipFile.getInputStream(zipEntry), nested);					}					return nested;				}			}			catch (IOException e)			{				if (Debug.DEBUG && Debug.DEBUG_GENERAL)				{					Debug.printStackTrace(e);				}			}			return null;		}