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