Author: dsavage
Date: Thu Dec 17 12:39:43 2009
New Revision: 891674

URL: http://svn.apache.org/viewvc?rev=891674&view=rev
Log:
throw parsing exception if top level element is not <repository> (FELIX-1948)

Modified:
    
felix/trunk/sigil/common/obr/src/org/apache/felix/sigil/obr/impl/OBRHandler.java

Modified: 
felix/trunk/sigil/common/obr/src/org/apache/felix/sigil/obr/impl/OBRHandler.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/sigil/common/obr/src/org/apache/felix/sigil/obr/impl/OBRHandler.java?rev=891674&r1=891673&r2=891674&view=diff
==============================================================================
--- 
felix/trunk/sigil/common/obr/src/org/apache/felix/sigil/obr/impl/OBRHandler.java
 (original)
+++ 
felix/trunk/sigil/common/obr/src/org/apache/felix/sigil/obr/impl/OBRHandler.java
 Thu Dec 17 12:39:43 2009
@@ -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();


Reply via email to