You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@beehive.apache.org by "Julie Zhuo (JIRA)" <be...@incubator.apache.org> on 2005/06/02 06:47:55 UTC
[jira] Closed: (BEEHIVE-511) Apt hangs when processing sources with errors
[ http://issues.apache.org/jira/browse/BEEHIVE-511?page=all ]
Julie Zhuo closed BEEHIVE-511:
------------------------------
Verified fixed with the m1rc2 distribution. It now compiles
@control HelloControlBean _hello successfully when the control type is defined by HelloControl.jcx rather HelloControl.java.
> Apt hangs when processing sources with errors
> ---------------------------------------------
>
> Key: BEEHIVE-511
> URL: http://issues.apache.org/jira/browse/BEEHIVE-511
> Project: Beehive
> Type: Bug
> Components: Build
> Versions: V1
> Reporter: C Brett Bennett
> Assignee: Julie Zhuo
> Priority: Critical
> Fix For: V1
>
> Apt'hangs' under the following circumstance.
> When processing a @Control field, if it is a control-bean reference, e.g.
> @Control SomeBean _bean;
> field where SomeBean is generated from a Some.jcx file, but at the time the _bean field is being processed the SomeBean class has not been generated or more specifically in the javac class table, then the loop in the ControlClientAnnotationProcessor:
> ------------------------------------------
> ClassType classType = (ClassType)fieldType;
> outer: while ( classType != null )
> {
> Collection<InterfaceType> intfs =classType.getSuperinterfaces();
> for ( InterfaceType intfType : intfs )
> {
> if ( intfType.getDeclaration().getQualifiedName().equals( "org.apache.beehive.controls.api.bean.ControlBean" ) )
> {
> foundControlBean = true;
> break outer;
> }
> }
> classType = classType.getSuperclass();
> }
> --------------------------------------------
> Will never end because the original fieldType (SomeBean) is an error-type that returns an error-type when getSuperClass() is called.
> The following suffices to break the loop:
> --------------------------------------------
> ClassType classType = (ClassType)fieldType;
> outer: while ( classType != null )
> {
> Collection<InterfaceType> intfs = classType.getSuperinterfaces();
> for ( InterfaceType intfType : intfs )
> {
> if ( intfType.getDeclaration().getQualifiedName().equals( "org.apache.beehive.controls.api.bean.ControlBean" ) )
> {
> foundControlBean = true;
> break outer;
> }
> }
> ClassType superType = classType.getSuperclass();
> if(superType != null && superType.equals(classType))
> {
> break;
> }
> classType = superType;
> }
--
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