You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@beehive.apache.org by "Giovanni Motta (JIRA)" <de...@beehive.apache.org> on 2006/06/23 12:59:30 UTC

[jira] Commented: (BEEHIVE-1060) Control not being initialized when Inheriting from a parent page flow with a package protected control

    [ 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