[ 
https://issues.jboss.org/browse/SOLDER-126?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jason Porter updated SOLDER-126:
--------------------------------

           Status: Resolved  (was: Pull Request Sent)
    Fix Version/s: 3.1.0.Final
       Resolution: Done


Thanks!
                
> Solder Property couldn't get property value if the property type is primitive.
> ------------------------------------------------------------------------------
>
>                 Key: SOLDER-126
>                 URL: https://issues.jboss.org/browse/SOLDER-126
>             Project: Solder
>          Issue Type: Bug
>    Affects Versions: 3.0.0.Final
>            Reporter: Miyazawa Yasushi
>             Fix For: 3.1.0.Final
>
>         Attachments: solder-properties-primitive-boolean-fix.patch
>
>
> Property couldn't get property value if the property type is primitive.
> Simplest Test
> ===================================================================================================
> package org.miyazyss;
> import org.jboss.seam.solder.properties.Property;
> import org.jboss.seam.solder.properties.query.NamedPropertyCriteria;
> import org.jboss.seam.solder.properties.query.PropertyQueries;
> import org.jboss.seam.solder.properties.query.PropertyQuery;
> import org.junit.Assert;
> import org.junit.Test;
> /**
>  *
>  */
> public class SolderMethodTest {
>       public static class Bean {
>               public long longValue = 1;              
>               public Long longClassValue = 3L;
>               
>               public long getLongValueMethod(){
>                       return(2);
>               }
>       }
>       
>       private Bean bean = new Bean();
>       
>       @Test
>       public void testPrimitiveField(){
>               PropertyQuery<Bean> query = 
> PropertyQueries.createQuery(Bean.class);            
>               Property<Bean> prop = query.addCriteria(new 
> NamedPropertyCriteria("longValue")).getFirstResult();
>       
>               Assert.assertEquals(1, prop.getValue(this.bean));
>       }
>       
>       @Test
>       public void testPrimitiveReturnTypeMethod(){
>               PropertyQuery<Bean> query = 
> PropertyQueries.createQuery(Bean.class);            
>               Property<Bean> propValue = query.addCriteria(new 
> NamedPropertyCriteria("longValueMethod")).getFirstResult();
>       
>               Assert.assertEquals(2, propValue.getValue(this.bean));
>       }       
>       
>       
>       @Test
>       public void testClassField(){
>               PropertyQuery<Bean> query = 
> PropertyQueries.createQuery(Bean.class);            
>               Property<Bean> propValue = query.addCriteria(new 
> NamedPropertyCriteria("longClassValue")).getFirstResult();
>       
>               Assert.assertEquals(3L, propValue.getValue(this.bean));
>       }       
> }
> Result
> =========================================================================================================
> SolderMethodTest
> org.miyazyss.SolderMethodTest
> testPrimitiveField(org.miyazyss.SolderMethodTest)
> java.lang.ClassCastException
>       at java.lang.Class.cast(Unknown Source)
>       at 
> org.jboss.seam.solder.reflection.Reflections.getFieldValue(Reflections.java:682)
>       at 
> org.jboss.seam.solder.properties.FieldPropertyImpl.getValue(FieldPropertyImpl.java:75)
>       at 
> org.miyazyss.SolderMethodTest.testPrimitiveField(SolderMethodTest.java:37)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>       at java.lang.reflect.Method.invoke(Unknown Source)
>       at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
>       at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
>       at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
>       at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
>       at 
> org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
>       at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
>       at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
>       at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
>       at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
>       at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
>       at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
>       at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
>       at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
>       at 
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
>       at 
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
> testPrimitiveReturnTypeMethod(org.miyazyss.SolderMethodTest)
> java.lang.ClassCastException
>       at java.lang.Class.cast(Unknown Source)
>       at 
> org.jboss.seam.solder.properties.MethodPropertyImpl.getValue(MethodPropertyImpl.java:136)
>       at 
> org.miyazyss.SolderMethodTest.testPrimitiveReturnTypeMethod(SolderMethodTest.java:45)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>       at java.lang.reflect.Method.invoke(Unknown Source)
>       at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
>       at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
>       at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
>       at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
>       at 
> org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
>       at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
>       at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
>       at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
>       at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
>       at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
>       at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
>       at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
>       at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
>       at 
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
>       at 
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        
_______________________________________________
seam-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/seam-issues

Reply via email to