I think this is a compiler bug. When an inner class accesses private variables of the enclosing class the compiler generates accessors for the private variables. Carsten changed these to "protected" (which made no sense to me). This apparently causes the compiler to skip the accessor generation. However, the result is that one class attempts to access the protected fields of another (which is illegal). My preference would be to revert those variables to "private". Another option would be to make them package scope.

My $0.02,

Chris

Bruno Dumon wrote:

On Thu, 2003-10-16 at 16:09, Klaus Bertram wrote:


Hi all

i checked out 2.1 form cvs and make a clean build
and now nothing work (moz and IE), in edit mode all is blank no src in the browser
Here is the system.out exception by jetty:


15:57:41.944 WARN!! Error for /samples/linotype/private/edit/news/3/
java.lang.VerifyError: (class: org/apache/cocoon/generation/JXTemplateGenerator$
TransformerAdapter$TemplateConsumer, method: endDocument signature: ()V) Incompatible argument to function
at org.apache.cocoon.generation.JXTemplateGenerator$TransformerAdapter.s
etup(JXTemplateGenerator.java:2509)
at



I'll commit a fix shortly.


I don't know why it gives this problem though, at first I thought it was
maybe a bug in the Linux JVM I'm using.

The class TemplateConsumer is a static inner class of the class
TransformerAdapter, which in itself is a static inner class of the class
JXTemplateGenerator. TemplateConsumer holds an instance of
JXTemplateGenerator, and tries to access its "xmlConsumer" protected
instance variable. Changing that by using a getter to get the
xmlConsumer solves the problem. Strange though that this code compiles
but fails at runtime...







Reply via email to