--- projects/cms/source/server/uk/org/iscream/cms/server/filter/FilterThread.java 2001/02/12 00:45:57 1.24 +++ projects/cms/source/server/uk/org/iscream/cms/server/filter/FilterThread.java 2001/03/01 16:53:24 1.25 @@ -19,7 +19,7 @@ import uk.ac.ukc.iscream.util.*; * waiting to be contacted. * * @author $Author: tdb $ - * @version $Id: FilterThread.java,v 1.24 2001/02/12 00:45:57 tdb Exp $ + * @version $Id: FilterThread.java,v 1.25 2001/03/01 16:53:24 tdb Exp $ */ public class FilterThread extends Thread{ @@ -28,7 +28,7 @@ public class FilterThread extends Thread{ /** * The current CVS revision of this class */ - public final String REVISION = "$Revision: 1.24 $"; + public final String REVISION = "$Revision: 1.25 $"; //---STATIC METHODS--- @@ -84,24 +84,24 @@ public class FilterThread extends Thread{ } // Use XMLPacketMaker to make an XMLPacket object. - XMLPacketMaker xmlPacketMaker = new XMLPacketMaker(xml); - XMLPacket packet = xmlPacketMaker.createXMLPacket(); - - if(packet != null) { - // packet is not null - // packet was not dropped by a plugin - // ... best pass it on ! - if(PluginFilterManager.getInstance().runFilters(packet)) { - _parent.receiveXML(xml); - } - else { - // we filtered it - _logger.write(toString(), Logger.DEBUG, "An XML packet was sucessfully filtered from the system."); - } + XMLPacket packet = null; + try { + XMLPacketMaker xmlPacketMaker = new XMLPacketMaker(xml); + packet = xmlPacketMaker.createXMLPacket(); + } catch(InvalidXMLException e) { + _logger.write(toString(), Logger.ERROR, "Invalid XML: "+e); + // skip the rest of this loop iteration + continue; } + + // XMLPacket is ok, so run filters... + if(PluginFilterManager.getInstance().runFilters(packet)) { + // and pass it on... + _parent.receiveXML(xml); + } else { - // we had a null - _logger.write(toString(), Logger.DEBUG, "A packet containing ill-parsing XML was rejected."); + // ... or filtered it + _logger.write(toString(), Logger.DEBUG, "An XML packet was sucessfully filtered from the system."); } } }