6 Replies Latest reply on Jun 5, 2007 3:19 PM by hlship

    Anomalous VerifyError (related to inner classes?)

    hlship

      Getting VerifyErrors with Javassist 3.4.ga.

      Tapestry 5 does some very aggressive, very AOP like things using Javassist. 99% of the time, no problems. here I'm getting an anomalous VerifyError.

      java.lang.VerifyError
      (class: org/apache/tapestry/corelib/components/Grid, method: access$0 signature: (Lorg/apache/tapestry/corelib/components/Grid;)Lorg/apache/tapestry/grid/GridDataSource;) Unable to pop operand off an empty stack

      Stack trace

      * java.lang.Class.getDeclaredConstructors0(Native Method)
      * java.lang.Class.privateGetDeclaredConstructors(Class.java:2328)
      * java.lang.Class.getConstructors(Class.java:1446)
      * org.apache.tapestry.internal.services.ReflectiveInstantiator.findConstructor(ReflectiveInstantiator.java:65)
      * org.apache.tapestry.internal.services.ReflectiveInstantiator.(ReflectiveInstantiator.java:53)

      I modified my code to use CtClass.writeDebug() to capture the instrumented version of the class before it is instantiated. Here's the disassembled output:

      $ javap -c -classpath .:../classes/:~/.m2/repository/jboss/javassist/3.4.ga/javassist-3.4.ga.jar -private -verbose org.apache.tapestry.corelib.components.Grid Compiled from "Grid.java"
      public class org.apache.tapestry.corelib.components.Grid extends java.lang.Object implements org.apache.tapestry.grid.GridDataProvider,org.apache.tapestry.runtime.Component,org.apache.tapestry.runtime.RenderCommand
       SourceFile: "Grid.java"
       InnerClass:
       final #39; //class org/apache/tapestry/corelib/components/Grid$1
       RuntimeVisibleAnnotations: length = 0xA
       00 02 01 FFFFFFE5 00 00 01 FFFFFFE6 00 00
       minor version: 0
       major version: 49
       Constant pool:
      const #1 = Asciz org/apache/tapestry/corelib/components/Grid;
      const #2 = class #1; // org/apache/tapestry/corelib/components/Grid
      const #3 = Asciz java/lang/Object;
      const #4 = class #3; // java/lang/Object
      const #5 = Asciz org/apache/tapestry/grid/GridDataProvider;
      const #6 = class #5; // org/apache/tapestry/grid/GridDataProvider
      const #7 = Asciz org/apache/tapestry/runtime/Component;
      const #8 = class #7; // org/apache/tapestry/runtime/Component
      const #9 = Asciz org/apache/tapestry/runtime/RenderCommand;
      const #10 = class #9; // org/apache/tapestry/runtime/RenderCommand
      const #11 = Asciz <init>;
      const #12 = Asciz ()V;
      const #13 = Asciz Code;
      const #14 = class #3; // java/lang/Object
      const #15 = NameAndType #11:#12;// "<init>":()V
      const #16 = Method #14.#15; // java/lang/Object."<init>":()V
      const #17 = Asciz LineNumberTable;
      const #18 = Asciz LocalVariableTable;
      const #19 = Asciz this;
      const #20 = Asciz Lorg/apache/tapestry/corelib/components/Grid;;
      const #21 = Asciz defaultModel;
      const #22 = Asciz ()Lorg/apache/tapestry/Binding;;
      const #23 = class #1; // org/apache/tapestry/corelib/components/Grid
      const #24 = Asciz _resources;
      const #25 = Asciz Lorg/apache/tapestry/ComponentResources;;
      const #26 = NameAndType #24:#25;// _resources:Lorg/apache/tapestry/ComponentResources;
      const #27 = Field #23.#26; // org/apache/tapestry/corelib/components/Grid._resources:Lorg/apache/tapestry/ComponentResources;
      const #28 = Asciz org/apache/tapestry/ComponentResources;
      const #29 = class #28; // org/apache/tapestry/ComponentResources
      const #30 = Asciz getContainerResources;
      const #31 = Asciz ()Lorg/apache/tapestry/ComponentResources;;
      const #32 = NameAndType #30:#31;// getContainerResources:()Lorg/apache/tapestry/ComponentResources;
      const #33 = InterfaceMethod #29.#32; // org/apache/tapestry/ComponentResources.getContainerResources:()Lorg/apache/tapestry/ComponentResources;
      const #34 = Asciz _modelSource;
      const #35 = Asciz Lorg/apache/tapestry/services/GridDataModelSource;;
      const #36 = NameAndType #34:#35;// _modelSource:Lorg/apache/tapestry/services/GridDataModelSource;
      const #37 = Field #23.#36; // org/apache/tapestry/corelib/components/Grid._modelSource:Lorg/apache/tapestry/services/GridDataModelSource;
      const #38 = Asciz org/apache/tapestry/corelib/components/Grid$1;
      const #39 = class #38; // org/apache/tapestry/corelib/components/Grid$1
      const #40 = Asciz (Lorg/apache/tapestry/corelib/components/Grid;Lorg/apache/tapestry/services/GridDataModelSource;Lorg/apache/tapestry/ComponentResources;)V;
      const #41 = NameAndType #11:#40;// "<init>":(Lorg/apache/tapestry/corelib/components/Grid;Lorg/apache/tapestry/services/GridDataModelSource;Lorg/apache/tapestry/ComponentResources;)V
      const #42 = Method #39.#41; // org/apache/tapestry/corelib/components/Grid$1."<init>":(Lorg/apache/tapestry/corelib/components/Grid;Lorg/apache/tapestry/services/GridDataModelSource;Lorg/apache/tapestry/ComponentResources;)V
      const #43 = Asciz containerResource;
      const #44 = Asciz modelSource;
      const #45 = Asciz setupRender;
      const #46 = Asciz ()Ljava/lang/Object;;
      const #47 = Asciz _$read_parameter_source;
      const #48 = Asciz ()Lorg/apache/tapestry/grid/GridDataSource;;
      const #49 = NameAndType #47:#48;// _$read_parameter_source:()Lorg/apache/tapestry/grid/GridDataSource;
      const #50 = Method #23.#49; // org/apache/tapestry/corelib/components/Grid._$read_parameter_source:()Lorg/apache/tapestry/grid/GridDataSource;
      const #51 = Asciz org/apache/tapestry/grid/GridDataSource;
      const #52 = class #51; // org/apache/tapestry/grid/GridDataSource
      const #53 = Asciz getAvailableRows;
      const #54 = Asciz ()I;
      const #55 = NameAndType #53:#54;// getAvailableRows:()I
      const #56 = InterfaceMethod #52.#55; // org/apache/tapestry/grid/GridDataSource.getAvailableRows:()I
      const #57 = Asciz _$read_parameter_empty;
      const #58 = Asciz ()Lorg/apache/tapestry/Block;;
      const #59 = NameAndType #57:#58;// _$read_parameter_empty:()Lorg/apache/tapestry/Block;
      const #60 = Method #23.#59; // org/apache/tapestry/corelib/components/Grid._$read_parameter_empty:()Lorg/apache/tapestry/Block;
      const #61 = Asciz beginRender;
      const #62 = NameAndType #47:#48;// _$read_parameter_source:()Lorg/apache/tapestry/grid/GridDataSource;
      const #63 = Method #23.#62; // org/apache/tapestry/corelib/components/Grid._$read_parameter_source:()Lorg/apache/tapestry/grid/GridDataSource;
      const #64 = NameAndType #53:#54;// getAvailableRows:()I
      const #65 = InterfaceMethod #52.#64; // org/apache/tapestry/grid/GridDataSource.getAvailableRows:()I
      const #66 = Asciz java/lang/Boolean;
      const #67 = class #66; // java/lang/Boolean
      const #68 = Asciz valueOf;
      const #69 = Asciz (Z)Ljava/lang/Boolean;;
      const #70 = NameAndType #68:#69;// valueOf:(Z)Ljava/lang/Boolean;
      const #71 = Method #67.#70; // java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
      const #72 = Asciz getDataModel;
      const #73 = Asciz ()Lorg/apache/tapestry/grid/GridDataModel;;
      const #74 = Asciz _$read_parameter_model;
      const #75 = NameAndType #74:#73;// _$read_parameter_model:()Lorg/apache/tapestry/grid/GridDataModel;
      const #76 = Method #23.#75; // org/apache/tapestry/corelib/components/Grid._$read_parameter_model:()Lorg/apache/tapestry/grid/GridDataModel;
      const #77 = Asciz access$0;
      const #78 = Asciz (Lorg/apache/tapestry/corelib/components/Grid;)Lorg/apache/tapestry/grid/GridDataSource;;
      const #79 = NameAndType #47:#48;// _$read_parameter_source:()Lorg/apache/tapestry/grid/GridDataSource;
      const #80 = Method #23.#79; // org/apache/tapestry/corelib/components/Grid._$read_parameter_source:()Lorg/apache/tapestry/grid/GridDataSource;
      const #81 = Asciz postRenderCleanup;
      const #82 = Asciz _$empty_invariant;
      const #83 = Asciz Z;
      const #84 = NameAndType #82:#83;// _$empty_invariant:Z
      const #85 = Field #23.#84; // org/apache/tapestry/corelib/components/Grid._$empty_invariant:Z
      const #86 = Asciz _$empty_default;
      const #87 = Asciz Lorg/apache/tapestry/Block;;
      const #88 = NameAndType #86:#87;// _$empty_default:Lorg/apache/tapestry/Block;
      const #89 = Field #23.#88; // org/apache/tapestry/corelib/components/Grid._$empty_default:Lorg/apache/tapestry/Block;
      const #90 = Asciz _empty;
      const #91 = NameAndType #90:#87;// _empty:Lorg/apache/tapestry/Block;
      const #92 = Field #23.#91; // org/apache/tapestry/corelib/components/Grid._empty:Lorg/apache/tapestry/Block;
      const #93 = Asciz _$empty_cached;
      const #94 = NameAndType #93:#83;// _$empty_cached:Z
      const #95 = Field #23.#94; // org/apache/tapestry/corelib/components/Grid._$empty_cached:Z
      const #96 = Asciz _$model_invariant;
      const #97 = NameAndType #96:#83;// _$model_invariant:Z
      const #98 = Field #23.#97; // org/apache/tapestry/corelib/components/Grid._$model_invariant:Z
      const #99 = Asciz _$model_default;
      const #100 = Asciz Lorg/apache/tapestry/grid/GridDataModel;;
      const #101 = NameAndType #99:#100;// _$model_default:Lorg/apache/tapestry/grid/GridDataModel;
      const #102 = Field #23.#101; // org/apache/tapestry/corelib/components/Grid._$model_default:Lorg/apache/tapestry/grid/GridDataModel;
      const #103 = Asciz _model;
      const #104 = NameAndType #103:#100;// _model:Lorg/apache/tapestry/grid/GridDataModel;
      const #105 = Field #23.#104; // org/apache/tapestry/corelib/components/Grid._model:Lorg/apache/tapestry/grid/GridDataModel;
      const #106 = Asciz _$model_cached;
      const #107 = NameAndType #106:#83;// _$model_cached:Z
      const #108 = Field #23.#107; // org/apache/tapestry/corelib/components/Grid._$model_cached:Z
      const #109 = Asciz _$source_invariant;
      const #110 = NameAndType #109:#83;// _$source_invariant:Z
      const #111 = Field #23.#110; // org/apache/tapestry/corelib/components/Grid._$source_invariant:Z
      const #112 = Asciz _$source_default;
      const #113 = Asciz Lorg/apache/tapestry/grid/GridDataSource;;
      const #114 = NameAndType #112:#113;// _$source_default:Lorg/apache/tapestry/grid/GridDataSource;
      const #115 = Field #23.#114; // org/apache/tapestry/corelib/components/Grid._$source_default:Lorg/apache/tapestry/grid/GridDataSource;
      const #116 = Asciz _source;
      const #117 = NameAndType #116:#113;// _source:Lorg/apache/tapestry/grid/GridDataSource;
      const #118 = Field #23.#117; // org/apache/tapestry/corelib/components/Grid._source:Lorg/apache/tapestry/grid/GridDataSource;
      const #119 = Asciz _$source_cached;
      const #120 = NameAndType #119:#83;// _$source_cached:Z
      const #121 = Field #23.#120; // org/apache/tapestry/corelib/components/Grid._$source_cached:Z
      const #122 = Asciz beforeRenderTemplate;
      const #123 = Asciz (Lorg/apache/tapestry/MarkupWriter;Lorg/apache/tapestry/runtime/Event;)V;
      const #124 = Asciz afterRenderTemplate;
      const #125 = Asciz beforeRenderBody;
      const #126 = Asciz afterRenderBody;
      const #127 = Asciz afterRender;
      const #128 = Asciz cleanupRender;
      const #129 = Asciz handleComponentEvent;
      const #130 = Asciz (Lorg/apache/tapestry/runtime/ComponentEvent;)Z;
      const #131 = Asciz containingPageDidLoad;
      const #132 = Asciz _$resources;
      const #133 = Asciz Lorg/apache/tapestry/internal/InternalComponentResources;;
      const #134 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #135 = Field #23.#134; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #136 = NameAndType #24:#25;// _resources:Lorg/apache/tapestry/ComponentResources;
      const #137 = Field #23.#136; // org/apache/tapestry/corelib/components/Grid._resources:Lorg/apache/tapestry/ComponentResources;
      const #138 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #139 = Field #23.#138; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #140 = Asciz empty;
      const #141 = String #140; // empty
      const #142 = Asciz isBound;
      const #143 = Asciz (Ljava/lang/String;)Z;
      const #144 = NameAndType #142:#143;// isBound:(Ljava/lang/String;)Z
      const #145 = InterfaceMethod #29.#144; // org/apache/tapestry/ComponentResources.isBound:(Ljava/lang/String;)Z
      const #146 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #147 = Field #23.#146; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #148 = String #140; // empty
      const #149 = Asciz _$bindingSource;
      const #150 = Asciz Lorg/apache/tapestry/services/BindingSource;;
      const #151 = NameAndType #149:#150;// _$bindingSource:Lorg/apache/tapestry/services/BindingSource;
      const #152 = Field #23.#151; // org/apache/tapestry/corelib/components/Grid._$bindingSource:Lorg/apache/tapestry/services/BindingSource;
      const #153 = Asciz default empty;
      const #154 = String #153; // default empty
      const #155 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #156 = Field #23.#155; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #157 = Asciz block:empty;
      const #158 = String #157; // block:empty
      const #159 = Asciz org/apache/tapestry/services/BindingSource;
      const #160 = class #159; // org/apache/tapestry/services/BindingSource
      const #161 = Asciz newBinding;
      const #162 = Asciz (Ljava/lang/String;Lorg/apache/tapestry/ComponentResources;Ljava/lang/String;)Lorg/apache/tapestry/Binding;;
      const #163 = NameAndType #161:#162;// newBinding:(Ljava/lang/String;Lorg/apache/tapestry/ComponentResources;Ljava/lang/String;)Lorg/apache/tapestry/Binding;
      const #164 = InterfaceMethod #160.#163; // org/apache/tapestry/services/BindingSource.newBinding:(Ljava/lang/String;Lorg/apache/tapestry/ComponentResources;Ljava/lang/String;)Lorg/apache/tapestry/Binding;
      const #165 = Asciz org/apache/tapestry/internal/InternalComponentResourcesCommon;
      const #166 = class #165; // org/apache/tapestry/internal/InternalComponentResourcesCommon
      const #167 = Asciz bindParameter;
      const #168 = Asciz (Ljava/lang/String;Lorg/apache/tapestry/Binding;)V;
      const #169 = NameAndType #167:#168;// bindParameter:(Ljava/lang/String;Lorg/apache/tapestry/Binding;)V
      const #170 = InterfaceMethod #166.#169; // org/apache/tapestry/internal/InternalComponentResourcesCommon.bindParameter:(Ljava/lang/String;Lorg/apache/tapestry/Binding;)V
      const #171 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #172 = Field #23.#171; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #173 = String #140; // empty
      const #174 = Asciz org/apache/tapestry/internal/InternalComponentResources;
      const #175 = class #174; // org/apache/tapestry/internal/InternalComponentResources
      const #176 = Asciz isInvariant;
      const #177 = NameAndType #176:#143;// isInvariant:(Ljava/lang/String;)Z
      const #178 = InterfaceMethod #175.#177; // org/apache/tapestry/internal/InternalComponentResources.isInvariant:(Ljava/lang/String;)Z
      const #179 = NameAndType #82:#83;// _$empty_invariant:Z
      const #180 = Field #23.#179; // org/apache/tapestry/corelib/components/Grid._$empty_invariant:Z
      const #181 = NameAndType #90:#87;// _empty:Lorg/apache/tapestry/Block;
      const #182 = Field #23.#181; // org/apache/tapestry/corelib/components/Grid._empty:Lorg/apache/tapestry/Block;
      const #183 = NameAndType #86:#87;// _$empty_default:Lorg/apache/tapestry/Block;
      const #184 = Field #23.#183; // org/apache/tapestry/corelib/components/Grid._$empty_default:Lorg/apache/tapestry/Block;
      const #185 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #186 = Field #23.#185; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #187 = Asciz model;
      const #188 = String #187; // model
      const #189 = NameAndType #142:#143;// isBound:(Ljava/lang/String;)Z
      const #190 = InterfaceMethod #29.#189; // org/apache/tapestry/ComponentResources.isBound:(Ljava/lang/String;)Z
      const #191 = String #187; // model
      const #192 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #193 = Field #23.#192; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #194 = NameAndType #21:#22;// defaultModel:()Lorg/apache/tapestry/Binding;
      const #195 = Method #23.#194; // org/apache/tapestry/corelib/components/Grid.defaultModel:()Lorg/apache/tapestry/Binding;
      const #196 = Asciz org/apache/tapestry/internal/services/ParameterWorker;
      const #197 = class #196; // org/apache/tapestry/internal/services/ParameterWorker
      const #198 = Asciz bind;
      const #199 = Asciz (Ljava/lang/String;Lorg/apache/tapestry/internal/InternalComponentResources;Ljava/lang/Object;)V;
      const #200 = NameAndType #198:#199;// bind:(Ljava/lang/String;Lorg/apache/tapestry/internal/InternalComponentResources;Ljava/lang/Object;)V
      const #201 = Method #197.#200; // org/apache/tapestry/internal/services/ParameterWorker.bind:(Ljava/lang/String;Lorg/apache/tapestry/internal/InternalComponentResources;Ljava/lang/Object;)V
      const #202 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #203 = Field #23.#202; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #204 = String #187; // model
      const #205 = NameAndType #176:#143;// isInvariant:(Ljava/lang/String;)Z
      const #206 = InterfaceMethod #175.#205; // org/apache/tapestry/internal/InternalComponentResources.isInvariant:(Ljava/lang/String;)Z
      const #207 = NameAndType #96:#83;// _$model_invariant:Z
      const #208 = Field #23.#207; // org/apache/tapestry/corelib/components/Grid._$model_invariant:Z
      const #209 = NameAndType #103:#100;// _model:Lorg/apache/tapestry/grid/GridDataModel;
      const #210 = Field #23.#209; // org/apache/tapestry/corelib/components/Grid._model:Lorg/apache/tapestry/grid/GridDataModel;
      const #211 = NameAndType #99:#100;// _$model_default:Lorg/apache/tapestry/grid/GridDataModel;
      const #212 = Field #23.#211; // org/apache/tapestry/corelib/components/Grid._$model_default:Lorg/apache/tapestry/grid/GridDataModel;
      const #213 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #214 = Field #23.#213; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #215 = Asciz source;
      const #216 = String #215; // source
      const #217 = NameAndType #176:#143;// isInvariant:(Ljava/lang/String;)Z
      const #218 = InterfaceMethod #175.#217; // org/apache/tapestry/internal/InternalComponentResources.isInvariant:(Ljava/lang/String;)Z
      const #219 = NameAndType #109:#83;// _$source_invariant:Z
      const #220 = Field #23.#219; // org/apache/tapestry/corelib/components/Grid._$source_invariant:Z
      const #221 = NameAndType #116:#113;// _source:Lorg/apache/tapestry/grid/GridDataSource;
      const #222 = Field #23.#221; // org/apache/tapestry/corelib/components/Grid._source:Lorg/apache/tapestry/grid/GridDataSource;
      const #223 = NameAndType #112:#113;// _$source_default:Lorg/apache/tapestry/grid/GridDataSource;
      const #224 = Field #23.#223; // org/apache/tapestry/corelib/components/Grid._$source_default:Lorg/apache/tapestry/grid/GridDataSource;
      const #225 = Asciz containingPageDidDetach;
      const #226 = Asciz containingPageDidAttach;
      const #227 = Asciz getComponentResources;
      const #228 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #229 = Field #23.#228; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #230 = Asciz _$write_modelSource;
      const #231 = Asciz (Lorg/apache/tapestry/services/GridDataModelSource;)V;
      const #232 = Asciz java/lang/RuntimeException;
      const #233 = class #232; // java/lang/RuntimeException
      const #234 = Asciz Field org.apache.tapestry.corelib.components.Grid._modelSource is read-only.;
      const #235 = String #234; // Field org.apache.tapestry.corelib.components.Grid._modelSource is read-only.
      const #236 = Asciz (Ljava/lang/String;)V;
      const #237 = NameAndType #11:#236;// "<init>":(Ljava/lang/String;)V
      const #238 = Method #233.#237; // java/lang/RuntimeException."<init>":(Ljava/lang/String;)V
      const #239 = Asciz _$write_resources;
      const #240 = Asciz (Lorg/apache/tapestry/ComponentResources;)V;
      const #241 = Asciz Field org.apache.tapestry.corelib.components.Grid._resources is read-only.;
      const #242 = String #241; // Field org.apache.tapestry.corelib.components.Grid._resources is read-only.
      const #243 = NameAndType #11:#236;// "<init>":(Ljava/lang/String;)V
      const #244 = Method #233.#243; // java/lang/RuntimeException."<init>":(Ljava/lang/String;)V
      const #245 = Asciz render;
      const #246 = Asciz (Lorg/apache/tapestry/MarkupWriter;Lorg/apache/tapestry/runtime/RenderQueue;)V;
      const #247 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #248 = Field #23.#247; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #249 = Asciz queueRender;
      const #250 = Asciz (Lorg/apache/tapestry/runtime/RenderQueue;)V;
      const #251 = NameAndType #249:#250;// queueRender:(Lorg/apache/tapestry/runtime/RenderQueue;)V
      const #252 = InterfaceMethod #166.#251; // org/apache/tapestry/internal/InternalComponentResourcesCommon.queueRender:(Lorg/apache/tapestry/runtime/RenderQueue;)V
      const #253 = NameAndType #93:#83;// _$empty_cached:Z
      const #254 = Field #23.#253; // org/apache/tapestry/corelib/components/Grid._$empty_cached:Z
      const #255 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #256 = Field #23.#255; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #257 = Asciz isLoaded;
      const #258 = Asciz ()Z;
      const #259 = NameAndType #257:#258;// isLoaded:()Z
      const #260 = InterfaceMethod #166.#259; // org/apache/tapestry/internal/InternalComponentResourcesCommon.isLoaded:()Z
      const #261 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #262 = Field #23.#261; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #263 = String #140; // empty
      const #264 = NameAndType #142:#143;// isBound:(Ljava/lang/String;)Z
      const #265 = InterfaceMethod #29.#264; // org/apache/tapestry/ComponentResources.isBound:(Ljava/lang/String;)Z
      const #266 = NameAndType #90:#87;// _empty:Lorg/apache/tapestry/Block;
      const #267 = Field #23.#266; // org/apache/tapestry/corelib/components/Grid._empty:Lorg/apache/tapestry/Block;
      const #268 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #269 = Field #23.#268; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #270 = String #140; // empty
      const #271 = String #87; // Lorg/apache/tapestry/Block;
      const #272 = Asciz javassist/runtime/Desc;
      const #273 = class #272; // javassist/runtime/Desc
      const #274 = Asciz getType;
      const #275 = Asciz (Ljava/lang/String;)Ljava/lang/Class;;
      const #276 = NameAndType #274:#275;// getType:(Ljava/lang/String;)Ljava/lang/Class;
      const #277 = Method #273.#276; // javassist/runtime/Desc.getType:(Ljava/lang/String;)Ljava/lang/Class;
      const #278 = Asciz readParameter;
      const #279 = Asciz (Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;;
      const #280 = NameAndType #278:#279;// readParameter:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
      const #281 = InterfaceMethod #175.#280; // org/apache/tapestry/internal/InternalComponentResources.readParameter:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
      const #282 = Asciz org/apache/tapestry/Block;
      const #283 = class #282; // org/apache/tapestry/Block
      const #284 = NameAndType #82:#83;// _$empty_invariant:Z
      const #285 = Field #23.#284; // org/apache/tapestry/corelib/components/Grid._$empty_invariant:Z
      const #286 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #287 = Field #23.#286; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #288 = Asciz org/apache/tapestry/ComponentResourcesCommon;
      const #289 = class #288; // org/apache/tapestry/ComponentResourcesCommon
      const #290 = Asciz isRendering;
      const #291 = NameAndType #290:#258;// isRendering:()Z
      const #292 = InterfaceMethod #289.#291; // org/apache/tapestry/ComponentResourcesCommon.isRendering:()Z
      const #293 = NameAndType #90:#87;// _empty:Lorg/apache/tapestry/Block;
      const #294 = Field #23.#293; // org/apache/tapestry/corelib/components/Grid._empty:Lorg/apache/tapestry/Block;
      const #295 = NameAndType #93:#83;// _$empty_cached:Z
      const #296 = Field #23.#295; // org/apache/tapestry/corelib/components/Grid._$empty_cached:Z
      const #297 = Asciz _$update_parameter_empty;
      const #298 = Asciz (Lorg/apache/tapestry/Block;)V;
      const #299 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #300 = Field #23.#299; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #301 = NameAndType #257:#258;// isLoaded:()Z
      const #302 = InterfaceMethod #166.#301; // org/apache/tapestry/internal/InternalComponentResourcesCommon.isLoaded:()Z
      const #303 = NameAndType #90:#87;// _empty:Lorg/apache/tapestry/Block;
      const #304 = Field #23.#303; // org/apache/tapestry/corelib/components/Grid._empty:Lorg/apache/tapestry/Block;
      const #305 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #306 = Field #23.#305; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #307 = String #140; // empty
      const #308 = NameAndType #142:#143;// isBound:(Ljava/lang/String;)Z
      const #309 = InterfaceMethod #29.#308; // org/apache/tapestry/ComponentResources.isBound:(Ljava/lang/String;)Z
      const #310 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #311 = Field #23.#310; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #312 = String #140; // empty
      const #313 = Asciz writeParameter;
      const #314 = Asciz (Ljava/lang/String;Ljava/lang/Object;)V;
      const #315 = NameAndType #313:#314;// writeParameter:(Ljava/lang/String;Ljava/lang/Object;)V
      const #316 = InterfaceMethod #175.#315; // org/apache/tapestry/internal/InternalComponentResources.writeParameter:(Ljava/lang/String;Ljava/lang/Object;)V
      const #317 = NameAndType #90:#87;// _empty:Lorg/apache/tapestry/Block;
      const #318 = Field #23.#317; // org/apache/tapestry/corelib/components/Grid._empty:Lorg/apache/tapestry/Block;
      const #319 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #320 = Field #23.#319; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #321 = NameAndType #290:#258;// isRendering:()Z
      const #322 = InterfaceMethod #289.#321; // org/apache/tapestry/ComponentResourcesCommon.isRendering:()Z
      const #323 = NameAndType #93:#83;// _$empty_cached:Z
      const #324 = Field #23.#323; // org/apache/tapestry/corelib/components/Grid._$empty_cached:Z
      const #325 = NameAndType #106:#83;// _$model_cached:Z
      const #326 = Field #23.#325; // org/apache/tapestry/corelib/components/Grid._$model_cached:Z
      const #327 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #328 = Field #23.#327; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #329 = NameAndType #257:#258;// isLoaded:()Z
      const #330 = InterfaceMethod #166.#329; // org/apache/tapestry/internal/InternalComponentResourcesCommon.isLoaded:()Z
      const #331 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #332 = Field #23.#331; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #333 = String #187; // model
      const #334 = NameAndType #142:#143;// isBound:(Ljava/lang/String;)Z
      const #335 = InterfaceMethod #29.#334; // org/apache/tapestry/ComponentResources.isBound:(Ljava/lang/String;)Z
      const #336 = NameAndType #103:#100;// _model:Lorg/apache/tapestry/grid/GridDataModel;
      const #337 = Field #23.#336; // org/apache/tapestry/corelib/components/Grid._model:Lorg/apache/tapestry/grid/GridDataModel;
      const #338 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #339 = Field #23.#338; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #340 = String #187; // model
      const #341 = String #100; // Lorg/apache/tapestry/grid/GridDataModel;
      const #342 = NameAndType #274:#275;// getType:(Ljava/lang/String;)Ljava/lang/Class;
      const #343 = Method #273.#342; // javassist/runtime/Desc.getType:(Ljava/lang/String;)Ljava/lang/Class;
      const #344 = NameAndType #278:#279;// readParameter:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
      const #345 = InterfaceMethod #175.#344; // org/apache/tapestry/internal/InternalComponentResources.readParameter:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
      const #346 = Asciz org/apache/tapestry/grid/GridDataModel;
      const #347 = class #346; // org/apache/tapestry/grid/GridDataModel
      const #348 = NameAndType #96:#83;// _$model_invariant:Z
      const #349 = Field #23.#348; // org/apache/tapestry/corelib/components/Grid._$model_invariant:Z
      const #350 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #351 = Field #23.#350; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #352 = NameAndType #290:#258;// isRendering:()Z
      const #353 = InterfaceMethod #289.#352; // org/apache/tapestry/ComponentResourcesCommon.isRendering:()Z
      const #354 = NameAndType #103:#100;// _model:Lorg/apache/tapestry/grid/GridDataModel;
      const #355 = Field #23.#354; // org/apache/tapestry/corelib/components/Grid._model:Lorg/apache/tapestry/grid/GridDataModel;
      const #356 = NameAndType #106:#83;// _$model_cached:Z
      const #357 = Field #23.#356; // org/apache/tapestry/corelib/components/Grid._$model_cached:Z
      const #358 = Asciz _$update_parameter_model;
      const #359 = Asciz (Lorg/apache/tapestry/grid/GridDataModel;)V;
      const #360 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #361 = Field #23.#360; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #362 = NameAndType #257:#258;// isLoaded:()Z
      const #363 = InterfaceMethod #166.#362; // org/apache/tapestry/internal/InternalComponentResourcesCommon.isLoaded:()Z
      const #364 = NameAndType #103:#100;// _model:Lorg/apache/tapestry/grid/GridDataModel;
      const #365 = Field #23.#364; // org/apache/tapestry/corelib/components/Grid._model:Lorg/apache/tapestry/grid/GridDataModel;
      const #366 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #367 = Field #23.#366; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #368 = String #187; // model
      const #369 = NameAndType #142:#143;// isBound:(Ljava/lang/String;)Z
      const #370 = InterfaceMethod #29.#369; // org/apache/tapestry/ComponentResources.isBound:(Ljava/lang/String;)Z
      const #371 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #372 = Field #23.#371; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #373 = String #187; // model
      const #374 = NameAndType #313:#314;// writeParameter:(Ljava/lang/String;Ljava/lang/Object;)V
      const #375 = InterfaceMethod #175.#374; // org/apache/tapestry/internal/InternalComponentResources.writeParameter:(Ljava/lang/String;Ljava/lang/Object;)V
      const #376 = NameAndType #103:#100;// _model:Lorg/apache/tapestry/grid/GridDataModel;
      const #377 = Field #23.#376; // org/apache/tapestry/corelib/components/Grid._model:Lorg/apache/tapestry/grid/GridDataModel;
      const #378 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #379 = Field #23.#378; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #380 = NameAndType #290:#258;// isRendering:()Z
      const #381 = InterfaceMethod #289.#380; // org/apache/tapestry/ComponentResourcesCommon.isRendering:()Z
      const #382 = NameAndType #106:#83;// _$model_cached:Z
      const #383 = Field #23.#382; // org/apache/tapestry/corelib/components/Grid._$model_cached:Z
      const #384 = NameAndType #119:#83;// _$source_cached:Z
      const #385 = Field #23.#384; // org/apache/tapestry/corelib/components/Grid._$source_cached:Z
      const #386 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #387 = Field #23.#386; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #388 = NameAndType #257:#258;// isLoaded:()Z
      const #389 = InterfaceMethod #166.#388; // org/apache/tapestry/internal/InternalComponentResourcesCommon.isLoaded:()Z
      const #390 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #391 = Field #23.#390; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #392 = String #215; // source
      const #393 = NameAndType #142:#143;// isBound:(Ljava/lang/String;)Z
      const #394 = InterfaceMethod #29.#393; // org/apache/tapestry/ComponentResources.isBound:(Ljava/lang/String;)Z
      const #395 = NameAndType #116:#113;// _source:Lorg/apache/tapestry/grid/GridDataSource;
      const #396 = Field #23.#395; // org/apache/tapestry/corelib/components/Grid._source:Lorg/apache/tapestry/grid/GridDataSource;
      const #397 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #398 = Field #23.#397; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #399 = String #215; // source
      const #400 = String #113; // Lorg/apache/tapestry/grid/GridDataSource;
      const #401 = NameAndType #274:#275;// getType:(Ljava/lang/String;)Ljava/lang/Class;
      const #402 = Method #273.#401; // javassist/runtime/Desc.getType:(Ljava/lang/String;)Ljava/lang/Class;
      const #403 = NameAndType #278:#279;// readParameter:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
      const #404 = InterfaceMethod #175.#403; // org/apache/tapestry/internal/InternalComponentResources.readParameter:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
      const #405 = NameAndType #109:#83;// _$source_invariant:Z
      const #406 = Field #23.#405; // org/apache/tapestry/corelib/components/Grid._$source_invariant:Z
      const #407 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #408 = Field #23.#407; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #409 = NameAndType #290:#258;// isRendering:()Z
      const #410 = InterfaceMethod #289.#409; // org/apache/tapestry/ComponentResourcesCommon.isRendering:()Z
      const #411 = NameAndType #116:#113;// _source:Lorg/apache/tapestry/grid/GridDataSource;
      const #412 = Field #23.#411; // org/apache/tapestry/corelib/components/Grid._source:Lorg/apache/tapestry/grid/GridDataSource;
      const #413 = NameAndType #119:#83;// _$source_cached:Z
      const #414 = Field #23.#413; // org/apache/tapestry/corelib/components/Grid._$source_cached:Z
      const #415 = Asciz _$update_parameter_source;
      const #416 = Asciz (Lorg/apache/tapestry/grid/GridDataSource;)V;
      const #417 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #418 = Field #23.#417; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #419 = NameAndType #257:#258;// isLoaded:()Z
      const #420 = InterfaceMethod #166.#419; // org/apache/tapestry/internal/InternalComponentResourcesCommon.isLoaded:()Z
      const #421 = NameAndType #116:#113;// _source:Lorg/apache/tapestry/grid/GridDataSource;
      const #422 = Field #23.#421; // org/apache/tapestry/corelib/components/Grid._source:Lorg/apache/tapestry/grid/GridDataSource;
      const #423 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #424 = Field #23.#423; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #425 = String #215; // source
      const #426 = NameAndType #142:#143;// isBound:(Ljava/lang/String;)Z
      const #427 = InterfaceMethod #29.#426; // org/apache/tapestry/ComponentResources.isBound:(Ljava/lang/String;)Z
      const #428 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #429 = Field #23.#428; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #430 = String #215; // source
      const #431 = NameAndType #313:#314;// writeParameter:(Ljava/lang/String;Ljava/lang/Object;)V
      const #432 = InterfaceMethod #175.#431; // org/apache/tapestry/internal/InternalComponentResources.writeParameter:(Ljava/lang/String;Ljava/lang/Object;)V
      const #433 = NameAndType #116:#113;// _source:Lorg/apache/tapestry/grid/GridDataSource;
      const #434 = Field #23.#433; // org/apache/tapestry/corelib/components/Grid._source:Lorg/apache/tapestry/grid/GridDataSource;
      const #435 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #436 = Field #23.#435; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #437 = NameAndType #290:#258;// isRendering:()Z
      const #438 = InterfaceMethod #289.#437; // org/apache/tapestry/ComponentResourcesCommon.isRendering:()Z
      const #439 = NameAndType #119:#83;// _$source_cached:Z
      const #440 = Field #23.#439; // org/apache/tapestry/corelib/components/Grid._$source_cached:Z
      const #441 = Asciz org.apache.tapestry.corelib.components.Grid.setupRender();
      const #442 = String #441; // org.apache.tapestry.corelib.components.Grid.setupRender()
      const #443 = Asciz org/apache/tapestry/runtime/Event;
      const #444 = class #443; // org/apache/tapestry/runtime/Event
      const #445 = Asciz setSource;
      const #446 = Asciz (Lorg/apache/tapestry/runtime/Component;Ljava/lang/String;)V;
      const #447 = NameAndType #445:#446;// setSource:(Lorg/apache/tapestry/runtime/Component;Ljava/lang/String;)V
      const #448 = InterfaceMethod #444.#447; // org/apache/tapestry/runtime/Event.setSource:(Lorg/apache/tapestry/runtime/Component;Ljava/lang/String;)V
      const #449 = NameAndType #45:#46;// setupRender:()Ljava/lang/Object;
      const #450 = Method #23.#449; // org/apache/tapestry/corelib/components/Grid.setupRender:()Ljava/lang/Object;
      const #451 = Asciz storeResult;
      const #452 = Asciz (Ljava/lang/Object;)Z;
      const #453 = NameAndType #451:#452;// storeResult:(Ljava/lang/Object;)Z
      const #454 = InterfaceMethod #444.#453; // org/apache/tapestry/runtime/Event.storeResult:(Ljava/lang/Object;)Z
      const #455 = Asciz org.apache.tapestry.corelib.components.Grid.beginRender();
      const #456 = String #455; // org.apache.tapestry.corelib.components.Grid.beginRender()
      const #457 = NameAndType #445:#446;// setSource:(Lorg/apache/tapestry/runtime/Component;Ljava/lang/String;)V
      const #458 = InterfaceMethod #444.#457; // org/apache/tapestry/runtime/Event.setSource:(Lorg/apache/tapestry/runtime/Component;Ljava/lang/String;)V
      const #459 = NameAndType #61:#46;// beginRender:()Ljava/lang/Object;
      const #460 = Method #23.#459; // org/apache/tapestry/corelib/components/Grid.beginRender:()Ljava/lang/Object;
      const #461 = NameAndType #451:#452;// storeResult:(Ljava/lang/Object;)Z
      const #462 = InterfaceMethod #444.#461; // org/apache/tapestry/runtime/Event.storeResult:(Ljava/lang/Object;)Z
      const #463 = Asciz initializer;
      const #464 = Asciz (Lorg/apache/tapestry/internal/InternalComponentResources;Lorg/apache/tapestry/services/GridDataModelSource;Lorg/apache/tapestry/services/BindingSource;)V;
      const #465 = NameAndType #11:#12;// "<init>":()V
      const #466 = Method #14.#465; // java/lang/Object."<init>":()V
      const #467 = NameAndType #132:#133;// _$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #468 = Field #23.#467; // org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
      const #469 = NameAndType #34:#35;// _modelSource:Lorg/apache/tapestry/services/GridDataModelSource;
      const #470 = Field #23.#469; // org/apache/tapestry/corelib/components/Grid._modelSource:Lorg/apache/tapestry/services/GridDataModelSource;
      const #471 = NameAndType #149:#150;// _$bindingSource:Lorg/apache/tapestry/services/BindingSource;
      const #472 = Field #23.#471; // org/apache/tapestry/corelib/components/Grid._$bindingSource:Lorg/apache/tapestry/services/BindingSource;
      const #473 = NameAndType #463:#12;// initializer:()V
      const #474 = Method #23.#473; // org/apache/tapestry/corelib/components/Grid.initializer:()V
      const #475 = Asciz Lorg/apache/tapestry/annotations/Parameter;;
      const #476 = Asciz required;
      const #477 = int 1;
      const #478 = Asciz RuntimeVisibleAnnotations;
      const #479 = Asciz value;
      const #480 = Asciz Lorg/apache/tapestry/annotations/Inject;;
      const #481 = Asciz infrastructure:GridDataModelSource;
      const #482 = Asciz SourceFile;
      const #483 = Asciz Grid.java;
      const #484 = Asciz InnerClasses;
      const #485 = Asciz Lorg/apache/tapestry/annotations/ComponentClass;;
      const #486 = Asciz Lorg/apache/tapestry/annotations/SupportsInformalParameters;;
      
      {
      private org.apache.tapestry.grid.GridDataSource _source;
       RuntimeVisibleAnnotations: length = 0xB
       00 01 01 FFFFFFDB 00 01 01 FFFFFFDC 5A 01 FFFFFFDD
      
      
      private org.apache.tapestry.grid.GridDataModel _model;
       RuntimeVisibleAnnotations: length = 0x6
       00 01 01 FFFFFFDB 00 00
      
      
      private org.apache.tapestry.Block _empty;
       RuntimeVisibleAnnotations: length = 0xB
       00 01 01 FFFFFFDB 00 01 01 FFFFFFDF 73 00 FFFFFF9D
      
      
      private org.apache.tapestry.ComponentResources _resources;
       RuntimeVisibleAnnotations: length = 0x6
       00 01 01 FFFFFFE0 00 00
      
      
      private org.apache.tapestry.services.GridDataModelSource _modelSource;
       RuntimeVisibleAnnotations: length = 0xB
       00 01 01 FFFFFFE0 00 01 01 FFFFFFDF 73 01 FFFFFFE1
      
      
      protected final org.apache.tapestry.internal.InternalComponentResources _$resources;
      
      
      private boolean _$empty_cached;
      
      
      private org.apache.tapestry.Block _$empty_default;
      
      
      private boolean _$empty_invariant;
      
      
      protected final org.apache.tapestry.services.BindingSource _$bindingSource;
      
      
      private boolean _$model_cached;
      
      
      private org.apache.tapestry.grid.GridDataModel _$model_default;
      
      
      private boolean _$model_invariant;
      
      
      private boolean _$source_cached;
      
      
      private org.apache.tapestry.grid.GridDataSource _$source_default;
      
      
      private boolean _$source_invariant;
      
      
      public org.apache.tapestry.corelib.components.Grid();
       Code:
       Stack=1, Locals=1, Args_size=1
       0: aload_0
       1: invokespecial #16; //Method java/lang/Object."<init>":()V
       4: return
       LineNumberTable:
       line 23: 0
       LocalVariableTable:
       Start Length Slot Name Signature
       0 5 0 this Lorg/apache/tapestry/corelib/components/Grid;
      
      org.apache.tapestry.Binding defaultModel();
       Code:
       Stack=5, Locals=3, Args_size=1
       0: aload_0
       1: getfield #27; //Field org/apache/tapestry/corelib/components/Grid._resources:Lorg/apache/tapestry/ComponentResources;
       4: invokeinterface #33, 1; //InterfaceMethod org/apache/tapestry/ComponentResources.getContainerResources:()Lorg/apache/tapestry/ComponentResources;
       9: astore_1
       10: aload_0
       11: getfield #37; //Field org/apache/tapestry/corelib/components/Grid._modelSource:Lorg/apache/tapestry/services/GridDataModelSource;
       14: astore_2
       15: new #39; //class org/apache/tapestry/corelib/components/Grid$1
       18: dup
       19: aload_0
       20: aload_2
       21: aload_1
       22: invokespecial #42; //Method org/apache/tapestry/corelib/components/Grid$1."<init>":(Lorg/apache/tapestry/corelib/components/Grid;Lorg/apache/tapestry/services/GridDataModelSource;Lorg/apache/tapestry/ComponentResources;)V
       25: areturn
       LineNumberTable:
       line 42: 0
       line 44: 10
       line 46: 15
       LocalVariableTable:
       Start Length Slot Name Signature
       0 26 0 this Lorg/apache/tapestry/corelib/components/Grid;
       10 16 1 containerResource Lorg/apache/tapestry/ComponentResources;
       15 11 2 modelSource Lorg/apache/tapestry/services/GridDataModelSource;
      
      java.lang.Object setupRender();
       Code:
       Stack=1, Locals=3, Args_size=1
       0: aload_0
       1: astore_1
       2: aconst_null
       3: astore_2
       4: aload_0
       5: invokespecial #50; //Method org/apache/tapestry/corelib/components/Grid._$read_parameter_source:()Lorg/apache/tapestry/grid/GridDataSource;
       8: astore_2
       9: aload_2
       10: invokeinterface #56, 1; //InterfaceMethod org/apache/tapestry/grid/GridDataSource.getAvailableRows:()I
       15: ifne 29
       18: aload_0
       19: astore_1
       20: aconst_null
       21: astore_2
       22: aload_0
       23: invokespecial #60; //Method org/apache/tapestry/corelib/components/Grid._$read_parameter_empty:()Lorg/apache/tapestry/Block;
       26: astore_2
       27: aload_2
       28: areturn
       29: aconst_null
       30: areturn
       LineNumberTable:
       line 72: 0
       line 73: 18
       line 75: 29
       LocalVariableTable:
       Start Length Slot Name Signature
       0 31 0 this Lorg/apache/tapestry/corelib/components/Grid;
      
      java.lang.Object beginRender();
       Code:
       Stack=1, Locals=3, Args_size=1
       0: aload_0
       1: astore_1
       2: aconst_null
       3: astore_2
       4: aload_0
       5: invokespecial #63; //Method org/apache/tapestry/corelib/components/Grid._$read_parameter_source:()Lorg/apache/tapestry/grid/GridDataSource;
       8: astore_2
       9: aload_2
       10: invokeinterface #65, 1; //InterfaceMethod org/apache/tapestry/grid/GridDataSource.getAvailableRows:()I
       15: ifne 23
       18: iconst_0
       19: invokestatic #71; //Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
       22: areturn
       23: aconst_null
       24: areturn
       LineNumberTable:
       line 83: 0
       line 84: 18
       line 86: 23
       LocalVariableTable:
       Start Length Slot Name Signature
       0 25 0 this Lorg/apache/tapestry/corelib/components/Grid;
      
      public org.apache.tapestry.grid.GridDataModel getDataModel();
       Code:
       Stack=1, Locals=3, Args_size=1
       0: aload_0
       1: astore_1
       2: aconst_null
       3: astore_2
       4: aload_0
       5: invokespecial #76; //Method org/apache/tapestry/corelib/components/Grid._$read_parameter_model:()Lorg/apache/tapestry/grid/GridDataModel;
       8: astore_2
       9: aload_2
       10: areturn
       LineNumberTable:
       line 91: 0
       LocalVariableTable:
       Start Length Slot Name Signature
       0 11 0 this Lorg/apache/tapestry/corelib/components/Grid;
      
      static org.apache.tapestry.grid.GridDataSource access$0(org.apache.tapestry.corelib.components.Grid);
       Code:
       Stack=1, Locals=3, Args_size=1
       0: aload_0
       1: astore_1
       2: aconst_null
       3: astore_2
       4: invokespecial #80; //Method org/apache/tapestry/corelib/components/Grid._$read_parameter_source:()Lorg/apache/tapestry/grid/GridDataSource;
       7: astore_2
       8: aload_2
       9: areturn
       LineNumberTable:
       line 26: 0
      
      public void postRenderCleanup();
       Code:
       Stack=6, Locals=7, Args_size=1
       0: aconst_null
       1: astore_2
       2: jsr 18
       5: aconst_null
       6: astore 4
       8: jsr 41
       11: aconst_null
       12: astore 6
       14: jsr 64
       17: return
       18: astore_1
       19: aload_0
       20: getfield #85; //Field org/apache/tapestry/corelib/components/Grid._$empty_invariant:Z
       23: ifne 39
       26: aload_0
       27: aload_0
       28: getfield #89; //Field org/apache/tapestry/corelib/components/Grid._$empty_default:Lorg/apache/tapestry/Block;
       31: putfield #92; //Field org/apache/tapestry/corelib/components/Grid._empty:Lorg/apache/tapestry/Block;
       34: aload_0
       35: iconst_0
       36: putfield #95; //Field org/apache/tapestry/corelib/components/Grid._$empty_cached:Z
       39: ret 1
       41: astore_3
       42: aload_0
       43: getfield #98; //Field org/apache/tapestry/corelib/components/Grid._$model_invariant:Z
       46: ifne 62
       49: aload_0
       50: aload_0
       51: getfield #102; //Field org/apache/tapestry/corelib/components/Grid._$model_default:Lorg/apache/tapestry/grid/GridDataModel;
       54: putfield #105; //Field org/apache/tapestry/corelib/components/Grid._model:Lorg/apache/tapestry/grid/GridDataModel;
       57: aload_0
       58: iconst_0
       59: putfield #108; //Field org/apache/tapestry/corelib/components/Grid._$model_cached:Z
       62: ret 3
       64: astore 5
       66: aload_0
       67: getfield #111; //Field org/apache/tapestry/corelib/components/Grid._$source_invariant:Z
       70: ifne 86
       73: aload_0
       74: aload_0
       75: getfield #115; //Field org/apache/tapestry/corelib/components/Grid._$source_default:Lorg/apache/tapestry/grid/GridDataSource;
       78: putfield #118; //Field org/apache/tapestry/corelib/components/Grid._source:Lorg/apache/tapestry/grid/GridDataSource;
       81: aload_0
       82: iconst_0
       83: putfield #121; //Field org/apache/tapestry/corelib/components/Grid._$source_cached:Z
       86: ret 5
      
      public void beforeRenderTemplate(org.apache.tapestry.MarkupWriter, org.apache.tapestry.runtime.Event);
       Code:
       Stack=0, Locals=3, Args_size=3
       0: return
      
      public void afterRenderTemplate(org.apache.tapestry.MarkupWriter, org.apache.tapestry.runtime.Event);
       Code:
       Stack=0, Locals=3, Args_size=3
       0: return
      
      public void beforeRenderBody(org.apache.tapestry.MarkupWriter, org.apache.tapestry.runtime.Event);
       Code:
       Stack=0, Locals=3, Args_size=3
       0: return
      
      public void afterRenderBody(org.apache.tapestry.MarkupWriter, org.apache.tapestry.runtime.Event);
       Code:
       Stack=0, Locals=3, Args_size=3
       0: return
      
      public void afterRender(org.apache.tapestry.MarkupWriter, org.apache.tapestry.runtime.Event);
       Code:
       Stack=0, Locals=3, Args_size=3
       0: return
      
      public void cleanupRender(org.apache.tapestry.MarkupWriter, org.apache.tapestry.runtime.Event);
       Code:
       Stack=0, Locals=3, Args_size=3
       0: return
      
      public boolean handleComponentEvent(org.apache.tapestry.runtime.ComponentEvent);
       Code:
       Stack=1, Locals=2, Args_size=2
       0: iconst_0
       1: ireturn
      
      public void containingPageDidLoad();
       Code:
       Stack=14, Locals=9, Args_size=1
       0: aconst_null
       1: astore_2
       2: jsr 24
       5: aconst_null
       6: astore 4
       8: jsr 35
       11: aconst_null
       12: astore 6
       14: jsr 103
       17: aconst_null
       18: astore 8
       20: jsr 160
       23: return
       24: astore_1
       25: aload_0
       26: aload_0
       27: getfield #135; //Field org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
       30: putfield #137; //Field org/apache/tapestry/corelib/components/Grid._resources:Lorg/apache/tapestry/ComponentResources;
       33: ret 1
       35: astore_3
       36: aload_0
       37: getfield #139; //Field org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
       40: ldc #141; //String empty
       42: invokeinterface #145, 2; //InterfaceMethod org/apache/tapestry/ComponentResources.isBound:(Ljava/lang/String;)Z
       47: ifne 78
       50: aload_0
       51: getfield #147; //Field org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
       54: ldc #148; //String empty
       56: aload_0
       57: getfield #152; //Field org/apache/tapestry/corelib/components/Grid._$bindingSource:Lorg/apache/tapestry/services/BindingSource;
       60: ldc #154; //String default empty
       62: aload_0
       63: getfield #156; //Field org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
       66: ldc #158; //String block:empty
       68: invokeinterface #164, 4; //InterfaceMethod org/apache/tapestry/services/BindingSource.newBinding:(Ljava/lang/String;Lorg/apache/tapestry/ComponentResources;Ljava/lang/String;)Lorg/apache/tapestry/Binding;
       73: invokeinterface #170, 3; //InterfaceMethod org/apache/tapestry/internal/InternalComponentResourcesCommon.bindParameter:(Ljava/lang/String;Lorg/apache/tapestry/Binding;)V
       78: aload_0
       79: aload_0
       80: getfield #172; //Field org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
       83: ldc #173; //String empty
       85: invokeinterface #178, 2; //InterfaceMethod org/apache/tapestry/internal/InternalComponentResources.isInvariant:(Ljava/lang/String;)Z
       90: putfield #180; //Field org/apache/tapestry/corelib/components/Grid._$empty_invariant:Z
       93: aload_0
       94: aload_0
       95: getfield #182; //Field org/apache/tapestry/corelib/components/Grid._empty:Lorg/apache/tapestry/Block;
       98: putfield #184; //Field org/apache/tapestry/corelib/components/Grid._$empty_default:Lorg/apache/tapestry/Block;
       101: ret 3
       103: astore 5
       105: aload_0
       106: getfield #186; //Field org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
       109: ldc_w #188; //String model
       112: invokeinterface #190, 2; //InterfaceMethod org/apache/tapestry/ComponentResources.isBound:(Ljava/lang/String;)Z
       117: ifne 134
       120: ldc_w #191; //String model
       123: aload_0
       124: getfield #193; //Field org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
       127: aload_0
       128: invokevirtual #195; //Method org/apache/tapestry/corelib/components/Grid.defaultModel:()Lorg/apache/tapestry/Binding;
       131: invokestatic #201; //Method org/apache/tapestry/internal/services/ParameterWorker.bind:(Ljava/lang/String;Lorg/apache/tapestry/internal/InternalComponentResources;Ljava/lang/Object;)V
       134: aload_0
       135: aload_0
       136: getfield #203; //Field org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
       139: ldc_w #204; //String model
       142: invokeinterface #206, 2; //InterfaceMethod org/apache/tapestry/internal/InternalComponentResources.isInvariant:(Ljava/lang/String;)Z
       147: putfield #208; //Field org/apache/tapestry/corelib/components/Grid._$model_invariant:Z
       150: aload_0
       151: aload_0
       152: getfield #210; //Field org/apache/tapestry/corelib/components/Grid._model:Lorg/apache/tapestry/grid/GridDataModel;
       155: putfield #212; //Field org/apache/tapestry/corelib/components/Grid._$model_default:Lorg/apache/tapestry/grid/GridDataModel;
       158: ret 5
       160: astore 7
       162: aload_0
       163: aload_0
       164: getfield #214; //Field org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
       167: ldc_w #216; //String source
       170: invokeinterface #218, 2; //InterfaceMethod org/apache/tapestry/internal/InternalComponentResources.isInvariant:(Ljava/lang/String;)Z
       175: putfield #220; //Field org/apache/tapestry/corelib/components/Grid._$source_invariant:Z
       178: aload_0
       179: aload_0
       180: getfield #222; //Field org/apache/tapestry/corelib/components/Grid._source:Lorg/apache/tapestry/grid/GridDataSource;
       183: putfield #224; //Field org/apache/tapestry/corelib/components/Grid._$source_default:Lorg/apache/tapestry/grid/GridDataSource;
       186: ret 7
      
      public void containingPageDidDetach();
       Code:
       Stack=0, Locals=1, Args_size=1
       0: return
      
      public void containingPageDidAttach();
       Code:
       Stack=0, Locals=1, Args_size=1
       0: return
      
      public final org.apache.tapestry.ComponentResources getComponentResources();
       Code:
       Stack=1, Locals=1, Args_size=1
       0: aload_0
       1: getfield #229; //Field org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
       4: areturn
      
      private void _$write_modelSource(org.apache.tapestry.services.GridDataModelSource);
       Code:
       Stack=3, Locals=2, Args_size=2
       0: new #233; //class java/lang/RuntimeException
       3: dup
       4: ldc #235; //String Field org.apache.tapestry.corelib.components.Grid._modelSource is read-only.
       6: invokespecial #238; //Method java/lang/RuntimeException."<init>":(Ljava/lang/String;)V
       9: athrow
      
      private void _$write_resources(org.apache.tapestry.ComponentResources);
       Code:
       Stack=3, Locals=2, Args_size=2
       0: new #233; //class java/lang/RuntimeException
       3: dup
       4: ldc #242; //String Field org.apache.tapestry.corelib.components.Grid._resources is read-only.
       6: invokespecial #244; //Method java/lang/RuntimeException."<init>":(Ljava/lang/String;)V
       9: athrow
      
      public void render(org.apache.tapestry.MarkupWriter, org.apache.tapestry.runtime.RenderQueue);
       Code:
       Stack=2, Locals=3, Args_size=3
       0: aload_0
       1: getfield #248; //Field org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
       4: aload_2
       5: invokeinterface #252, 2; //InterfaceMethod org/apache/tapestry/internal/InternalComponentResourcesCommon.queueRender:(Lorg/apache/tapestry/runtime/RenderQueue;)V
       10: return
      
      private org.apache.tapestry.Block _$read_parameter_empty();
       Code:
       Stack=3, Locals=2, Args_size=1
       0: aload_0
       1: getfield #254; //Field org/apache/tapestry/corelib/components/Grid._$empty_cached:Z
       4: ifne 19
       7: aload_0
       8: getfield #256; //Field org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
       11: invokeinterface #260, 1; //InterfaceMethod org/apache/tapestry/internal/InternalComponentResourcesCommon.isLoaded:()Z
       16: ifne 22
       19: goto 37
       22: aload_0
       23: getfield #262; //Field org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
       26: ldc_w #263; //String empty
       29: invokeinterface #265, 2; //InterfaceMethod org/apache/tapestry/ComponentResources.isBound:(Ljava/lang/String;)Z
       34: ifne 42
       37: aload_0
       38: getfield #267; //Field org/apache/tapestry/corelib/components/Grid._empty:Lorg/apache/tapestry/Block;
       41: areturn
       42: aload_0
       43: getfield #269; //Field org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
       46: ldc_w #270; //String empty
       49: ldc_w #271; //String Lorg/apache/tapestry/Block;
       52: invokestatic #277; //Method javassist/runtime/Desc.getType:(Ljava/lang/String;)Ljava/lang/Class;
       55: invokeinterface #281, 3; //InterfaceMethod org/apache/tapestry/internal/InternalComponentResources.readParameter:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
       60: checkcast #283; //class org/apache/tapestry/Block
       63: checkcast #283; //class org/apache/tapestry/Block
       66: astore_1
       67: aload_0
       68: getfield #285; //Field org/apache/tapestry/corelib/components/Grid._$empty_invariant:Z
       71: ifne 86
       74: aload_0
       75: getfield #287; //Field org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
       78: invokeinterface #292, 1; //InterfaceMethod org/apache/tapestry/ComponentResourcesCommon.isRendering:()Z
       83: ifeq 96
       86: aload_0
       87: aload_1
       88: putfield #294; //Field org/apache/tapestry/corelib/components/Grid._empty:Lorg/apache/tapestry/Block;
       91: aload_0
       92: iconst_1
       93: putfield #296; //Field org/apache/tapestry/corelib/components/Grid._$empty_cached:Z
       96: aload_1
       97: areturn
      
      private void _$update_parameter_empty(org.apache.tapestry


        • 1. Re: Anomalous VerifyError (related to inner classes?)
          hlship

          Ah, never mind that note at the bottom, I found the compiler-generated code for access$0.

          static org.apache.tapestry.grid.GridDataSource access$0(org.apache.tapestry.corelib.components.Grid);
           Code:
           Stack=1, Locals=3, Args_size=1
           0: aload_0
           1: astore_1
           2: aconst_null
           3: astore_2
           4: invokespecial #80; //Method org/apache/tapestry/corelib/components/Grid._$read_parameter_source:()Lorg/apache/tapestry/grid/GridDataSource;
           7: astore_2
           8: aload_2
           9: areturn
           LineNumberTable:
           line 26: 0
          


          • 2. Re: Anomalous VerifyError (related to inner classes?)
            hlship

            And now I can see that the forum has truncated my (very long) message. Here's the most relevant part at the end:

            public void initializer();
             Code:
             Stack=1, Locals=1, Args_size=1
             0: aload_0
             1: pop
             2: nop
             3: nop
             4: return
             LineNumberTable:
             line 23: 0
             LocalVariableTable:
             Start Length Slot Name Signature
             0 5 0 this Lorg/apache/tapestry/corelib/components/Grid;
            
            public org.apache.tapestry.corelib.components.Grid(org.apache.tapestry.internal.InternalComponentResources, org.apache.tapestry.services.GridDataModelSource, org.apache.tapestry.services.BindingSource);
             Code:
             Stack=2, Locals=4, Args_size=4
             0: aload_0
             1: invokespecial #466; //Method java/lang/Object."<init>":()V
             4: aload_0
             5: aload_1
             6: putfield #468; //Field org/apache/tapestry/corelib/components/Grid._$resources:Lorg/apache/tapestry/internal/InternalComponentResources;
             9: aload_0
             10: aload_2
             11: putfield #470; //Field org/apache/tapestry/corelib/components/Grid._modelSource:Lorg/apache/tapestry/services/GridDataModelSource;
             14: aload_0
             15: aload_3
             16: putfield #472; //Field org/apache/tapestry/corelib/components/Grid._$bindingSource:Lorg/apache/tapestry/services/BindingSource;
             19: aload_0
             20: invokevirtual #474; //Method org/apache/tapestry/corelib/components/Grid.initializer:()V
             23: return
            
            }
            


            and here's the synthetic accessor method:

            static org.apache.tapestry.grid.GridDataSource access$0(org.apache.tapestry.corelib.components.Grid);
             Code:
             Stack=1, Locals=3, Args_size=1
             0: aload_0
             1: astore_1
             2: aconst_null
             3: astore_2
             4: invokespecial #80; //Method org/apache/tapestry/corelib/components/Grid._$read_parameter_source:()Lorg/apache/tapestry/grid/GridDataSource;
             7: astore_2
             8: aload_2
             9: areturn
             LineNumberTable:
             line 26: 0
            




            • 3. Re: Anomalous VerifyError (related to inner classes?)
              chiba

              Hi,

              The bytecode of access$0 in GridDataSopurce seems broken.
              If access$0 is generated by Javassist, can you find the source
              code given to Javassist for generating this method?

              I don't think access$0 is not a method implicitly generated
              by Javassist.

              Thanks

              • 4. Re: Anomalous VerifyError (related to inner classes?)
                hlship

                Yes, I think access$0 is generated by the normal compiler.

                I'm going to try and reproduce this, and I'll upload the normal and enhanced .class files.

                • 5. Re: Anomalous VerifyError (related to inner classes?)
                  hlship

                  The class that was affected has changed a bit since my first encounter with the problem. No, even though I've restored the inner class that spurred the problem in the first place, I'm no longer seeing the VerifyError. I guess I'll post again if and when it recurs.

                  • 6. Re: Anomalous VerifyError (related to inner classes?)
                    hlship

                    I think that Javassist is instrumenting field access incorrectly inside static methods (when the static method accesses an instance variable of an object passed as a parameter). That's why it affects these $access methods so much ... that's pretty much what those do.