diff --git a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/FileMetadataProvider.java b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/FileMetadataProvider.java
index a928205..18d851b 100644
--- a/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/FileMetadataProvider.java
+++ b/ipojo/manipulator/manipulator/src/main/java/org/apache/felix/ipojo/manipulator/metadata/FileMetadataProvider.java
@@ -95,14 +95,10 @@
             // Sanity check, should be OK, but we never know ...
             InputStream stream = null;
             URL url = file.toURI().toURL();
-            if (url == null) {
-                m_reporter.warn("Cannot find the metadata file : " + m_source.getAbsolutePath());
-            } else {
-                stream = url.openStream();
-                StreamMetadataProvider provider = new StreamMetadataProvider(stream, m_reporter);
-                provider.setValidateUsingLocalSchemas(m_validateUsingLocalSchemas);
-                metadata.addAll(provider.getMetadatas());
-            }
+            stream = url.openStream();
+            StreamMetadataProvider provider = new StreamMetadataProvider(stream, m_reporter);
+            provider.setValidateUsingLocalSchemas(m_validateUsingLocalSchemas);
+            metadata.addAll(provider.getMetadatas());
         } catch (MalformedURLException e) {
             m_reporter.error("Cannot open the metadata input stream from " + m_source.getAbsolutePath() + ": " + e.getMessage());
         } catch (IOException e) {
diff --git a/ipojo/runtime/core/pom.xml b/ipojo/runtime/core/pom.xml
index c34a5bb..e6a7c52 100644
--- a/ipojo/runtime/core/pom.xml
+++ b/ipojo/runtime/core/pom.xml
@@ -186,7 +186,7 @@
                             org.apache.felix.ipojo.handlers.configuration; version="${ipojo.package.version}",
                             org.apache.felix.ipojo.context; version="${ipojo.package.version}",
                             org.apache.felix.ipojo.dependency.interceptors; version="${ipojo.package.version}",
-                            org.apache.felix.ipojo.annotations; version="${ipojo.package.version},
+                            org.apache.felix.ipojo.annotations; version="${ipojo.package.version}",
                             <!-- Compendium packages -->
                             org.osgi.service.cm; version=1.3,
                             org.osgi.service.log; version=1.3
