You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Howard M. Lewis Ship (Updated) (JIRA)" <ji...@apache.org> on 2012/04/12 22:45:21 UTC

[jira] [Updated] (TAP5-1860) Access to protected component fields does not always reflect in subclasses

     [ https://issues.apache.org/jira/browse/TAP5-1860?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Howard M. Lewis Ship updated TAP5-1860:
---------------------------------------

    Summary: Access to protected component fields does not always reflect in subclasses  (was: problems with protected component fields)

I've taken the code and renamed the classes slightly (to Grandparent and Parent), and enabled component transformation logging.


    DEBUG - // class version 50.0 (50)
    // access flags 0x21
    public class test/base/pages/Grandparent implements org/apache/tapestry5/runtime/Component org/apache/tapestry5/runtime/RenderCommand  {

      // compiled from: Grandparent.java

      // access flags 0x14
      protected final Lorg/slf4j/Logger; log
      @Lorg/apache/tapestry5/ioc/annotations/Inject;()

      // access flags 0x4
      protected Z fieldSetOnEvent
      @Lorg/apache/tapestry5/annotations/Property;()

      // access flags 0x12
      private final Lorg/apache/tapestry5/internal/InternalComponentResources; internalComponentResources

      // access flags 0x12
      private final Lorg/apache/tapestry5/internal/InternalComponentResources; resources

      // access flags 0x12
      private final Lorg/apache/tapestry5/plastic/FieldConduit; fieldSetOnEvent_FieldConduit

      // access flags 0x12
      private final Lorg/apache/tapestry5/plastic/InstanceContext; instanceContext

      // access flags 0x2
      private initializeInstance()V
       L0
        LINENUMBER 12 L0
        RETURN
       L1
        LOCALVARIABLE this Ltest/base/pages/Grandparent; L0 L1 0
        MAXSTACK = 1
        MAXLOCALS = 1

      // access flags 0x1
      public getFieldValueUsingGrandparentGetter()Z
       L0
        LINENUMBER 19 L0
        ALOAD 0
        INVOKEVIRTUAL test/base/pages/Grandparent.conduit_get_fieldSetOnEvent ()Z
        IRETURN
       L1
        LOCALVARIABLE this Ltest/base/pages/Grandparent; L0 L1 0
        MAXSTACK = 1
        MAXLOCALS = 1

      // access flags 0x0
      onAnother()V
       L0
        LINENUMBER 28 L0
        ALOAD 0
        ICONST_1
        INVOKEVIRTUAL test/base/pages/Grandparent.conduit_set_fieldSetOnEvent (Z)V
       L1
        LINENUMBER 29 L1
        ALOAD 0
        GETFIELD test/base/pages/Grandparent.log : Lorg/slf4j/Logger;
        LDC "onAnother: this.fieldSetOnEvent = {}"
        ALOAD 0
        INVOKEVIRTUAL test/base/pages/Grandparent.conduit_get_fieldSetOnEvent ()Z
        INVOKESTATIC java/lang/Boolean.valueOf (Z)Ljava/lang/Boolean;
        INVOKEINTERFACE org/slf4j/Logger.info (Ljava/lang/String;Ljava/lang/Object;)V
       L2
        LINENUMBER 30 L2
        ALOAD 0
        GETFIELD test/base/pages/Grandparent.log : Lorg/slf4j/Logger;
        LDC "onAnother: this.getFieldValueUsingGrandparentGetter() = {}"
        ALOAD 0
        INVOKEVIRTUAL test/base/pages/Grandparent.getFieldValueUsingGrandparentGetter ()Z
        INVOKESTATIC java/lang/Boolean.valueOf (Z)Ljava/lang/Boolean;
        INVOKEINTERFACE org/slf4j/Logger.info (Ljava/lang/String;Ljava/lang/Object;)V
       L3
        LINENUMBER 32 L3
        RETURN
       L4
        LOCALVARIABLE this Ltest/base/pages/Grandparent; L0 L4 0
        MAXSTACK = 3
        MAXLOCALS = 1

      // access flags 0x1
      public postRenderCleanup()V
        ALOAD 0
        GETFIELD test/base/pages/Grandparent.resources : Lorg/apache/tapestry5/internal/InternalComponentResources;
        INVOKEINTERFACE org/apache/tapestry5/internal/InternalComponentResources.postRenderCleanup ()V
        RETURN
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1
      public setupRender(Lorg/apache/tapestry5/MarkupWriter;Lorg/apache/tapestry5/runtime/Event;)V
        RETURN
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1
      public beginRender(Lorg/apache/tapestry5/MarkupWriter;Lorg/apache/tapestry5/runtime/Event;)V
        RETURN
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1
      public beforeRenderTemplate(Lorg/apache/tapestry5/MarkupWriter;Lorg/apache/tapestry5/runtime/Event;)V
        RETURN
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1
      public afterRenderTemplate(Lorg/apache/tapestry5/MarkupWriter;Lorg/apache/tapestry5/runtime/Event;)V
        RETURN
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1
      public beforeRenderBody(Lorg/apache/tapestry5/MarkupWriter;Lorg/apache/tapestry5/runtime/Event;)V
        RETURN
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1
      public afterRenderBody(Lorg/apache/tapestry5/MarkupWriter;Lorg/apache/tapestry5/runtime/Event;)V
        RETURN
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1
      public afterRender(Lorg/apache/tapestry5/MarkupWriter;Lorg/apache/tapestry5/runtime/Event;)V
        RETURN
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1
      public cleanupRender(Lorg/apache/tapestry5/MarkupWriter;Lorg/apache/tapestry5/runtime/Event;)V
        RETURN
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1
      public dispatchComponentEvent(Lorg/apache/tapestry5/runtime/ComponentEvent;)Z
       L0
        LDC false
        ISTORE 2
        ALOAD 1
        LDC "Another"
        LDC ""
        ICONST_0
        INVOKEINTERFACE org/apache/tapestry5/runtime/ComponentEvent.matches (Ljava/lang/String;Ljava/lang/String;I)Z
        IFEQ L1
        ALOAD 1
        LDC "test.base.pages.Grandparent.onAnother()"
        INVOKEINTERFACE org/apache/tapestry5/runtime/Event.setMethodDescription (Ljava/lang/String;)V
        ALOAD 0
        INVOKEVIRTUAL test/base/pages/Grandparent.onAnother ()V
        LDC true
        ISTORE 2
        GOTO L2
       L1
       L2
        ILOAD 2
        IRETURN
       L3
        LOCALVARIABLE var0 Z L0 L3 2
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1
      public getComponentResources()Lorg/apache/tapestry5/ComponentResources;
        ALOAD 0
        GETFIELD test/base/pages/Grandparent.internalComponentResources : Lorg/apache/tapestry5/internal/InternalComponentResources;
        ARETURN
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1010
      final reject_field_change_internalComponentResources(Lorg/apache/tapestry5/internal/InternalComponentResources;)V
        NEW java/lang/IllegalStateException
        DUP
        LDC "Field internalComponentResources of class test.base.pages.Grandparent is read-only."
        INVOKESPECIAL java/lang/IllegalStateException.<init> (Ljava/lang/String;)V
        ATHROW
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1
      public getFieldSetOnEvent()Z
        ALOAD 0
        INVOKEVIRTUAL test/base/pages/Grandparent.conduit_get_fieldSetOnEvent ()Z
        IRETURN
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1
      public setFieldSetOnEvent(Z)V
        ALOAD 0
        ILOAD 1
        INVOKEVIRTUAL test/base/pages/Grandparent.conduit_set_fieldSetOnEvent (Z)V
        RETURN
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1
      public render(Lorg/apache/tapestry5/MarkupWriter;Lorg/apache/tapestry5/runtime/RenderQueue;)V
        ALOAD 0
        GETFIELD test/base/pages/Grandparent.resources : Lorg/apache/tapestry5/internal/InternalComponentResources;
        ALOAD 1
        ALOAD 2
        INVOKEINTERFACE org/apache/tapestry5/internal/InternalComponentResources.render (Lorg/apache/tapestry5/MarkupWriter;Lorg/apache/tapestry5/runtime/RenderQueue;)V
        RETURN
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1010
      final reject_field_change_resources(Lorg/apache/tapestry5/internal/InternalComponentResources;)V
        NEW java/lang/IllegalStateException
        DUP
        LDC "Field resources of class test.base.pages.Grandparent is read-only."
        INVOKESPECIAL java/lang/IllegalStateException.<init> (Ljava/lang/String;)V
        ATHROW
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1014
      protected final reject_field_change_log(Lorg/slf4j/Logger;)V
        NEW java/lang/IllegalStateException
        DUP
        LDC "Field log of class test.base.pages.Grandparent is read-only."
        INVOKESPECIAL java/lang/IllegalStateException.<init> (Ljava/lang/String;)V
        ATHROW
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1010
      final reject_field_change_fieldSetOnEvent_FieldConduit(Lorg/apache/tapestry5/plastic/FieldConduit;)V
        NEW java/lang/IllegalStateException
        DUP
        LDC "Field fieldSetOnEvent_FieldConduit of class test.base.pages.Grandparent is read-only."
        INVOKESPECIAL java/lang/IllegalStateException.<init> (Ljava/lang/String;)V
        ATHROW
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1014
      protected final conduit_get_fieldSetOnEvent()Z
        ALOAD 0
        GETFIELD test/base/pages/Grandparent.fieldSetOnEvent_FieldConduit : Lorg/apache/tapestry5/plastic/FieldConduit;
        ALOAD 0
        ALOAD 0
        GETFIELD test/base/pages/Grandparent.instanceContext : Lorg/apache/tapestry5/plastic/InstanceContext;
        INVOKEINTERFACE org/apache/tapestry5/plastic/FieldConduit.get (Ljava/lang/Object;Lorg/apache/tapestry5/plastic/InstanceContext;)Ljava/lang/Object;
        CHECKCAST java/lang/Boolean
        INVOKEVIRTUAL java/lang/Boolean.booleanValue ()Z
        DUP
        ALOAD 0
        SWAP
        PUTFIELD test/base/pages/Grandparent.fieldSetOnEvent : Z
        IRETURN
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1014
      protected final conduit_set_fieldSetOnEvent(Z)V
        ALOAD 0
        GETFIELD test/base/pages/Grandparent.fieldSetOnEvent_FieldConduit : Lorg/apache/tapestry5/plastic/FieldConduit;
        ALOAD 0
        ALOAD 0
        GETFIELD test/base/pages/Grandparent.instanceContext : Lorg/apache/tapestry5/plastic/InstanceContext;
        ILOAD 1
        INVOKESTATIC java/lang/Boolean.valueOf (Z)Ljava/lang/Boolean;
        INVOKEINTERFACE org/apache/tapestry5/plastic/FieldConduit.set (Ljava/lang/Object;Lorg/apache/tapestry5/plastic/InstanceContext;Ljava/lang/Object;)V
        ALOAD 0
        ILOAD 1
        PUTFIELD test/base/pages/Grandparent.fieldSetOnEvent : Z
        RETURN
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1
      public <init>()V
        NEW java/lang/IllegalStateException
        DUP
        LDC "Class test.base.pages.Grandparent has been transformed and may not be directly instantiated."
        INVOKESPECIAL java/lang/IllegalStateException.<init> (Ljava/lang/String;)V
        ATHROW
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1
      public <init>(Lorg/apache/tapestry5/internal/plastic/StaticContext;Lorg/apache/tapestry5/plastic/InstanceContext;)V
        ALOAD 0
        INVOKESPECIAL java/lang/Object.<init> ()V
        ALOAD 0
        ALOAD 2
        LDC "org.apache.tapestry5.internal.InternalComponentResources"
        INVOKESTATIC org/apache/tapestry5/internal/plastic/PlasticInternalUtils.getFromInstanceContext (Lorg/apache/tapestry5/plastic/InstanceContext;Ljava/lang/String;)Ljava/lang/Object;
        CHECKCAST org/apache/tapestry5/internal/InternalComponentResources
        PUTFIELD test/base/pages/Grandparent.internalComponentResources : Lorg/apache/tapestry5/internal/InternalComponentResources;
        ALOAD 0
        ALOAD 2
        LDC "org.apache.tapestry5.internal.InternalComponentResources"
        INVOKESTATIC org/apache/tapestry5/internal/plastic/PlasticInternalUtils.getFromInstanceContext (Lorg/apache/tapestry5/plastic/InstanceContext;Ljava/lang/String;)Ljava/lang/Object;
        CHECKCAST org/apache/tapestry5/internal/InternalComponentResources
        PUTFIELD test/base/pages/Grandparent.resources : Lorg/apache/tapestry5/internal/InternalComponentResources;
        ALOAD 0
        ALOAD 1
        ICONST_0
        INVOKEVIRTUAL org/apache/tapestry5/internal/plastic/StaticContext.get (I)Ljava/lang/Object;
        CHECKCAST org/apache/tapestry5/plastic/ComputedValue
        ALOAD 2
        INVOKEINTERFACE org/apache/tapestry5/plastic/ComputedValue.get (Lorg/apache/tapestry5/plastic/InstanceContext;)Ljava/lang/Object;
        CHECKCAST org/slf4j/Logger
        PUTFIELD test/base/pages/Grandparent.log : Lorg/slf4j/Logger;
        ALOAD 0
        ALOAD 1
        ICONST_1
        INVOKEVIRTUAL org/apache/tapestry5/internal/plastic/StaticContext.get (I)Ljava/lang/Object;
        CHECKCAST org/apache/tapestry5/plastic/ComputedValue
        ALOAD 2
        INVOKEINTERFACE org/apache/tapestry5/plastic/ComputedValue.get (Lorg/apache/tapestry5/plastic/InstanceContext;)Ljava/lang/Object;
        CHECKCAST org/apache/tapestry5/plastic/FieldConduit
        PUTFIELD test/base/pages/Grandparent.fieldSetOnEvent_FieldConduit : Lorg/apache/tapestry5/plastic/FieldConduit;
        ALOAD 0
        ALOAD 2
        PUTFIELD test/base/pages/Grandparent.instanceContext : Lorg/apache/tapestry5/plastic/InstanceContext;
        ALOAD 0
        INVOKEVIRTUAL test/base/pages/Grandparent.initializeInstance ()V
        RETURN
        MAXSTACK = 0
        MAXLOCALS = 0
    }

    DEBUG - // class version 50.0 (50)
    // access flags 0x421
    public abstract class test/base/pages/other/Parent extends test/base/pages/Grandparent  {

      // compiled from: Parent.java

      // access flags 0x2
      private initializeInstance()V
       L0
        LINENUMBER 10 L0
        RETURN
       L1
        LOCALVARIABLE this Ltest/base/pages/other/Parent; L0 L1 0
        MAXSTACK = 1
        MAXLOCALS = 1

      // access flags 0x0
      onOther()V
       L0
        LINENUMBER 14 L0
        ALOAD 0
        ICONST_1
        PUTFIELD test/base/pages/other/Parent.fieldSetOnEvent : Z
       L1
        LINENUMBER 15 L1
        ALOAD 0
        GETFIELD test/base/pages/other/Parent.log : Lorg/slf4j/Logger;
        LDC "onOther: this.fieldSetOnEvent = {}"
        ALOAD 0
        GETFIELD test/base/pages/other/Parent.fieldSetOnEvent : Z
        INVOKESTATIC java/lang/Boolean.valueOf (Z)Ljava/lang/Boolean;
        INVOKEINTERFACE org/slf4j/Logger.info (Ljava/lang/String;Ljava/lang/Object;)V
       L2
        LINENUMBER 16 L2
        ALOAD 0
        GETFIELD test/base/pages/other/Parent.log : Lorg/slf4j/Logger;
        LDC "onOther: this.getFieldValueViaParentGetter() = {}"
        ALOAD 0
        INVOKEVIRTUAL test/base/pages/other/Parent.getFieldValueViaParentGetter ()Z
        INVOKESTATIC java/lang/Boolean.valueOf (Z)Ljava/lang/Boolean;
        INVOKEINTERFACE org/slf4j/Logger.info (Ljava/lang/String;Ljava/lang/Object;)V
       L3
        LINENUMBER 17 L3
        ALOAD 0
        GETFIELD test/base/pages/other/Parent.log : Lorg/slf4j/Logger;
        LDC "onOther: this.getFieldValueUsingGrandparentGetter() = {}"
        ALOAD 0
        INVOKEVIRTUAL test/base/pages/other/Parent.getFieldValueUsingGrandparentGetter ()Z
        INVOKESTATIC java/lang/Boolean.valueOf (Z)Ljava/lang/Boolean;
        INVOKEINTERFACE org/slf4j/Logger.info (Ljava/lang/String;Ljava/lang/Object;)V
       L4
        LINENUMBER 19 L4
        RETURN
       L5
        LOCALVARIABLE this Ltest/base/pages/other/Parent; L0 L5 0
        MAXSTACK = 3
        MAXLOCALS = 1

      // access flags 0x1
      public getFieldValueViaParentGetter()Z
       L0
        LINENUMBER 23 L0
        ALOAD 0
        GETFIELD test/base/pages/other/Parent.fieldSetOnEvent : Z
        IRETURN
       L1
        LOCALVARIABLE this Ltest/base/pages/other/Parent; L0 L1 0
        MAXSTACK = 1
        MAXLOCALS = 1

      // access flags 0x1
      public dispatchComponentEvent(Lorg/apache/tapestry5/runtime/ComponentEvent;)Z
       L0
        ALOAD 0
        ALOAD 1
        INVOKESPECIAL test/base/pages/Grandparent.dispatchComponentEvent (Lorg/apache/tapestry5/runtime/ComponentEvent;)Z
        ISTORE 2
        ALOAD 1
        INVOKEINTERFACE org/apache/tapestry5/runtime/Event.isAborted ()Z
        IFEQ L1
        LDC true
        IRETURN
        GOTO L2
       L1
       L2
        ALOAD 1
        LDC "Other"
        LDC ""
        ICONST_0
        INVOKEINTERFACE org/apache/tapestry5/runtime/ComponentEvent.matches (Ljava/lang/String;Ljava/lang/String;I)Z
        IFEQ L3
        ALOAD 1
        LDC "test.base.pages.other.Parent.onOther()"
        INVOKEINTERFACE org/apache/tapestry5/runtime/Event.setMethodDescription (Ljava/lang/String;)V
        ALOAD 0
        INVOKEVIRTUAL test/base/pages/other/Parent.onOther ()V
        LDC true
        ISTORE 2
        GOTO L4
       L3
       L4
        ILOAD 2
        IRETURN
       L5
        LOCALVARIABLE var0 Z L0 L5 2
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1
      public <init>()V
        NEW java/lang/IllegalStateException
        DUP
        LDC "Class test.base.pages.other.Parent has been transformed and may not be directly instantiated."
        INVOKESPECIAL java/lang/IllegalStateException.<init> (Ljava/lang/String;)V
        ATHROW
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1
      public <init>(Lorg/apache/tapestry5/internal/plastic/StaticContext;Lorg/apache/tapestry5/plastic/InstanceContext;)V
        ALOAD 0
        ALOAD 1
        ALOAD 2
        INVOKESPECIAL test/base/pages/Grandparent.<init> (Lorg/apache/tapestry5/internal/plastic/StaticContext;Lorg/apache/tapestry5/plastic/InstanceContext;)V
        ALOAD 0
        INVOKEVIRTUAL test/base/pages/other/Parent.initializeInstance ()V
        RETURN
        MAXSTACK = 0
        MAXLOCALS = 0
    }

    DEBUG - // class version 50.0 (50)
    // access flags 0x21
    public class test/pages/Index extends test/base/pages/other/Parent  {

      // compiled from: Index.java

      // access flags 0x2
      private Z result1
      @Lorg/apache/tapestry5/annotations/Persist;(value="flash")
      @Lorg/apache/tapestry5/annotations/Property;()

      // access flags 0x2
      private Z result2
      @Lorg/apache/tapestry5/annotations/Persist;(value="flash")
      @Lorg/apache/tapestry5/annotations/Property;()

      // access flags 0x2
      private Z result3
      @Lorg/apache/tapestry5/annotations/Persist;(value="flash")
      @Lorg/apache/tapestry5/annotations/Property;()

      // access flags 0x12
      private final Lorg/apache/tapestry5/plastic/FieldConduit; result1_FieldConduit

      // access flags 0x12
      private final Lorg/apache/tapestry5/plastic/InstanceContext; instanceContext

      // access flags 0x12
      private final Lorg/apache/tapestry5/plastic/FieldConduit; result2_FieldConduit

      // access flags 0x12
      private final Lorg/apache/tapestry5/plastic/FieldConduit; result3_FieldConduit

      // access flags 0x2
      private initializeInstance()V
       L0
        LINENUMBER 14 L0
        RETURN
       L1
        LOCALVARIABLE this Ltest/pages/Index; L0 L1 0
        MAXSTACK = 1
        MAXLOCALS = 1

      // access flags 0x0
      onSome()V
       L0
        LINENUMBER 33 L0
        ALOAD 0
        ICONST_1
        PUTFIELD test/pages/Index.fieldSetOnEvent : Z
       L1
        LINENUMBER 34 L1
        ALOAD 0
        GETFIELD test/pages/Index.log : Lorg/slf4j/Logger;
        LDC "onSome: this.fieldSetOnEvent = {}"
        ALOAD 0
        GETFIELD test/pages/Index.fieldSetOnEvent : Z
        INVOKESTATIC java/lang/Boolean.valueOf (Z)Ljava/lang/Boolean;
        INVOKEINTERFACE org/slf4j/Logger.info (Ljava/lang/String;Ljava/lang/Object;)V
       L2
        LINENUMBER 35 L2
        ALOAD 0
        GETFIELD test/pages/Index.log : Lorg/slf4j/Logger;
        LDC "onSome: this.getFieldValueViaParentGetter() = {}"
        ALOAD 0
        INVOKEVIRTUAL test/pages/Index.getFieldValueViaParentGetter ()Z
        INVOKESTATIC java/lang/Boolean.valueOf (Z)Ljava/lang/Boolean;
        INVOKEINTERFACE org/slf4j/Logger.info (Ljava/lang/String;Ljava/lang/Object;)V
       L3
        LINENUMBER 36 L3
        ALOAD 0
        GETFIELD test/pages/Index.log : Lorg/slf4j/Logger;
        LDC "onSome: this.getFieldValueUsingGrandparentGetter() = {}"
        ALOAD 0
        INVOKEVIRTUAL test/pages/Index.getFieldValueUsingGrandparentGetter ()Z
        INVOKESTATIC java/lang/Boolean.valueOf (Z)Ljava/lang/Boolean;
        INVOKEINTERFACE org/slf4j/Logger.info (Ljava/lang/String;Ljava/lang/Object;)V
       L4
        LINENUMBER 37 L4
        RETURN
       L5
        LOCALVARIABLE this Ltest/pages/Index; L0 L5 0
        MAXSTACK = 3
        MAXLOCALS = 1

      // access flags 0x0
      onSuccess()Ljava/lang/Object;
       L0
        LINENUMBER 41 L0
        ALOAD 0
        GETFIELD test/pages/Index.log : Lorg/slf4j/Logger;
        LDC "onSuccess: this.fieldSetOnEvent = {}"
        ALOAD 0
        GETFIELD test/pages/Index.fieldSetOnEvent : Z
        INVOKESTATIC java/lang/Boolean.valueOf (Z)Ljava/lang/Boolean;
        INVOKEINTERFACE org/slf4j/Logger.info (Ljava/lang/String;Ljava/lang/Object;)V
       L1
        LINENUMBER 42 L1
        ALOAD 0
        GETFIELD test/pages/Index.log : Lorg/slf4j/Logger;
        LDC "onSuccess: this.getFieldValueViaParentGetter() = {}"
        ALOAD 0
        INVOKEVIRTUAL test/pages/Index.getFieldValueViaParentGetter ()Z
        INVOKESTATIC java/lang/Boolean.valueOf (Z)Ljava/lang/Boolean;
        INVOKEINTERFACE org/slf4j/Logger.info (Ljava/lang/String;Ljava/lang/Object;)V
       L2
        LINENUMBER 43 L2
        ALOAD 0
        GETFIELD test/pages/Index.log : Lorg/slf4j/Logger;
        LDC "onSuccess: this.getFieldValueUsingGrandparentGetter() = {}"
        ALOAD 0
        INVOKEVIRTUAL test/pages/Index.getFieldValueUsingGrandparentGetter ()Z
        INVOKESTATIC java/lang/Boolean.valueOf (Z)Ljava/lang/Boolean;
        INVOKEINTERFACE org/slf4j/Logger.info (Ljava/lang/String;Ljava/lang/Object;)V
       L3
        LINENUMBER 44 L3
        ALOAD 0
        ALOAD 0
        GETFIELD test/pages/Index.fieldSetOnEvent : Z
        INVOKEVIRTUAL test/pages/Index.conduit_set_result1 (Z)V
       L4
        LINENUMBER 45 L4
        ALOAD 0
        ALOAD 0
        INVOKEVIRTUAL test/pages/Index.getFieldValueViaParentGetter ()Z
        INVOKEVIRTUAL test/pages/Index.conduit_set_result2 (Z)V
       L5
        LINENUMBER 46 L5
        ALOAD 0
        ALOAD 0
        INVOKEVIRTUAL test/pages/Index.getFieldValueUsingGrandparentGetter ()Z
        INVOKEVIRTUAL test/pages/Index.conduit_set_result3 (Z)V
       L6
        LINENUMBER 47 L6
        ALOAD 0
        ARETURN
       L7
        LOCALVARIABLE this Ltest/pages/Index; L0 L7 0
        MAXSTACK = 3
        MAXLOCALS = 1

      // access flags 0x1
      public getResult1()Z
        ALOAD 0
        INVOKEVIRTUAL test/pages/Index.conduit_get_result1 ()Z
        IRETURN
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1
      public setResult1(Z)V
        ALOAD 0
        ILOAD 1
        INVOKEVIRTUAL test/pages/Index.conduit_set_result1 (Z)V
        RETURN
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1
      public getResult2()Z
        ALOAD 0
        INVOKEVIRTUAL test/pages/Index.conduit_get_result2 ()Z
        IRETURN
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1
      public setResult2(Z)V
        ALOAD 0
        ILOAD 1
        INVOKEVIRTUAL test/pages/Index.conduit_set_result2 (Z)V
        RETURN
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1
      public getResult3()Z
        ALOAD 0
        INVOKEVIRTUAL test/pages/Index.conduit_get_result3 ()Z
        IRETURN
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1
      public setResult3(Z)V
        ALOAD 0
        ILOAD 1
        INVOKEVIRTUAL test/pages/Index.conduit_set_result3 (Z)V
        RETURN
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1
      public dispatchComponentEvent(Lorg/apache/tapestry5/runtime/ComponentEvent;)Z
       L0
        ALOAD 0
        ALOAD 1
        INVOKESPECIAL test/base/pages/other/Parent.dispatchComponentEvent (Lorg/apache/tapestry5/runtime/ComponentEvent;)Z
        ISTORE 2
        ALOAD 1
        INVOKEINTERFACE org/apache/tapestry5/runtime/Event.isAborted ()Z
        IFEQ L1
        LDC true
        IRETURN
        GOTO L2
       L1
       L2
        ALOAD 1
        LDC "Some"
        LDC ""
        ICONST_0
        INVOKEINTERFACE org/apache/tapestry5/runtime/ComponentEvent.matches (Ljava/lang/String;Ljava/lang/String;I)Z
        IFEQ L3
        ALOAD 1
        LDC "test.pages.Index.onSome()"
        INVOKEINTERFACE org/apache/tapestry5/runtime/Event.setMethodDescription (Ljava/lang/String;)V
        ALOAD 0
        INVOKEVIRTUAL test/pages/Index.onSome ()V
        LDC true
        ISTORE 2
        GOTO L4
       L3
       L4
        ALOAD 1
        LDC "Success"
        LDC ""
        ICONST_0
        INVOKEINTERFACE org/apache/tapestry5/runtime/ComponentEvent.matches (Ljava/lang/String;Ljava/lang/String;I)Z
        IFEQ L5
        ALOAD 1
        LDC "test.pages.Index.onSuccess()"
        INVOKEINTERFACE org/apache/tapestry5/runtime/Event.setMethodDescription (Ljava/lang/String;)V
        ALOAD 0
        INVOKEVIRTUAL test/pages/Index.onSuccess ()Ljava/lang/Object;
        ALOAD 1
        SWAP
        INVOKEINTERFACE org/apache/tapestry5/runtime/Event.storeResult (Ljava/lang/Object;)Z
        IFEQ L6
        LDC true
        IRETURN
        GOTO L7
       L6
       L7
        LDC true
        ISTORE 2
        GOTO L8
       L5
       L8
        ILOAD 2
        IRETURN
       L9
        LOCALVARIABLE var0 Z L0 L9 2
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1010
      final reject_field_change_result1_FieldConduit(Lorg/apache/tapestry5/plastic/FieldConduit;)V
        NEW java/lang/IllegalStateException
        DUP
        LDC "Field result1_FieldConduit of class test.pages.Index is read-only."
        INVOKESPECIAL java/lang/IllegalStateException.<init> (Ljava/lang/String;)V
        ATHROW
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1010
      final conduit_get_result1()Z
        ALOAD 0
        GETFIELD test/pages/Index.result1_FieldConduit : Lorg/apache/tapestry5/plastic/FieldConduit;
        ALOAD 0
        ALOAD 0
        GETFIELD test/pages/Index.instanceContext : Lorg/apache/tapestry5/plastic/InstanceContext;
        INVOKEINTERFACE org/apache/tapestry5/plastic/FieldConduit.get (Ljava/lang/Object;Lorg/apache/tapestry5/plastic/InstanceContext;)Ljava/lang/Object;
        CHECKCAST java/lang/Boolean
        INVOKEVIRTUAL java/lang/Boolean.booleanValue ()Z
        DUP
        ALOAD 0
        SWAP
        PUTFIELD test/pages/Index.result1 : Z
        IRETURN
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1010
      final conduit_set_result1(Z)V
        ALOAD 0
        GETFIELD test/pages/Index.result1_FieldConduit : Lorg/apache/tapestry5/plastic/FieldConduit;
        ALOAD 0
        ALOAD 0
        GETFIELD test/pages/Index.instanceContext : Lorg/apache/tapestry5/plastic/InstanceContext;
        ILOAD 1
        INVOKESTATIC java/lang/Boolean.valueOf (Z)Ljava/lang/Boolean;
        INVOKEINTERFACE org/apache/tapestry5/plastic/FieldConduit.set (Ljava/lang/Object;Lorg/apache/tapestry5/plastic/InstanceContext;Ljava/lang/Object;)V
        ALOAD 0
        ILOAD 1
        PUTFIELD test/pages/Index.result1 : Z
        RETURN
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1010
      final reject_field_change_result2_FieldConduit(Lorg/apache/tapestry5/plastic/FieldConduit;)V
        NEW java/lang/IllegalStateException
        DUP
        LDC "Field result2_FieldConduit of class test.pages.Index is read-only."
        INVOKESPECIAL java/lang/IllegalStateException.<init> (Ljava/lang/String;)V
        ATHROW
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1010
      final conduit_get_result2()Z
        ALOAD 0
        GETFIELD test/pages/Index.result2_FieldConduit : Lorg/apache/tapestry5/plastic/FieldConduit;
        ALOAD 0
        ALOAD 0
        GETFIELD test/pages/Index.instanceContext : Lorg/apache/tapestry5/plastic/InstanceContext;
        INVOKEINTERFACE org/apache/tapestry5/plastic/FieldConduit.get (Ljava/lang/Object;Lorg/apache/tapestry5/plastic/InstanceContext;)Ljava/lang/Object;
        CHECKCAST java/lang/Boolean
        INVOKEVIRTUAL java/lang/Boolean.booleanValue ()Z
        DUP
        ALOAD 0
        SWAP
        PUTFIELD test/pages/Index.result2 : Z
        IRETURN
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1010
      final conduit_set_result2(Z)V
        ALOAD 0
        GETFIELD test/pages/Index.result2_FieldConduit : Lorg/apache/tapestry5/plastic/FieldConduit;
        ALOAD 0
        ALOAD 0
        GETFIELD test/pages/Index.instanceContext : Lorg/apache/tapestry5/plastic/InstanceContext;
        ILOAD 1
        INVOKESTATIC java/lang/Boolean.valueOf (Z)Ljava/lang/Boolean;
        INVOKEINTERFACE org/apache/tapestry5/plastic/FieldConduit.set (Ljava/lang/Object;Lorg/apache/tapestry5/plastic/InstanceContext;Ljava/lang/Object;)V
        ALOAD 0
        ILOAD 1
        PUTFIELD test/pages/Index.result2 : Z
        RETURN
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1010
      final reject_field_change_result3_FieldConduit(Lorg/apache/tapestry5/plastic/FieldConduit;)V
        NEW java/lang/IllegalStateException
        DUP
        LDC "Field result3_FieldConduit of class test.pages.Index is read-only."
        INVOKESPECIAL java/lang/IllegalStateException.<init> (Ljava/lang/String;)V
        ATHROW
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1010
      final conduit_get_result3()Z
        ALOAD 0
        GETFIELD test/pages/Index.result3_FieldConduit : Lorg/apache/tapestry5/plastic/FieldConduit;
        ALOAD 0
        ALOAD 0
        GETFIELD test/pages/Index.instanceContext : Lorg/apache/tapestry5/plastic/InstanceContext;
        INVOKEINTERFACE org/apache/tapestry5/plastic/FieldConduit.get (Ljava/lang/Object;Lorg/apache/tapestry5/plastic/InstanceContext;)Ljava/lang/Object;
        CHECKCAST java/lang/Boolean
        INVOKEVIRTUAL java/lang/Boolean.booleanValue ()Z
        DUP
        ALOAD 0
        SWAP
        PUTFIELD test/pages/Index.result3 : Z
        IRETURN
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1010
      final conduit_set_result3(Z)V
        ALOAD 0
        GETFIELD test/pages/Index.result3_FieldConduit : Lorg/apache/tapestry5/plastic/FieldConduit;
        ALOAD 0
        ALOAD 0
        GETFIELD test/pages/Index.instanceContext : Lorg/apache/tapestry5/plastic/InstanceContext;
        ILOAD 1
        INVOKESTATIC java/lang/Boolean.valueOf (Z)Ljava/lang/Boolean;
        INVOKEINTERFACE org/apache/tapestry5/plastic/FieldConduit.set (Ljava/lang/Object;Lorg/apache/tapestry5/plastic/InstanceContext;Ljava/lang/Object;)V
        ALOAD 0
        ILOAD 1
        PUTFIELD test/pages/Index.result3 : Z
        RETURN
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1
      public <init>()V
        NEW java/lang/IllegalStateException
        DUP
        LDC "Class test.pages.Index has been transformed and may not be directly instantiated."
        INVOKESPECIAL java/lang/IllegalStateException.<init> (Ljava/lang/String;)V
        ATHROW
        MAXSTACK = 0
        MAXLOCALS = 0

      // access flags 0x1
      public <init>(Lorg/apache/tapestry5/internal/plastic/StaticContext;Lorg/apache/tapestry5/plastic/InstanceContext;)V
        ALOAD 0
        ALOAD 1
        ALOAD 2
        INVOKESPECIAL test/base/pages/other/Parent.<init> (Lorg/apache/tapestry5/internal/plastic/StaticContext;Lorg/apache/tapestry5/plastic/InstanceContext;)V
        ALOAD 0
        ALOAD 1
        ICONST_2
        INVOKEVIRTUAL org/apache/tapestry5/internal/plastic/StaticContext.get (I)Ljava/lang/Object;
        CHECKCAST org/apache/tapestry5/plastic/ComputedValue
        ALOAD 2
        INVOKEINTERFACE org/apache/tapestry5/plastic/ComputedValue.get (Lorg/apache/tapestry5/plastic/InstanceContext;)Ljava/lang/Object;
        CHECKCAST org/apache/tapestry5/plastic/FieldConduit
        PUTFIELD test/pages/Index.result1_FieldConduit : Lorg/apache/tapestry5/plastic/FieldConduit;
        ALOAD 0
        ALOAD 2
        PUTFIELD test/pages/Index.instanceContext : Lorg/apache/tapestry5/plastic/InstanceContext;
        ALOAD 0
        ALOAD 1
        ICONST_3
        INVOKEVIRTUAL org/apache/tapestry5/internal/plastic/StaticContext.get (I)Ljava/lang/Object;
        CHECKCAST org/apache/tapestry5/plastic/ComputedValue
        ALOAD 2
        INVOKEINTERFACE org/apache/tapestry5/plastic/ComputedValue.get (Lorg/apache/tapestry5/plastic/InstanceContext;)Ljava/lang/Object;
        CHECKCAST org/apache/tapestry5/plastic/FieldConduit
        PUTFIELD test/pages/Index.result2_FieldConduit : Lorg/apache/tapestry5/plastic/FieldConduit;
        ALOAD 0
        ALOAD 1
        ICONST_4
        INVOKEVIRTUAL org/apache/tapestry5/internal/plastic/StaticContext.get (I)Ljava/lang/Object;
        CHECKCAST org/apache/tapestry5/plastic/ComputedValue
        ALOAD 2
        INVOKEINTERFACE org/apache/tapestry5/plastic/ComputedValue.get (Lorg/apache/tapestry5/plastic/InstanceContext;)Ljava/lang/Object;
        CHECKCAST org/apache/tapestry5/plastic/FieldConduit
        PUTFIELD test/pages/Index.result3_FieldConduit : Lorg/apache/tapestry5/plastic/FieldConduit;
        ALOAD 0
        INVOKEVIRTUAL test/pages/Index.initializeInstance ()V
        RETURN
        MAXSTACK = 0
        MAXLOCALS = 0
    }

                
> Access to protected component fields does not always reflect in subclasses
> --------------------------------------------------------------------------
>
>                 Key: TAP5-1860
>                 URL: https://issues.apache.org/jira/browse/TAP5-1860
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.3.2
>            Reporter: Olaf Tomczak
>            Assignee: Howard M. Lewis Ship
>         Attachments: testapp.tgz
>
>
> There seems to be a problem with the new feature introduced in 5.3.2 - https://issues.apache.org/jira/browse/TAP5-1801
> When I create a protected field in by base page class, setting the field in a subclass' event handling method seems to have no effect.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira