[ 
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

Reply via email to