ok ok ok, now we know when this problem occurs: it only occurs when  
nillable="true" is set, which of course can't work with a primitive  
(how should jibx set a primitive to null?)! so this behaviour is  
correct, but the error message is so confusing that it took quite a  
while to get me there ;-)

maybe this should go into the docs that using nillable=true implies  
that no primitives can be used in setter and getter.

br,
günther


Am 13.11.2007 um 17:51 schrieb Günther Wieser:

> hold on a second ;-) tried to reproduce this error in a unit test, but
> i can't get the same behaviour now...will check that and come back to
> the mailing list with either a solution or a more detailed test setup
> for reproducing this error.
>
> br,
> günther
>
> Am 13.11.2007 um 14:10 schrieb Günther Wieser:
>
>> hi,
>>
>> using jibx 1.1.5, we found a problem with using getters and setters
>> and primitive types.
>>
>> here's an example class:
>>
>> public class Address {
>>
>>   private int test;
>>
>>   private int getJiBXTest() {
>>      return this.test;
>>   }
>>
>>   private void setJiBXTest(int test) {
>>      this.test=test;
>>   }
>> }
>>
>> here's the binding (snippet):
>>
>>      <mapping name="address" class="data.Address" abstract="true"
>> flexible="true"
>>              ordered="false">
>>              <value name="test" set-method="setJiBXTest"
>>                      get-method="getJiBXTest" usage="required" 
>> nillable="true" />
>>      </mapping>
>>
>> when compiling this, i get the following output:
>>
>> [bind] object binding for data.Address create class data.Address
>>    [bind] structure unordered, flexible
>>    [bind] element id from property from getJiXBId to setJiXBId
>> (java.lang.Long)
>>    [bind] element street from property from getJiXBStreet to
>> setJiXBStreet (java.lang.String)
>>    [bind] element city from property from getJiXBCity to setJiXBCity
>> (java.lang.String)
>>    [bind] element yn from property from getJiBXYn to setJiBXYn
>> (boolean)
>>    [bind] element test from property from getJiBXTest to setJiBXTest
>> (int)
>>    [bind] Generating code for mapping data.Customer
>>    [bind] Error running binding compiler
>>    [bind] *** Error during code generation for file 'C:/JavaDev322/
>> JiXB Test/src/customer_binding.xml' - please enter a bug report for
>> this error in Jira if the problem is not listed as fixed on the  
>> online
>> status page ***
>>    [bind] java.lang.IllegalStateException: Internal error: Expected
>> object reference on stack , found boolean
>>    [bind] full stack:
>>    [bind] 0: org.jibx.runtime.impl.MarshallingContext
>>    [bind] 1: boolean
>>    [bind] at
>> org
>> .jibx
>> .binding.classes.MethodBuilder.verifyStackObject(MethodBuilder.java:
>> 551)
>>    [bind] at
>> org
>> .jibx
>> .binding.classes.MethodBuilder.appendIFNONNULL(MethodBuilder.java:
>> 620)
>>    [bind] at
>> org.jibx.binding.def.ValueChild.genMarshal(ValueChild.java:622)
>>    [bind] at
>> org.jibx.binding.def.ValueChild.genContentMarshal(ValueChild.java: 
>> 818)
>>    [bind] at
>> org
>> .jibx
>> .binding.def.NestedStructure.genContentMarshal(NestedStructure.java:
>> 355)
>>    [bind] at
>> org
>> .jibx
>> .binding.def.ObjectBinding.genMarshalContentCall(ObjectBinding.java:
>> 878)
>>    [bind] at
>> org
>> .jibx.binding.def.ObjectBinding.genContentMarshal(ObjectBinding.java:
>> 948)
>>    [bind] at
>> org
>> .jibx
>> .binding.def.ElementWrapper.genContentMarshal(ElementWrapper.java:
>> 464)
>>    [bind] at
>> org
>> .jibx
>> .binding
>> .def.ComponentProperty.genContentMarshal(ComponentProperty.java:318)
>>    [bind] at
>> org
>> .jibx
>> .binding
>> .def 
>> .PassThroughComponent.genContentMarshal(PassThroughComponent.java:
>> 116)
>>    [bind] at
>> org
>> .jibx
>> .binding 
>> .def.NestedCollection.genContentMarshal(NestedCollection.java:
>> 269)
>>    [bind] at
>> org
>> .jibx
>> .binding.def.ObjectBinding.genMarshalContentCall(ObjectBinding.java:
>> 878)
>>    [bind] at
>> org
>> .jibx.binding.def.ObjectBinding.genContentMarshal(ObjectBinding.java:
>> 948)
>>    [bind] at
>> org
>> .jibx
>> .binding
>> .def.ComponentProperty.genContentMarshal(ComponentProperty.java:318)
>>    [bind] at
>> org
>> .jibx
>> .binding.def.NestedStructure.genContentMarshal(NestedStructure.java:
>> 355)
>>    [bind] at
>> org
>> .jibx
>> .binding.def.NestedStructure.genContentMarshal(NestedStructure.java:
>> 355)
>>    [bind] at
>> org
>> .jibx
>> .binding.def.ObjectBinding.genMarshalContentCall(ObjectBinding.java:
>> 878)
>>    [bind] at
>> org
>> .jibx.binding.def.ObjectBinding.genContentMarshal(ObjectBinding.java:
>> 948)
>>    [bind] at
>> org
>> .jibx
>> .binding.def.ElementWrapper.genContentMarshal(ElementWrapper.java:
>> 464)
>>    [bind] at
>> org
>> .jibx
>> .binding
>> .def
>> .MappingDefinition
>> .generateMarshalImplementation(MappingDefinition.java:797)
>>    [bind] at
>> org
>> .jibx
>> .binding.def.MappingDefinition.generateCode(MappingDefinition.java:
>> 856)
>>    [bind] at
>> org
>> .jibx
>> .binding.def.DefinitionContext.generateCode(DefinitionContext.java:
>> 669)
>>    [bind] at
>> org
>> .jibx
>> .binding.def.BindingDefinition.generateCode(BindingDefinition.java:
>> 661)
>>    [bind] at org.jibx.binding.Compile.compile(Compile.java:305)
>>    [bind] at
>> org.jibx.binding.ant.CompileTask.execute(CompileTask.java:248)
>>    [bind] at
>> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
>>    [bind] at org.apache.tools.ant.Task.perform(Task.java:364)
>>    [bind] at org.apache.tools.ant.Target.execute(Target.java:341)
>>    [bind] at org.apache.tools.ant.Target.performTasks(Target.java:
>> 369)
>>    [bind] at
>> org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
>>    [bind] at org.apache.tools.ant.Project.executeTarget(Project.java:
>> 1185)
>>    [bind] at
>> org
>> .apache
>> .tools 
>> .ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:
>> 40)
>>    [bind] at
>> org
>> .eclipse
>> .ant
>> .internal
>> .ui
>> .antsupport
>> .EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java: 
>> 32)
>>    [bind] at
>> org.apache.tools.ant.Project.executeTargets(Project.java:1068)
>>    [bind] at
>> org
>> .eclipse
>> .ant
>> .internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:
>> 423)
>>    [bind] at
>> org
>> .eclipse
>> .ant
>> .internal 
>> .ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:
>> 137)
>>
>>
>> when i change the type of the getter/setter parameter/return value to
>> Integer instead of int, everything works fine. so from the error
>> message and from the workaround, i think jibx expects no primitives.
>> if this is the case and this is something that cannot be changed, it
>> should be stated in the documentation.
>>
>> you may ask why we need setter and getter for an int value? well, of
>> course we don't store the value in an int like in this example, we
>> store it in a (very weird) data class that takes a primitive in its
>> set method. so changing to field access won't help, because even a
>> self-written serializer/deserializer won't help (accessing these data
>> classes is very weird!).
>>
>> br,
>> günther
>> -- 
>> Günther Wieser
>> creative-it
>> Guglgasse 6/1/11/1
>> A-1110 Wien
>> [EMAIL PROTECTED]
>> http://www.creative-it.com
>>
>>
>>
>>
>> -------------------------------------------------------------------------
>> This SF.net email is sponsored by: Splunk Inc.
>> Still grepping through log files to find problems?  Stop.
>> Now Search log events and configuration files using AJAX and a
>> browser.
>> Download your FREE copy of Splunk now >> http://get.splunk.com/
>> _______________________________________________
>> jibx-users mailing list
>> jibx-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/jibx-users
>>
>
>
>
> -- 
> Günther Wieser
> creative-it
> Guglgasse 6/1/11/1
> A-1110 Wien
> [EMAIL PROTECTED]
> http://www.creative-it.com
>
>
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Splunk Inc.
> Still grepping through log files to find problems?  Stop.
> Now Search log events and configuration files using AJAX and a  
> browser.
> Download your FREE copy of Splunk now >> http://get.splunk.com/
> _______________________________________________
> jibx-users mailing list
> jibx-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jibx-users
>



-- 
Günther Wieser
creative-it
Guglgasse 6/1/11/1
A-1110 Wien
[EMAIL PROTECTED]
http://www.creative-it.com




-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
jibx-users mailing list
jibx-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jibx-users

Reply via email to