diff --git a/src/org/forkalsrud/album/exif/EntryDao.java b/src/org/forkalsrud/album/exif/EntryDao.java index 858efd8..22b8bd3 100644 --- a/src/org/forkalsrud/album/exif/EntryDao.java +++ b/src/org/forkalsrud/album/exif/EntryDao.java @@ -153,11 +153,15 @@ public class EntryDao { Album childAlbum = read(dir); Entry childCover = childAlbum.getCover(); + if (childCover == null) { + Iterator i = childAlbum.getContents().iterator(); + childCover = i.hasNext() ? i.next() : null; + } if (childCover != null) { - childCover.setFile(false); - childCover.setName(dir.getName()); - childCover.setPath(dir.getName() + "/" + childCover.getPath()); - album.addContents(childCover); + childCover.setFile(false); + childCover.setName(dir.getName()); + childCover.setPath(dir.getName() + "/" + childCover.getPath()); + album.addContents(childCover); } } } diff --git a/src/org/forkalsrud/album/web/AlbumServlet.java b/src/org/forkalsrud/album/web/AlbumServlet.java index 7402dc6..5da1ff5 100644 --- a/src/org/forkalsrud/album/web/AlbumServlet.java +++ b/src/org/forkalsrud/album/web/AlbumServlet.java @@ -65,6 +65,10 @@ public class AlbumServlet } if (file.isDirectory()) { + if (!pathInfo.endsWith("/")) { + res.sendRedirect(req.getContextPath() + req.getRequestURI() + "/"); + return; + } try { List entries = dao.read(file).getContents(); res.setContentType("text/html");