beehive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Giovanni Motta (JIRA)" <...@beehive.apache.org>
Subject [jira] Commented: (BEEHIVE-1060) Control not being initialized when Inheriting from a parent page flow with a package protected control
Date Fri, 23 Jun 2006 10:59:30 GMT
    [ 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


Mime
View raw message