]
RH Bugzilla Integration commented on DROOLS-439:
------------------------------------------------
Mario Fusco <mfusco(a)redhat.com> changed the Status of [bug
Package builder unable to find declared array class
---------------------------------------------------
Key: DROOLS-439
URL:
https://issues.jboss.org/browse/DROOLS-439
Project: Drools
Issue Type: Bug
Security Level: Public(Everyone can see)
Affects Versions: 6.0.1.Final
Reporter: Mark Sullivan
Assignee: Mario Fusco
When declaring a fact type with an array field, where the array type is declared in the
same package, for example:
{code}
declare Owner
name : String
end
declare Pet
owners : Owner[]
end
{code}
The following build error occurs:
{code}
[Message [id=1, level=ERROR, path=pets.drl, line=5, column=0
text=Unable to find class 'Owner']]
{code}
This error doesn't always occur when an array field is declared. It's dependent
on the order in which each fact type is processed.
PackageBuilder attempts to order fact types for processing based on the declared super
type and attribute types.
The following loop in *PackageBuilder.sortByHierarchy()* processes each field looking for
field type dependencies:
{code}
for (TypeFieldDescr field : tdescr.getFields().values()) {
QualifiedName typeName = new QualifiedName(field.getPattern().getObjectType());
if (!hasCircularDependency(name, typeName, taxonomy)) {
supers.add(typeName);
}
}
{code}
However I don't think it correctly spots the dependency when the field type is an
array.
This issue can be worked around by declaring an unused field of the same type as the
array:
{code}
declare Owner
name : String
end
declare Pet
owners : Owner[]
_unused: Owner
end
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: