[ http://issues.apache.org/jira/browse/BEEHIVE-511?page=history ]
Kyle Marvin reassigned BEEHIVE-511:
-----------------------------------
Assign To: 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: Kyle Marvin
> Priority: Critical
>
> 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
-
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira