Skip to content

Commit bd859f0

Browse files
Ensure consistent XML parser config (#983)
* Ensure consistent XML parser config * Flow needs DocType
1 parent df9f354 commit bd859f0

5 files changed

Lines changed: 10 additions & 383 deletions

File tree

flow/enginesrc/org/labkey/flow/analysis/model/FlowJoWorkspace.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,13 @@
1717
package org.labkey.flow.analysis.model;
1818

1919
import org.apache.commons.lang3.StringUtils;
20+
import org.apache.logging.log4j.Logger;
2021
import org.jetbrains.annotations.Nullable;
2122
import org.junit.Assert;
2223
import org.junit.Test;
2324
import org.labkey.api.util.JunitUtil;
2425
import org.labkey.api.util.VersionNumber;
26+
import org.labkey.api.util.logging.LogHelper;
2527
import org.labkey.flow.analysis.web.FCSAnalyzer;
2628
import org.labkey.flow.analysis.web.GraphSpec;
2729
import org.labkey.flow.analysis.web.StatisticSpec;
@@ -44,6 +46,8 @@
4446

4547
abstract public class FlowJoWorkspace extends Workspace
4648
{
49+
public static final Logger LOG = LogHelper.getLogger(FlowJoWorkspace.class, "FlowJo workspace parsing");
50+
4751
static Map<String, StatisticSpec.STAT> STATS = new HashMap<>();
4852
static
4953
{

flow/enginesrc/org/labkey/flow/analysis/model/WorkspaceParser.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
*/
1616
package org.labkey.flow.analysis.model;
1717

18-
import org.apache.logging.log4j.LogManager;
1918
import org.apache.xerces.impl.Constants;
2019
import org.apache.xerces.parsers.DOMParser;
2120
import org.apache.xerces.util.SymbolTable;
@@ -24,6 +23,7 @@
2423
import org.apache.xerces.xni.QName;
2524
import org.apache.xerces.xni.XMLLocator;
2625
import org.apache.xerces.xni.XNIException;
26+
import org.labkey.api.util.XmlBeansUtil;
2727
import org.w3c.dom.Attr;
2828
import org.w3c.dom.Document;
2929
import org.w3c.dom.Element;
@@ -41,7 +41,6 @@
4141
import org.xml.sax.helpers.DefaultHandler;
4242

4343
import javax.xml.parsers.SAXParser;
44-
import javax.xml.parsers.SAXParserFactory;
4544
import java.io.File;
4645
import java.io.IOException;
4746
import java.io.InputStream;
@@ -135,13 +134,14 @@ static public boolean isFlowJoWorkspace(File file)
135134
WorkspaceRecognizer recognizer = new WorkspaceRecognizer();
136135
try
137136
{
138-
SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
137+
SAXParser parser = XmlBeansUtil.SAX_PARSER_FACTORY_ALLOWING_DOCTYPE.newSAXParser();
139138

140139
parser.parse(file, recognizer);
141140
}
142141
catch (Exception e)
143142
{
144143
// suppress
144+
FlowJoWorkspace.LOG.debug("Unexpected error", e);
145145
}
146146
return recognizer.isWorkspace();
147147
}
@@ -371,7 +371,6 @@ public void fatalError(SAXParseException exception) throws SAXException
371371
static class FJParseFilter implements LSParserFilter
372372
{
373373
SymbolTable fSymbolTable = new SymbolTable();
374-
Set<String> rejected = new HashSet<>();
375374

376375
@Override
377376
public short startElement(Element element)
@@ -385,7 +384,6 @@ public short startElement(Element element)
385384
else if (nsURI != null && (GATINGML_1_5_NAMESPACES.contains(nsURI) || FJ_GATINGML_1_5_NAMEPSACE_FIXUP.containsKey(nsURI) || GATINGML_2_0_NAMESPACES.contains(nsURI)))
386385
filter = FILTER_ACCEPT;
387386

388-
// if (filter != FILTER_ACCEPT && rejected.add(element.getNodeName())) System.err.println((filter == FILTER_SKIP ? "SKIPPED: " : "REJECTED: ") + element.getNodeName());
389387
return filter;
390388
}
391389

@@ -457,7 +455,7 @@ static FJDOMParser create()
457455
{
458456
super(st);
459457
fSymbolTable = st;
460-
fSkippedElemStack = new Stack();
458+
fSkippedElemStack = new Stack<>();
461459
fDOMFilter = new FJParseFilter();
462460
try
463461
{
@@ -516,7 +514,7 @@ public void parse(InputSource inputSource) throws SAXException, IOException
516514
}
517515
catch (RuntimeException x)
518516
{
519-
LogManager.getLogger(FlowJoWorkspace.class).error("Unexpected error", x);
517+
FlowJoWorkspace.LOG.error("Unexpected error", x);
520518
throw x;
521519
}
522520
}

ms2/src/org/labkey/ms2/reader/Q3AnalysisSummary.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
*/
1616
package org.labkey.ms2.reader;
1717

18-
import org.labkey.ms2.reader.SimpleXMLEventRewriter;
1918
import org.labkey.api.reader.SimpleXMLStreamReader;
2019

2120
import org.apache.logging.log4j.Logger;

0 commit comments

Comments
 (0)