You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@karaf.apache.org by "Freeman Fang (Created) (JIRA)" <ji...@apache.org> on 2012/03/31 04:13:26 UTC

[jira] [Created] (KARAF-1300) features managment should be more robust if customer features descriptor file has duplicated feature name

features managment should be more robust if customer features descriptor file has duplicated feature name
---------------------------------------------------------------------------------------------------------

                 Key: KARAF-1300
                 URL: https://issues.apache.org/jira/browse/KARAF-1300
             Project: Karaf
          Issue Type: Improvement
          Components: karaf-feature
            Reporter: Freeman Fang


Today I run into an issue similar with KARAF-1173, I encounter exception like
javax.management.openmbean.KeyAlreadyExistsException: Argument value's index, calculated according to this TabularData instance's tabularType, already refers to a value in this table.
	at javax.management.openmbean.TabularDataSupport.checkValueAndIndex(TabularDataSupport.java:871)
	at javax.management.openmbean.TabularDataSupport.internalPut(TabularDataSupport.java:331)
	at javax.management.openmbean.TabularDataSupport.put(TabularDataSupport.java:323)
	at org.apache.karaf.features.management.codec.JmxFeature.getFeatureIdentifierTable(JmxFeature.java:105)
	at org.apache.karaf.features.management.codec.JmxFeature.<init>(JmxFeature.java:75)
	at org.apache.karaf.features.management.internal.FeaturesServiceMBeanImpl.getFeatures(FeaturesServiceMBeanImpl.java:94)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:93)
	at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:27)
	at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:208)
	at com.sun.jmx.mbeanserver.PerInterface.getAttribute(PerInterface.java:65)
	at com.sun.jmx.mbeanserver.MBeanSupport.getAttribute(MBeanSupport.java:216)
	at com.sun.jmx.mbeanserver.MBeanSupport.getAttributes(MBeanSupport.java:223)

I figured out the root cause is that in jclouds-karaf-1.3.2_1-features.xml,
the jclouds-go2cloud-jhb1 feature has two jclouds feature dependencies like
<feature name='jclouds-go2cloud-jhb1' description='Go2Cloud implementation targeted to Johannesburg1' version='1.3.2_1' resolver='(obr)'>
<feature version='1.3.2_1'>jclouds</feature>
<feature version='1.3.2_1'>jclouds</feature>
<feature version='1.3.2_1'>jclouds-driver-jsch</feature>
<bundle>mvn:org.jclouds.api/elasticstack/1.3.2</bundle>
<bundle>mvn:org.jclouds.provider/go2cloud-jhb1/1.3.2</bundle>
</feature>
there are two jclouds here and hence try to add jclouds twice into mbeans TabularDataSupport which cause KeyAlreadyExistsException
Though this should be fixed in jclouds side, I think the Karaf features management should be more robust to honor this duplicated feature names

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

        

[jira] [Commented] (KARAF-1300) features managment should be more robust if customer features descriptor file has duplicated feature name

Posted by "Freeman Fang (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/KARAF-1300?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13242956#comment-13242956 ] 

Freeman Fang commented on KARAF-1300:
-------------------------------------

I'll also log a issue and contribute a patch on jclouds to fix the duplicated feature name issue anyway
                
> features managment should be more robust if customer features descriptor file has duplicated feature name
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: KARAF-1300
>                 URL: https://issues.apache.org/jira/browse/KARAF-1300
>             Project: Karaf
>          Issue Type: Improvement
>          Components: karaf-feature
>            Reporter: Freeman Fang
>            Assignee: Freeman Fang
>
> Today I run into an issue similar with KARAF-1173, I encounter exception like
> javax.management.openmbean.KeyAlreadyExistsException: Argument value's index, calculated according to this TabularData instance's tabularType, already refers to a value in this table.
> 	at javax.management.openmbean.TabularDataSupport.checkValueAndIndex(TabularDataSupport.java:871)
> 	at javax.management.openmbean.TabularDataSupport.internalPut(TabularDataSupport.java:331)
> 	at javax.management.openmbean.TabularDataSupport.put(TabularDataSupport.java:323)
> 	at org.apache.karaf.features.management.codec.JmxFeature.getFeatureIdentifierTable(JmxFeature.java:105)
> 	at org.apache.karaf.features.management.codec.JmxFeature.<init>(JmxFeature.java:75)
> 	at org.apache.karaf.features.management.internal.FeaturesServiceMBeanImpl.getFeatures(FeaturesServiceMBeanImpl.java:94)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:93)
> 	at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:27)
> 	at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:208)
> 	at com.sun.jmx.mbeanserver.PerInterface.getAttribute(PerInterface.java:65)
> 	at com.sun.jmx.mbeanserver.MBeanSupport.getAttribute(MBeanSupport.java:216)
> 	at com.sun.jmx.mbeanserver.MBeanSupport.getAttributes(MBeanSupport.java:223)
> I figured out the root cause is that in jclouds-karaf-1.3.2_1-features.xml,
> the jclouds-go2cloud-jhb1 feature has two jclouds feature dependencies like
> <feature name='jclouds-go2cloud-jhb1' description='Go2Cloud implementation targeted to Johannesburg1' version='1.3.2_1' resolver='(obr)'>
> <feature version='1.3.2_1'>jclouds</feature>
> <feature version='1.3.2_1'>jclouds</feature>
> <feature version='1.3.2_1'>jclouds-driver-jsch</feature>
> <bundle>mvn:org.jclouds.api/elasticstack/1.3.2</bundle>
> <bundle>mvn:org.jclouds.provider/go2cloud-jhb1/1.3.2</bundle>
> </feature>
> there are two jclouds here and hence try to add jclouds twice into mbeans TabularDataSupport which cause KeyAlreadyExistsException
> Though this should be fixed in jclouds side, I think the Karaf features management should be more robust to honor this duplicated feature names

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

        

[jira] [Work started] (KARAF-1300) features managment should be more robust if customer features descriptor file has duplicated feature name

Posted by "Freeman Fang (Work started) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/KARAF-1300?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Work on KARAF-1300 started by Freeman Fang.

> features managment should be more robust if customer features descriptor file has duplicated feature name
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: KARAF-1300
>                 URL: https://issues.apache.org/jira/browse/KARAF-1300
>             Project: Karaf
>          Issue Type: Improvement
>          Components: karaf-feature
>            Reporter: Freeman Fang
>            Assignee: Freeman Fang
>
> Today I run into an issue similar with KARAF-1173, I encounter exception like
> javax.management.openmbean.KeyAlreadyExistsException: Argument value's index, calculated according to this TabularData instance's tabularType, already refers to a value in this table.
> 	at javax.management.openmbean.TabularDataSupport.checkValueAndIndex(TabularDataSupport.java:871)
> 	at javax.management.openmbean.TabularDataSupport.internalPut(TabularDataSupport.java:331)
> 	at javax.management.openmbean.TabularDataSupport.put(TabularDataSupport.java:323)
> 	at org.apache.karaf.features.management.codec.JmxFeature.getFeatureIdentifierTable(JmxFeature.java:105)
> 	at org.apache.karaf.features.management.codec.JmxFeature.<init>(JmxFeature.java:75)
> 	at org.apache.karaf.features.management.internal.FeaturesServiceMBeanImpl.getFeatures(FeaturesServiceMBeanImpl.java:94)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:93)
> 	at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:27)
> 	at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:208)
> 	at com.sun.jmx.mbeanserver.PerInterface.getAttribute(PerInterface.java:65)
> 	at com.sun.jmx.mbeanserver.MBeanSupport.getAttribute(MBeanSupport.java:216)
> 	at com.sun.jmx.mbeanserver.MBeanSupport.getAttributes(MBeanSupport.java:223)
> I figured out the root cause is that in jclouds-karaf-1.3.2_1-features.xml,
> the jclouds-go2cloud-jhb1 feature has two jclouds feature dependencies like
> <feature name='jclouds-go2cloud-jhb1' description='Go2Cloud implementation targeted to Johannesburg1' version='1.3.2_1' resolver='(obr)'>
> <feature version='1.3.2_1'>jclouds</feature>
> <feature version='1.3.2_1'>jclouds</feature>
> <feature version='1.3.2_1'>jclouds-driver-jsch</feature>
> <bundle>mvn:org.jclouds.api/elasticstack/1.3.2</bundle>
> <bundle>mvn:org.jclouds.provider/go2cloud-jhb1/1.3.2</bundle>
> </feature>
> there are two jclouds here and hence try to add jclouds twice into mbeans TabularDataSupport which cause KeyAlreadyExistsException
> Though this should be fixed in jclouds side, I think the Karaf features management should be more robust to honor this duplicated feature names

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

        

[jira] [Closed] (KARAF-1300) features managment should be more robust if customer features descriptor file has duplicated feature name

Posted by "Jamie goodyear (Closed) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/KARAF-1300?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jamie goodyear closed KARAF-1300.
---------------------------------

    
> features managment should be more robust if customer features descriptor file has duplicated feature name
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: KARAF-1300
>                 URL: https://issues.apache.org/jira/browse/KARAF-1300
>             Project: Karaf
>          Issue Type: Improvement
>          Components: karaf-feature
>            Reporter: Freeman Fang
>            Assignee: Freeman Fang
>             Fix For: 2.2.6, 3.0.0
>
>
> Today I run into an issue similar with KARAF-1173, I encounter exception like
> javax.management.openmbean.KeyAlreadyExistsException: Argument value's index, calculated according to this TabularData instance's tabularType, already refers to a value in this table.
> 	at javax.management.openmbean.TabularDataSupport.checkValueAndIndex(TabularDataSupport.java:871)
> 	at javax.management.openmbean.TabularDataSupport.internalPut(TabularDataSupport.java:331)
> 	at javax.management.openmbean.TabularDataSupport.put(TabularDataSupport.java:323)
> 	at org.apache.karaf.features.management.codec.JmxFeature.getFeatureIdentifierTable(JmxFeature.java:105)
> 	at org.apache.karaf.features.management.codec.JmxFeature.<init>(JmxFeature.java:75)
> 	at org.apache.karaf.features.management.internal.FeaturesServiceMBeanImpl.getFeatures(FeaturesServiceMBeanImpl.java:94)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:93)
> 	at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:27)
> 	at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:208)
> 	at com.sun.jmx.mbeanserver.PerInterface.getAttribute(PerInterface.java:65)
> 	at com.sun.jmx.mbeanserver.MBeanSupport.getAttribute(MBeanSupport.java:216)
> 	at com.sun.jmx.mbeanserver.MBeanSupport.getAttributes(MBeanSupport.java:223)
> I figured out the root cause is that in jclouds-karaf-1.3.2_1-features.xml,
> the jclouds-go2cloud-jhb1 feature has two jclouds feature dependencies like
> <feature name='jclouds-go2cloud-jhb1' description='Go2Cloud implementation targeted to Johannesburg1' version='1.3.2_1' resolver='(obr)'>
> <feature version='1.3.2_1'>jclouds</feature>
> <feature version='1.3.2_1'>jclouds</feature>
> <feature version='1.3.2_1'>jclouds-driver-jsch</feature>
> <bundle>mvn:org.jclouds.api/elasticstack/1.3.2</bundle>
> <bundle>mvn:org.jclouds.provider/go2cloud-jhb1/1.3.2</bundle>
> </feature>
> there are two jclouds here and hence try to add jclouds twice into mbeans TabularDataSupport which cause KeyAlreadyExistsException
> Though this should be fixed in jclouds side, I think the Karaf features management should be more robust to honor this duplicated feature names

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

        

[jira] [Assigned] (KARAF-1300) features managment should be more robust if customer features descriptor file has duplicated feature name

Posted by "Freeman Fang (Assigned) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/KARAF-1300?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Freeman Fang reassigned KARAF-1300:
-----------------------------------

    Assignee: Freeman Fang
    
> features managment should be more robust if customer features descriptor file has duplicated feature name
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: KARAF-1300
>                 URL: https://issues.apache.org/jira/browse/KARAF-1300
>             Project: Karaf
>          Issue Type: Improvement
>          Components: karaf-feature
>            Reporter: Freeman Fang
>            Assignee: Freeman Fang
>
> Today I run into an issue similar with KARAF-1173, I encounter exception like
> javax.management.openmbean.KeyAlreadyExistsException: Argument value's index, calculated according to this TabularData instance's tabularType, already refers to a value in this table.
> 	at javax.management.openmbean.TabularDataSupport.checkValueAndIndex(TabularDataSupport.java:871)
> 	at javax.management.openmbean.TabularDataSupport.internalPut(TabularDataSupport.java:331)
> 	at javax.management.openmbean.TabularDataSupport.put(TabularDataSupport.java:323)
> 	at org.apache.karaf.features.management.codec.JmxFeature.getFeatureIdentifierTable(JmxFeature.java:105)
> 	at org.apache.karaf.features.management.codec.JmxFeature.<init>(JmxFeature.java:75)
> 	at org.apache.karaf.features.management.internal.FeaturesServiceMBeanImpl.getFeatures(FeaturesServiceMBeanImpl.java:94)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:93)
> 	at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:27)
> 	at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:208)
> 	at com.sun.jmx.mbeanserver.PerInterface.getAttribute(PerInterface.java:65)
> 	at com.sun.jmx.mbeanserver.MBeanSupport.getAttribute(MBeanSupport.java:216)
> 	at com.sun.jmx.mbeanserver.MBeanSupport.getAttributes(MBeanSupport.java:223)
> I figured out the root cause is that in jclouds-karaf-1.3.2_1-features.xml,
> the jclouds-go2cloud-jhb1 feature has two jclouds feature dependencies like
> <feature name='jclouds-go2cloud-jhb1' description='Go2Cloud implementation targeted to Johannesburg1' version='1.3.2_1' resolver='(obr)'>
> <feature version='1.3.2_1'>jclouds</feature>
> <feature version='1.3.2_1'>jclouds</feature>
> <feature version='1.3.2_1'>jclouds-driver-jsch</feature>
> <bundle>mvn:org.jclouds.api/elasticstack/1.3.2</bundle>
> <bundle>mvn:org.jclouds.provider/go2cloud-jhb1/1.3.2</bundle>
> </feature>
> there are two jclouds here and hence try to add jclouds twice into mbeans TabularDataSupport which cause KeyAlreadyExistsException
> Though this should be fixed in jclouds side, I think the Karaf features management should be more robust to honor this duplicated feature names

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

        

[jira] [Resolved] (KARAF-1300) features managment should be more robust if customer features descriptor file has duplicated feature name

Posted by "Freeman Fang (Resolved) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/KARAF-1300?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Freeman Fang resolved KARAF-1300.
---------------------------------

       Resolution: Fixed
    Fix Version/s: 3.0.0
                   2.2.6

commit fix
http://svn.apache.org/viewvc?rev=1307697&view=rev on trunk
http://svn.apache.org/viewvc?rev=1307696&view=rev on 2.2.x branch
                
> features managment should be more robust if customer features descriptor file has duplicated feature name
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: KARAF-1300
>                 URL: https://issues.apache.org/jira/browse/KARAF-1300
>             Project: Karaf
>          Issue Type: Improvement
>          Components: karaf-feature
>            Reporter: Freeman Fang
>            Assignee: Freeman Fang
>             Fix For: 2.2.6, 3.0.0
>
>
> Today I run into an issue similar with KARAF-1173, I encounter exception like
> javax.management.openmbean.KeyAlreadyExistsException: Argument value's index, calculated according to this TabularData instance's tabularType, already refers to a value in this table.
> 	at javax.management.openmbean.TabularDataSupport.checkValueAndIndex(TabularDataSupport.java:871)
> 	at javax.management.openmbean.TabularDataSupport.internalPut(TabularDataSupport.java:331)
> 	at javax.management.openmbean.TabularDataSupport.put(TabularDataSupport.java:323)
> 	at org.apache.karaf.features.management.codec.JmxFeature.getFeatureIdentifierTable(JmxFeature.java:105)
> 	at org.apache.karaf.features.management.codec.JmxFeature.<init>(JmxFeature.java:75)
> 	at org.apache.karaf.features.management.internal.FeaturesServiceMBeanImpl.getFeatures(FeaturesServiceMBeanImpl.java:94)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:93)
> 	at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:27)
> 	at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:208)
> 	at com.sun.jmx.mbeanserver.PerInterface.getAttribute(PerInterface.java:65)
> 	at com.sun.jmx.mbeanserver.MBeanSupport.getAttribute(MBeanSupport.java:216)
> 	at com.sun.jmx.mbeanserver.MBeanSupport.getAttributes(MBeanSupport.java:223)
> I figured out the root cause is that in jclouds-karaf-1.3.2_1-features.xml,
> the jclouds-go2cloud-jhb1 feature has two jclouds feature dependencies like
> <feature name='jclouds-go2cloud-jhb1' description='Go2Cloud implementation targeted to Johannesburg1' version='1.3.2_1' resolver='(obr)'>
> <feature version='1.3.2_1'>jclouds</feature>
> <feature version='1.3.2_1'>jclouds</feature>
> <feature version='1.3.2_1'>jclouds-driver-jsch</feature>
> <bundle>mvn:org.jclouds.api/elasticstack/1.3.2</bundle>
> <bundle>mvn:org.jclouds.provider/go2cloud-jhb1/1.3.2</bundle>
> </feature>
> there are two jclouds here and hence try to add jclouds twice into mbeans TabularDataSupport which cause KeyAlreadyExistsException
> Though this should be fixed in jclouds side, I think the Karaf features management should be more robust to honor this duplicated feature names

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

        

[jira] [Commented] (KARAF-1300) features managment should be more robust if customer features descriptor file has duplicated feature name

Posted by "Freeman Fang (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/KARAF-1300?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13242986#comment-13242986 ] 

Freeman Fang commented on KARAF-1300:
-------------------------------------

jclouds side issue[1] to fix the jclouds features.xml

[1]http://code.google.com/p/jclouds/issues/detail?id=892
                
> features managment should be more robust if customer features descriptor file has duplicated feature name
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: KARAF-1300
>                 URL: https://issues.apache.org/jira/browse/KARAF-1300
>             Project: Karaf
>          Issue Type: Improvement
>          Components: karaf-feature
>            Reporter: Freeman Fang
>            Assignee: Freeman Fang
>             Fix For: 2.2.6, 3.0.0
>
>
> Today I run into an issue similar with KARAF-1173, I encounter exception like
> javax.management.openmbean.KeyAlreadyExistsException: Argument value's index, calculated according to this TabularData instance's tabularType, already refers to a value in this table.
> 	at javax.management.openmbean.TabularDataSupport.checkValueAndIndex(TabularDataSupport.java:871)
> 	at javax.management.openmbean.TabularDataSupport.internalPut(TabularDataSupport.java:331)
> 	at javax.management.openmbean.TabularDataSupport.put(TabularDataSupport.java:323)
> 	at org.apache.karaf.features.management.codec.JmxFeature.getFeatureIdentifierTable(JmxFeature.java:105)
> 	at org.apache.karaf.features.management.codec.JmxFeature.<init>(JmxFeature.java:75)
> 	at org.apache.karaf.features.management.internal.FeaturesServiceMBeanImpl.getFeatures(FeaturesServiceMBeanImpl.java:94)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:93)
> 	at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:27)
> 	at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:208)
> 	at com.sun.jmx.mbeanserver.PerInterface.getAttribute(PerInterface.java:65)
> 	at com.sun.jmx.mbeanserver.MBeanSupport.getAttribute(MBeanSupport.java:216)
> 	at com.sun.jmx.mbeanserver.MBeanSupport.getAttributes(MBeanSupport.java:223)
> I figured out the root cause is that in jclouds-karaf-1.3.2_1-features.xml,
> the jclouds-go2cloud-jhb1 feature has two jclouds feature dependencies like
> <feature name='jclouds-go2cloud-jhb1' description='Go2Cloud implementation targeted to Johannesburg1' version='1.3.2_1' resolver='(obr)'>
> <feature version='1.3.2_1'>jclouds</feature>
> <feature version='1.3.2_1'>jclouds</feature>
> <feature version='1.3.2_1'>jclouds-driver-jsch</feature>
> <bundle>mvn:org.jclouds.api/elasticstack/1.3.2</bundle>
> <bundle>mvn:org.jclouds.provider/go2cloud-jhb1/1.3.2</bundle>
> </feature>
> there are two jclouds here and hence try to add jclouds twice into mbeans TabularDataSupport which cause KeyAlreadyExistsException
> Though this should be fixed in jclouds side, I think the Karaf features management should be more robust to honor this duplicated feature names

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