[ 
http://issues.ops4j.org/jira/browse/QI-132?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=11575#action_11575
 ] 

Niclas Hedhman commented on QI-132:
-----------------------------------


Well, there are two reasons;

 1. Arrays are part of the Java Lanaguage and it is odd if we don't support it.

 2. In my case, the String's are picked up from a configuration and not changed 
while the service is running and the input in the API is String[] so why 
convert each time it is used...

> Property<String[]> strings(); doesn't work...
> ---------------------------------------------
>
>                 Key: QI-132
>                 URL: http://issues.ops4j.org/jira/browse/QI-132
>             Project: Qi4j
>          Issue Type: Bug
>            Reporter: Niclas Hedhman
>            Assignee: Niclas Hedhman
>
> If I put a String[] in as the type in a Property of a Configuration Entity, I 
> get the following Exception.
> org.qi4j.composite.ConstructionException: Could not instantiate class 
> org.qi4j.service.Configuration$ConfigurationMixin
>        at 
> org.qi4j.runtime.composite.ConstructorModel.newInstance(ConstructorModel.java:75)
>        at 
> org.qi4j.runtime.composite.ConstructorsModel.newInstance(ConstructorsModel.java:149)
>        at 
> org.qi4j.runtime.composite.MixinModel.newInstance(MixinModel.java:95)
>        at 
> org.qi4j.runtime.composite.MixinsModel.newMixins(MixinsModel.java:49)
>        at 
> org.qi4j.runtime.composite.CompositeModel.newCompositeInstance(CompositeModel.java:199)
>        at 
> org.qi4j.runtime.composite.CompositeBuilderInstance.newInstance(CompositeBuilderInstance.java:131)
>        at 
> org.qi4j.spi.service.provider.DefaultServiceInstanceFactory.newInstance(DefaultServiceInstanceFactory.java:44)
>        at 
> org.qi4j.runtime.service.ServiceModel.newInstance(ServiceModel.java:149)
>        at 
> org.qi4j.runtime.service.ServiceReferenceInstance.getInstance(ServiceReferenceInstance.java:139)
>        at 
> org.qi4j.runtime.service.ServiceReferenceInstance.activate(ServiceReferenceInstance.java:103)
>        at org.qi4j.spi.service.Activator.activate(Activator.java:51)
>        at org.qi4j.spi.service.Activator.activate(Activator.java:35)
>        at 
> org.qi4j.runtime.structure.ServicesInstance.activate(ServicesInstance.java:54)
>        at 
> org.qi4j.runtime.structure.ModuleInstance.activate(ModuleInstance.java:199)
>        at org.qi4j.spi.service.Activator.activate(Activator.java:51)
>        at org.qi4j.spi.service.Activator.activate(Activator.java:35)
>        at 
> org.qi4j.runtime.structure.LayerInstance.activate(LayerInstance.java:230)
>        at org.qi4j.spi.service.Activator.activate(Activator.java:51)
>        at org.qi4j.spi.service.Activator.activate(Activator.java:35)
>        at 
> org.qi4j.runtime.structure.ApplicationInstance.activate(ApplicationInstance.java:88)
>        at org.qi4j.test.AbstractQi4jTest.setUp(AbstractQi4jTest.java:56)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>        at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>        at 
> org.junit.internal.runners.MethodRoadie.runBefores(MethodRoadie.java:122)
>        at 
> org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:86)
>        at 
> org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)
>        at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
>        at 
> org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88)
>        at 
> org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
>        at 
> org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
>        at 
> org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)
>        at 
> org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)
>        at 
> org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
>        at 
> com.intellij.rt.junit4.Junit4ClassSuite.run(Junit4ClassSuite.java:99)
>        at 
> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40)
> Caused by: java.lang.IllegalArgumentException: Could not extract the raw 
> class of java.lang.String[]
>        at org.qi4j.util.ClassUtil.getRawClass(ClassUtil.java:179)
>        at 
> org.qi4j.runtime.entity.EntityPropertyModel.propertyType(EntityPropertyModel.java:96)
>        at 
> org.qi4j.runtime.entity.EntityPropertiesModel.propertyTypes(EntityPropertiesModel.java:147)
>        at 
> org.qi4j.runtime.entity.EntityStateModel.propertyTypes(EntityStateModel.java:111)
>        at org.qi4j.runtime.entity.EntityModel.entityType(EntityModel.java:156)
>        at 
> org.qi4j.runtime.entity.EntityModel.getEntityState(EntityModel.java:302)
>        at 
> org.qi4j.runtime.structure.EntitiesInstance.loadEntityInstance(EntitiesInstance.java:71)
>        at 
> org.qi4j.runtime.entity.UnitOfWorkInstance.find(UnitOfWorkInstance.java:188)
>        at 
> org.qi4j.service.Configuration$ConfigurationMixin.<init>(Configuration.java:86)
>        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
> Method)
>        at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>        at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>        at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
>        at 
> org.qi4j.runtime.composite.ConstructorModel.newInstance(ConstructorModel.java:71)
>        ... 41 more

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.ops4j.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

_______________________________________________
qi4j-dev mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/qi4j-dev

Reply via email to