jar: use readAllJAR if there're no manifestEntries
[hs-java.git] / Java / JAR.hs
index 1c92f50e2390a57ebe3c0504c0a396a54969d33a..6188dd79610c7863506f50111ac49e550186c2de 100644 (file)
@@ -31,7 +31,7 @@ readOne jarfile str = do
     files <- Zip.fileNames []
     return $ mapF (NotLoadedJAR jarfile) (buildTree $ filter good files)
   where
-    good name = str `isPrefixOf` name
+    good name = (str `isPrefixOf` name) && (".class" `isSuffixOf` name)
 
 -- | Read entries from JAR file, using MANIFEST.MF if it exists.
 readJAR :: FilePath -> IO [Tree CPEntry]
@@ -46,6 +46,7 @@ readJAR jarfile = do
                       return (Just forest)
   case r of
     Nothing -> readAllJAR jarfile
+    Just [] -> readAllJAR jarfile
     Just f  -> return f
 
 -- | Add given JAR file to ClassPath