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