From: billbarker Date: Thu, 4 May 2006 04:49:09 +0000 (+0000) Subject: Enable Annotation processing for Tags even when pooling is disabled. X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=b90f89e09e1d07efd5f43441786a968807087146;p=tomcat7.0 Enable Annotation processing for Tags even when pooling is disabled. Of course, this will be horrible slow at least until Jasper looks for metadata-complete. Also style fixes on the tagPoolHandler Vector. git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk@399545 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/jasper/compiler/Generator.java b/java/org/apache/jasper/compiler/Generator.java index 5a8a37739..072848837 100644 --- a/java/org/apache/jasper/compiler/Generator.java +++ b/java/org/apache/jasper/compiler/Generator.java @@ -93,7 +93,7 @@ class Generator { private PageInfo pageInfo; - private Vector tagHandlerPoolNames; + private Vector tagHandlerPoolNames; private GenBuffer charArrayBuffer; @@ -385,7 +385,7 @@ class Generator { out.pushIndent(); if (isPoolingEnabled) { for (int i = 0; i < tagHandlerPoolNames.size(); i++) { - out.printin((String) tagHandlerPoolNames.elementAt(i)); + out.printin(tagHandlerPoolNames.elementAt(i)); out .print(" = org.apache.jasper.runtime.TagHandlerPool.getTagHandlerPool("); if (ctxt.isTagFile()) { @@ -422,8 +422,20 @@ class Generator { if (isPoolingEnabled) { for (int i = 0; i < tagHandlerPoolNames.size(); i++) { - out.printin((String) tagHandlerPoolNames.elementAt(i)); - out.println(".release();"); + out.printin("Tag handler = "); + out.printin(tagHandlerPoolNames.elementAt(i)); + out.println(";"); + out.println("handler.release();"); + out.println("try {"); + out.pushIndent(); + out.println("org.apache.jasper.runtime.AnnotationProcessor.preDestroy(handler);"); + out.popIndent(); + out.println("} catch (Exception e) {"); + out.pushIndent(); + out.println("log(\"Error processing preDestroy on tag instance of \" "); + out.println(" + handler.getClass().getName());"); + out.popIndent(); + out.println("}"); } } @@ -2143,6 +2155,9 @@ class Generator { out.print("new "); out.print(tagHandlerClassName); out.println("();"); + out.printin("org.apache.jasper.runtime.AnnotationProcessor.postConstruct("); + out.print(tagHandlerVar); + out.println(");"); } // includes setting the context @@ -2288,6 +2303,19 @@ class Generator { } else { out.printin(tagHandlerVar); out.println(".release();"); + out.println("try {"); + out.pushIndent(); + out.printin("org.apache.jasper.runtime.AnnotationProcessor.preDestroy("); + out.print(tagHandlerVar); + out.println(");"); + out.popIndent(); + out.println("} catch (Exception e) {"); + out.pushIndent(); + out.println("log(\"Error processing preDestroy on tag instance of \" +"); + out.printin(tagHandlerVar); + out.println(".getClass().getName());"); + out.popIndent(); + out.println("}"); } } if (isTagFile || isFragment) { @@ -2330,6 +2358,17 @@ class Generator { } else { out.printin(tagHandlerVar); out.println(".release();"); + out.println("try {"); + out.pushIndent(); + out.printin("org.apache.jasper.runtime.AnnotationProcessor.preDestroy("); + out.print(tagHandlerVar); + out.println(");"); + out.println("} catch (Exception e) {"); + out.println("log(\"Error processing preDestroy on tag instance of \" +"); + out.printin(tagHandlerVar); + out.println(".getClass().getName());"); + out.popIndent(); + out.println("}"); } if (n.implementsTryCatchFinally()) {