JiBX should not apply any default value unless an explicit default attribute is
given
-------------------------------------------------------------------------------------
Key: JIBX-433
URL: http://jira.codehaus.org/browse/JIBX-433
Project: JiBX
Issue Type: Bug
Components: core
Affects Versions: JiBX 1.2.3
Reporter: Archie Cobbs
I have a JiBX mapping for a serial port that looks like this:
{noformat}
<mapping abstract="true" class="com.exampleSerialConfig">
<value name="baudRate" get-method="getBaudRate"
set-method="setBaudRate" usage="optional"/>
...
</mapping>
{noformat}
The {{getBaudRate()/setBaudRate()}} methods take a value of type int.
I would expect that if the XML contained no {{<baudRate>}} element, then
{{setBaudRate()}} would not be invoked. The underlying Java class initializes
this property to {{9600}}, so I would expect that to be the default value if
not specified.
However, event when there's no {{<baudRate>}} element JiBX is invoking
{{setBaudRate()}} with a value of zero.
In other words, JiBX forcibly applies a (fixed: false, zero, or null) default
value even when you specified that you didn't want a default value by not
having any {{default="..."}} attribute.
First of all, this is sub-optimal, because now there's no way now to have a
non-zero/null default value that works the same way in both the Java and XML
worlds, without specifying that default value in both your Java code and your
JiBX XML files, which is both redundant and error-prone (because invariably you
will change it in one place and forget to change it in the other).
But even worse, this auto-application of default values actually serves
absolutely no purpose, because the values it sets are the Java defaults anyway
(false, zero, null, etc). Any newly-constructed object will already have those
values; or if it doesn't, then they must have been changed in the constructor,
which means the programmer wanted them to be different!
So in summary this behavior is wrong for lots of reasons and actually
accomplishes nothing. Please remove it.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
------------------------------------------------------------------------------
Enable your software for Intel(R) Active Management Technology to meet the
growing manageability and security demands of your customers. Businesses
are taking advantage of Intel(R) vPro (TM) technology - will your software
be a part of the solution? Download the Intel(R) Manageability Checker
today! http://p.sf.net/sfu/intel-dev2devmar
_______________________________________________
jibx-devs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jibx-devs