[ http://issues.apache.org/jira/browse/BEEHIVE-1060?page=comments#action_12417454 ]
Giovanni Motta commented on BEEHIVE-1060: ----------------------------------------- I had the same problem developing with BEA workshop 9.2 tools (Build id: 740482) a beehive sample web application. In my case, it was not enough to put the protected modifier to field level. I got org.apache.beehive.netui.pageflow.ControlFieldInitializationException Caused by: java.lang.ClassNotFoundException: operazione1.Operazione1ControllerClientInitializer That means, in my sample, the ClientInitializer class for the subclass is not created. The workaround i adopted was to put a 'fake' java control in the subclass, so the ClientInitializer class was generated, and then everything worked fine (also the control inherited from base class was initialized successfully, no more NPE). > Control not being initialized when Inheriting from a parent page flow with a > package protected control > ------------------------------------------------------------------------------------------------------ > > Key: BEEHIVE-1060 > URL: http://issues.apache.org/jira/browse/BEEHIVE-1060 > Project: Beehive > Type: Bug > Components: NetUI > Versions: 1.0.1 > Reporter: Carlin Rogers > Fix For: v.next > Attachments: j1060-repro-updated.zip, j1060-repro.zip > > When a page flow in another package inherits from a parent page flow that > contains a package protected @Control member variable, the control is not > initialized correctly. When the page flow call a method inherited from the > parent and the method uses the package protected control, an NPE will be > thrown as the control will not be initialized. > The work around is to make the control field protected rather than package > protected. > To reproduce create a page flow with a package protected control. Include a > method in the parent page flow that uses the control. Then, create a second > page flow controller class in another package that extends the parent and > calls the inherited method that hits the control. I will attach a zip file > that will contain page flows to repro this issue. It can also be used to test > the fix. > The problem seems to occur when JavaControlUtils.initJavaControls() is called > and checks for the set of annotated control fields for the inherited page > flow controller class. The routine, > JavaControlUtils.getAccessibleControlFieldAnnotations() checks the fields of > the page flow controller and its ancestors to see if they match any of the > fields found in our generated annotation XML file. However, there will not be > an <annotated-element> in the processed annotations file of the derived page > flow for the package protected control in the parent page flow. > I'm not sure yet whether the NetUI annotation processor should generate this > <annotated-element> or if the getAccessibleControlFieldAnnotations() method > should be looking at the annotated fields of parent classes. We can look at > this for v.next. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
