Author: markt Date: Mon Sep 17 12:19:37 2018 New Revision: 1841069 URL: http://svn.apache.org/viewvc?rev=1841069&view=rev Log: Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=62674 Correct a regression in the stand-alone JSP compiler utility, JspC, caused by the fix for 53492, that caused the JCP compiler to hang.
Modified: tomcat/trunk/java/org/apache/jasper/JspC.java tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/java/org/apache/jasper/JspC.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/JspC.java?rev=1841069&r1=1841068&r2=1841069&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/jasper/JspC.java (original) +++ tomcat/trunk/java/org/apache/jasper/JspC.java Mon Sep 17 12:19:37 2018 @@ -1484,55 +1484,59 @@ public class JspC extends Task implement ExecutorService threadPool = Executors.newFixedThreadPool(threadCount); ExecutorCompletionService<Void> service = new ExecutorCompletionService<>(threadPool); - int pageCount = pages.size(); + try { + int pageCount = pages.size(); - for (String nextjsp : pages) { - File fjsp = new File(nextjsp); - if (!fjsp.isAbsolute()) { - fjsp = new File(uriRootF, nextjsp); - } - if (!fjsp.exists()) { - if (log.isWarnEnabled()) { - log.warn(Localizer.getMessage( - "jspc.error.fileDoesNotExist", fjsp.toString())); + for (String nextjsp : pages) { + File fjsp = new File(nextjsp); + if (!fjsp.isAbsolute()) { + fjsp = new File(uriRootF, nextjsp); } - continue; - } - String s = fjsp.getAbsolutePath(); - if (s.startsWith(uriRoot)) { - nextjsp = s.substring(uriRoot.length()); - } - if (nextjsp.startsWith("." + File.separatorChar)) { - nextjsp = nextjsp.substring(2); + if (!fjsp.exists()) { + if (log.isWarnEnabled()) { + log.warn(Localizer.getMessage( + "jspc.error.fileDoesNotExist", fjsp.toString())); + } + continue; + } + String s = fjsp.getAbsolutePath(); + if (s.startsWith(uriRoot)) { + nextjsp = s.substring(uriRoot.length()); + } + if (nextjsp.startsWith("." + File.separatorChar)) { + nextjsp = nextjsp.substring(2); + } + service.submit(new ProcessFile(nextjsp)); } - service.submit(new ProcessFile(nextjsp)); - } - JasperException reportableError = null; - for (int i = 0; i < pageCount; i++) { - try { - service.take().get(); - } catch (ExecutionException e) { - if (failFast) { - // Generation is not interruptible so any tasks that - // have started will complete. - List<Runnable> notExecuted = threadPool.shutdownNow(); - i += notExecuted.size(); - Throwable t = e.getCause(); - if (t instanceof JasperException) { - reportableError = (JasperException) t; + JasperException reportableError = null; + for (int i = 0; i < pageCount; i++) { + try { + service.take().get(); + } catch (ExecutionException e) { + if (failFast) { + // Generation is not interruptible so any tasks that + // have started will complete. + List<Runnable> notExecuted = threadPool.shutdownNow(); + i += notExecuted.size(); + Throwable t = e.getCause(); + if (t instanceof JasperException) { + reportableError = (JasperException) t; + } else { + reportableError = new JasperException(t); + } } else { - reportableError = new JasperException(t); + errorCount++; + log.error(e.getMessage()); } - } else { - errorCount++; - log.error(e.getMessage()); + } catch (InterruptedException e) { + // Ignore } - } catch (InterruptedException e) { - // Ignore } - } - if (reportableError != null) { - throw reportableError; + if (reportableError != null) { + throw reportableError; + } + } finally { + threadPool.shutdown(); } long time = System.currentTimeMillis() - start; Modified: tomcat/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1841069&r1=1841068&r2=1841069&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/changelog.xml (original) +++ tomcat/trunk/webapps/docs/changelog.xml Mon Sep 17 12:19:37 2018 @@ -84,6 +84,11 @@ <bug>62721</bug>: Correct generation of web.xml header when using JspC. (markt) </fix> + <fix> + <bug>62674</bug>: Correct a regression in the stand-alone JSP compiler + utility, <code>JspC</code>, caused by the fix for <bug>53492</bug>, that + caused the JCP compiler to hang. (markt) + </fix> </changelog> </subsection> <subsection name="Web applications"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org