beehive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alejandro Ramirez (JIRA)" <beehive-...@incubator.apache.org>
Subject [jira] Assigned: (BEEHIVE-511) Apt hangs when processing sources with errors
Date Wed, 01 Jun 2005 20:55:04 GMT
     [ http://issues.apache.org/jira/browse/BEEHIVE-511?page=all ]

Alejandro Ramirez reassigned BEEHIVE-511:
-----------------------------------------

    Assign To: Julie Zhuo  (was: Kyle Marvin)

> 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


Mime
View raw message