by default, the Fixture tries to verify whether you’ve applied event sourcing correctly. For example, it can detect when you have done a state change inside the command handler method. Under some circumstances, it may return false positives (reporting an error when everything is ok). The comparison is done by comparing the values of each objects fields with an Event Sourced instance of your aggregate. However, if two objects implement an equals method or the Comparable interface, the outcome of the equals or compareTo method is used. If that method returns false (or a value != 0), the test fails.
Since you’re storing fields in a Map, which does override equals, Axon uses the equals method on the map. In turn, the Map will use the equals method on the AttributeInformation object to compare equality.
Does your AttributeInformation class implement the equals method? If so, then it probably returns false where it shouldn’t, OR, you’ve really made an event sourcing mistake somewhere. In that case, check if you don’t accidentally change a field in a method that is not an @EventHandler.
You can switch off the check altogether by using fixture.setReportIllegalStateChange(false);