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: [email protected]
For additional commands, e-mail: [email protected]