You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "David Bosschaert (JIRA)" <ji...@apache.org> on 2019/01/21 11:58:00 UTC
[jira] [Resolved] (FELIX-6020) Converter could not convert to
Interfaces, which only has methods from inherited Interfaces
[ https://issues.apache.org/jira/browse/FELIX-6020?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
David Bosschaert resolved FELIX-6020.
-------------------------------------
Resolution: Fixed
Assignee: David Bosschaert
Fix Version/s: converter-1.0.4
Resolved with FELIX-6031
> Converter could not convert to Interfaces, which only has methods from inherited Interfaces
> -------------------------------------------------------------------------------------------
>
> Key: FELIX-6020
> URL: https://issues.apache.org/jira/browse/FELIX-6020
> Project: Felix
> Issue Type: Bug
> Components: Converter
> Affects Versions: converter-1.0.2
> Reporter: Stefan Bischof
> Assignee: David Bosschaert
> Priority: Major
> Fix For: converter-1.0.4
>
>
> Hi,
> the Converter could not convert to an Interfaces, when the Interface only has methods from inherited other Interfaces.
> Here is a TestCase:
> {code:java}
> import static org.junit.Assert.assertEquals;
> import java.util.HashMap;
> import java.util.Map;
> import org.junit.Test;
> import org.osgi.util.converter.Converter;
> import org.osgi.util.converter.Converters;
> public class ConvTest {
> interface InterfaceFoo {
> String foo();
> }
> interface InterfaceFooBar extends InterfaceFoo {
> String bar();
> }
> interface InterfaceFooNon extends InterfaceFoo {
> // Empty
> }
> private static final String fooValue = "foofoo";
> private static final String barValue = "barbar";
> final Converter converter = Converters.standardConverter();
> @Test
> public void testFooPure() throws Exception {
> final Map<String, Object> map = new HashMap<String, Object>();
> map.put("foo", fooValue);
> final InterfaceFoo iFoo = converter.convert(map).to(InterfaceFoo.class);
> assertEquals(fooValue, iFoo.foo());
> }
> @Test
> public void testFooBar() throws Exception {
> final Map<String, Object> map = new HashMap<String, Object>();
> map.put("foo", fooValue);
> map.put("bar", barValue);
> final InterfaceFooBar iFooBar = converter.convert(map).to(InterfaceFooBar.class);
> assertEquals(fooValue, iFooBar.foo());
> assertEquals(barValue, iFooBar.bar());
> }
> @Test
> public void testFooNon() throws Exception {
> final Map<String, Object> map = new HashMap<String, Object>();
> map.put("foo", fooValue);
> final InterfaceFooNon iFooNon = converter.convert(map).to(InterfaceFooNon.class);
> assertEquals(fooValue, iFooNon.foo());
> }
> }{code}
>
>
> Stacktrace
> {code:java}
> org.osgi.util.converter.ConversionException: Cannot convert foo to interface de.jena.servicehub.doc.latex.itest.ConvTest$InterfaceFooNon
> at org.osgi.util.converter.ConvertingImpl.to(ConvertingImpl.java:212)
> at org.osgi.util.converter.CustomConverterImpl$ConvertingWrapper.to(CustomConverterImpl.java:176)
> at org.osgi.util.converter.CustomConverterImpl$ConvertingWrapper.to(CustomConverterImpl.java:139)
> at org.osgi.util.converter.ConvertingImpl.convertMapEntryToSingleValue(ConvertingImpl.java:260)
> at org.osgi.util.converter.ConvertingImpl.to(ConvertingImpl.java:197)
> at org.osgi.util.converter.CustomConverterImpl$ConvertingWrapper.to(CustomConverterImpl.java:176)
> at org.osgi.util.converter.CustomConverterImpl$ConvertingWrapper.to(CustomConverterImpl.java:139)
> at org.osgi.util.converter.ConvertingImpl.convertMapToSingleValue(ConvertingImpl.java:236)
> at org.osgi.util.converter.ConvertingImpl.to(ConvertingImpl.java:195)
> at org.osgi.util.converter.CustomConverterImpl$ConvertingWrapper.to(CustomConverterImpl.java:176)
> at org.osgi.util.converter.CustomConverterImpl$ConvertingWrapper.to(CustomConverterImpl.java:139)
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)