I have created a federation using Open HLA, and it works if the federation is created with one XML file, and none of the federates joining specify additional FDD information. However, if a federate joins by specifying additional FDD information (the EXACT SAME file that the federation started with), I get the exception:
hla.rti1516e.exceptions.InconsistentFDD:
at net.sf.ohla.rti.federate.Federate.<init>(Federate.java:352)
at net.sf.ohla.rti.hla.rti1516e.IEEE1516eRTIambassador.joinFederationExecution(IEEE1516eRTIambassador.java:718)
...
Clearly they are compatible, as they are the same file. 1516.1 says in section 4.9 "...Contents of the FOM modules may duplicate information in the current FDD of the federation execution, but they shall not conflict with the current FDD"
I traced through a bit, and it looks like both files are being read, with objects being created for each file; they are then compared using a .equals() based on the reference, versus based on the contents, and so they look incompatible.
Is this feature supposed to be implemented? Is it a bug? Is there a different way to do this?
Thanks,
Lissa
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
It is a bug. The declared attribute/parameter maps are checked for equality instead of each attribute/parameter checked for equality (when they have the same name).
I'll fix this in the next release and also add a test case.
Thanks!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have created a federation using Open HLA, and it works if the federation is created with one XML file, and none of the federates joining specify additional FDD information. However, if a federate joins by specifying additional FDD information (the EXACT SAME file that the federation started with), I get the exception:
hla.rti1516e.exceptions.InconsistentFDD:
at net.sf.ohla.rti.federate.Federate.<init>(Federate.java:352)
at net.sf.ohla.rti.hla.rti1516e.IEEE1516eRTIambassador.joinFederationExecution(IEEE1516eRTIambassador.java:718)
...
Clearly they are compatible, as they are the same file. 1516.1 says in section 4.9 "...Contents of the FOM modules may duplicate information in the current FDD of the federation execution, but they shall not conflict with the current FDD"
I traced through a bit, and it looks like both files are being read, with objects being created for each file; they are then compared using a .equals() based on the reference, versus based on the contents, and so they look incompatible.
Is this feature supposed to be implemented? Is it a bug? Is there a different way to do this?
Thanks,
Lissa
It is a bug. The declared attribute/parameter maps are checked for equality instead of each attribute/parameter checked for equality (when they have the same name).
I'll fix this in the next release and also add a test case.
Thanks!