From: <dal...@us...> - 2012-04-26 15:37:58
|
Revision: 21610 http://jedit.svn.sourceforge.net/jedit/?rev=21610&view=rev Author: daleanson Date: 2012-04-26 15:37:48 +0000 (Thu, 26 Apr 2012) Log Message: ----------- Added some SwingUtilities.invokeLater, which helps with some occasional deadlocks. Modified Paths: -------------- plugins/XML/trunk/xml/parser/SchemaAutoLoader.java Modified: plugins/XML/trunk/xml/parser/SchemaAutoLoader.java =================================================================== --- plugins/XML/trunk/xml/parser/SchemaAutoLoader.java 2012-04-26 15:32:16 UTC (rev 21609) +++ plugins/XML/trunk/xml/parser/SchemaAutoLoader.java 2012-04-26 15:37:48 UTC (rev 21610) @@ -21,14 +21,12 @@ import org.xml.sax.InputSource; import org.xml.sax.helpers.XMLFilterImpl; import org.xml.sax.helpers.NamespaceSupport; -import org.xml.sax.ContentHandler; import org.xml.sax.EntityResolver; import org.xml.sax.ext.EntityResolver2; import org.xml.sax.Locator; import org.xml.sax.Attributes; import javax.xml.validation.ValidatorHandler; -import javax.xml.validation.TypeInfoProvider; import java.util.Map; import java.util.Enumeration; @@ -37,6 +35,8 @@ import java.net.URI; import java.net.URISyntaxException; +import javax.swing.SwingUtilities; + import org.gjt.sp.util.Log; import org.gjt.sp.jedit.Buffer; @@ -199,15 +199,22 @@ * @param input input to parse */ @Override - public void parse(InputSource input)throws SAXException,IOException + public void parse(final InputSource input) { - if(DEBUG_SCHEMA_MAPPING)Log.log(Log.DEBUG,SchemaAutoLoader.this,"PARSE input ("+input.getPublicId()+","+input.getSystemId()+")"); - documentElement=true; - publicId = input.getPublicId(); - systemId = input.getSystemId(); - docElementNamespaces.pushContext(); - - super.parse(input); + SwingUtilities.invokeLater(new Runnable() { + public void run() { + if(DEBUG_SCHEMA_MAPPING)Log.log(Log.DEBUG,SchemaAutoLoader.this,"PARSE input ("+input.getPublicId()+","+input.getSystemId()+")"); + documentElement=true; + publicId = input.getPublicId(); + systemId = input.getSystemId(); + docElementNamespaces.pushContext(); + try { + SchemaAutoLoader.super.parse(input); + } + catch(Exception e) { // NOPMD + } + } + } ); } /** @@ -215,15 +222,22 @@ * @param systemId systemId of the input to parse */ @Override - public void parse(String systemId)throws SAXException,IOException + public void parse(final String systemId) { - if(DEBUG_SCHEMA_MAPPING)Log.log(Log.DEBUG,SchemaAutoLoader.this,"PARSE systemId "+systemId); - documentElement=true; - publicId = null; - systemId = systemId; - docElementNamespaces.pushContext(); - - super.parse(systemId); + SwingUtilities.invokeLater(new Runnable() { + public void run() { + if(DEBUG_SCHEMA_MAPPING)Log.log(Log.DEBUG,SchemaAutoLoader.this, "PARSE systemId " + SchemaAutoLoader.this.systemId); + SchemaAutoLoader.this.documentElement=true; + SchemaAutoLoader.this.publicId = null; + SchemaAutoLoader.this.systemId = systemId; + SchemaAutoLoader.this.docElementNamespaces.pushContext(); + try { + SchemaAutoLoader.super.parse(systemId); + } + catch(Exception e) { // NOPMD + } + } + } ); } @Override @@ -259,7 +273,7 @@ //namespaces are off prefix = ""; }else{ - prefix = qName.equals(localName)? "" : qName.substring(0,qName.indexOf(":")); + prefix = qName.equals(localName)? "" : qName.substring(0,qName.indexOf(':')); } String politeSystemId = xml.PathUtilities.pathToURL(systemId); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |