Merge pull request #9 from stbischof/conv_int_empt

Convert to Interface without methods - FELIX-6238
diff --git a/converter/converter/src/main/java/org/osgi/util/converter/ConvertingImpl.java b/converter/converter/src/main/java/org/osgi/util/converter/ConvertingImpl.java
index fc409d2..c9e3722 100644
--- a/converter/converter/src/main/java/org/osgi/util/converter/ConvertingImpl.java
+++ b/converter/converter/src/main/java/org/osgi/util/converter/ConvertingImpl.java
@@ -1126,11 +1126,15 @@
 		Set<Class< ? >> interfaces = getInterfaces0(cls);
 		outer: for (Iterator<Class< ? >> it = interfaces.iterator(); it.hasNext();) {
 			Class< ? > intf = it.next();
-			for (Method method : intf.getMethods()) {
+			Method[] methods=intf.getMethods();
+			for (Method method : methods) {
 				if(method.getDeclaringClass() == intf) {
 					continue outer;
 				}
 			}
+			if(intf==cls&&methods.length==0) {
+			    continue outer;
+			}
 			it.remove();
 		}
 
diff --git a/converter/converter/src/test/java/org/osgi/util/converter/ConverterTest.java b/converter/converter/src/test/java/org/osgi/util/converter/ConverterTest.java
index 9b4615e..ef00c13 100644
--- a/converter/converter/src/test/java/org/osgi/util/converter/ConverterTest.java
+++ b/converter/converter/src/test/java/org/osgi/util/converter/ConverterTest.java
@@ -1451,11 +1451,40 @@
         assertEquals(Integer.valueOf(0), inter.value());
     }
 
+    @Test
+    public void testMapToEmptyInterface() throws Exception {
+        Map<String, Object> map = new HashMap<String, Object>();
+        map.put("a", "b");
+        EmptyInterface i = Converters.standardConverter().convert(map).to(EmptyInterface.class);
+        assertNotNull(i);
+
+        EmptyInterface2 j = Converters.standardConverter().convert(map).to(EmptyInterface2.class);
+        assertNotNull(j);
+
+        EmptyInterface3 k = Converters.standardConverter().convert(map).to(EmptyInterface3.class);
+        assertNotNull(k);
+    }
+
     static interface MyIntf2 {
         String code();
         Integer value();
     }
 
+    static interface EmptyInterface
+    {
+    }
+
+    static interface EmptyInterface2 extends EmptyInterface
+    {
+    }
+    static interface NonEmptyInterface
+    {
+       int a();
+    }
+
+    static interface EmptyInterface3 extends NonEmptyInterface
+    {
+    }
     static class MyClass2 {
         private final String value;
         public MyClass2(String v) {