throw parsing exception if top level element is not <repository> (FELIX-1948)

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@891674 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/sigil/common/obr/src/org/apache/felix/sigil/obr/impl/OBRHandler.java b/sigil/common/obr/src/org/apache/felix/sigil/obr/impl/OBRHandler.java
index 860ccb9..8646bba 100644
--- a/sigil/common/obr/src/org/apache/felix/sigil/obr/impl/OBRHandler.java
+++ b/sigil/common/obr/src/org/apache/felix/sigil/obr/impl/OBRHandler.java
@@ -65,6 +65,7 @@
     private Locator locator;
     private ISigilBundle bundle;
     private IPackageExport export;
+    private int depth;
 
 
     public OBRHandler( URL obrURL, File bundleCache, OBRListener listener )
@@ -83,7 +84,10 @@
 
     public void startElement( String uri, String localName, String qName, Attributes attributes ) throws SAXException
     {
-        if ( "resource".equals( qName ) )
+        if ( depth++ == 0 && !"repository".equals( qName ) ) {
+            throw new SAXParseException("Invalid OBR document, expected repository top level element", locator);
+        }
+        else if ( "resource".equals( qName ) )
         {
             startResource( attributes );
         }
@@ -104,6 +108,7 @@
 
     public void endElement( String uri, String localName, String qName ) throws SAXException
     {
+        depth--;
         if ( "resource".equals( qName ) )
         {
             endResource();