| 167 | } |
| 168 | |
| 169 | private Parse runParser(Parser p, String url, WebPage page) { |
| 170 | ParseCallable pc = new ParseCallable(p, page, url); |
| 171 | Future<Parse> task = executorService.submit(pc); |
| 172 | Parse res = null; |
| 173 | try { |
| 174 | res = task.get(maxParseTime, TimeUnit.SECONDS); |
| 175 | } catch (Exception e) { |
| 176 | LOG.warn("Error parsing " + url, e); |
| 177 | task.cancel(true); |
| 178 | } finally { |
| 179 | pc = null; |
| 180 | } |
| 181 | return res; |
| 182 | } |
| 183 | |
| 184 | public boolean status(String url, WebPage page) { |
| 185 | byte status = page.getStatus().byteValue(); |