JiBX: Bugs and Bug Reporting

### Known issues

There's a known inconsistency in the way certain combinations of optional components are handled. This is not really a bug, but rather an ambiguity in the way optional items are interpreted. It's likely to remain until JiBX 2.0:

- Optional structures are not handled consistently unless they have an associated property value. In other words, structures that just define a wrapper element around some content that's part of a containing object won't always work as expected if you make them optional. This creates problems in trying to wrap text or CDATA values with elements to make them optional using binding constructs like:

      <structure name="wrapper" usage="optional">
        <value style="cdata" field="m_rawText" usage="optional"/>
      </structure>

  The result is that if the m_rawText field is `null` an empty <wrapper> element will be generated when marshalling, which will then be converted to an empty string value when unmarshalling. There is a work-around for this, which is to use a test-method on the structure. The test method can check if the field value is null, and if so return false.

### Reporting Problems

If you run into problems with the code please check existing bug reports for information on fixes, and enter a new bug report if you don't find one matching your problem. JiBX uses the Jira issue tracking system hosted by The Codehaus. Please note that JiBX is not otherwise affiliated with The Codehaus, and other aspects of the project remain hosted on SourceForge. You can browse the Jira bug list without restriction, but will need to register in order to enter new issues.

You can help make sure your problem is addressed quickly and completely by attaching sample code to demonstrate the problem. The sample code should be packaged as a zip or tar.gz file, and should include an Ant build.xml script to compile the code, run the binding compiler, and (for runtime problems) execute a test of the binding. The starter example included in the JiBX distribution shows how this can work.