X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fmeviz%2Fhtmlindexer%2FWebIndexer.java;h=6530e70c03aac885d6233cccad849ebf896051c8;hb=dd6a4d4e4dd46ca95be11ae91c633d69f085472c;hp=f659a35fcbfb4e2109e2dff3b7d76c07fdd882b6;hpb=9a4e163a8758563c04d36a72ee60669496530100;p=meviz.git diff --git a/src/main/java/eu/svjatoslav/meviz/htmlindexer/WebIndexer.java b/src/main/java/eu/svjatoslav/meviz/htmlindexer/WebIndexer.java index f659a35..6530e70 100644 --- a/src/main/java/eu/svjatoslav/meviz/htmlindexer/WebIndexer.java +++ b/src/main/java/eu/svjatoslav/meviz/htmlindexer/WebIndexer.java @@ -16,6 +16,7 @@ import eu.svjatoslav.meviz.htmlindexer.metadata.fileTypes.Picture; public class WebIndexer extends AbstractIndexer { + private static final int METADATA_LOAD_TRY_COUNT = 10; private final String globalPrefix; private final String jspPath; @@ -34,6 +35,9 @@ public class WebIndexer extends AbstractIndexer { public String getHtml(String requestPath) throws MalformedURLException, IOException, ClassNotFoundException { + if (requestPath == null) + requestPath = ""; + if (requestPath.equals("/")) requestPath = ""; @@ -50,7 +54,7 @@ public class WebIndexer extends AbstractIndexer { } public DirectoryMetadata getMetadataForPath(final String requestPath) - throws IOException, MalformedURLException, ClassNotFoundException { + throws ClassNotFoundException, IOException { final StringBuffer urlStringBuffer = new StringBuffer(); @@ -60,15 +64,25 @@ public class WebIndexer extends AbstractIndexer { final String urlString = urlStringBuffer.toString(); - final BufferedInputStream in = new BufferedInputStream(new URL( - urlString).openStream()); + IOException exception = null; + + for (int i = 0; i < METADATA_LOAD_TRY_COUNT; i++) + try { + + final BufferedInputStream in = new BufferedInputStream(new URL( + urlString).openStream()); + + final ObjectInputStream oin = new ObjectInputStream(in); + final DirectoryMetadata directory = (DirectoryMetadata) oin + .readObject(); + in.close(); - final ObjectInputStream oin = new ObjectInputStream(in); - final DirectoryMetadata directory = (DirectoryMetadata) oin - .readObject(); - in.close(); + return directory; + } catch (final IOException e) { + exception = e; + } - return directory; + throw exception; } @Override