You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ds...@apache.org on 2009/12/17 13:40:00 UTC

svn commit: r891674 - /felix/trunk/sigil/common/obr/src/org/apache/felix/sigil/obr/impl/OBRHandler.java

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();