Search in sources :

Example 1 with ParseErrorCollector

use of org.eclipse.rdf4j.rio.helpers.ParseErrorCollector in project rdf4j by eclipse.

the class SPARQLXMLParserCustomTest method testEntityExpansionNoSecureProcessing.

/**
 * Test with Secure processing setting off.
 * <p>
 * IMPORTANT: Only turn this on to verify it is still working, as there is
 * no way to safely perform this test.
 * <p>
 * WARNING: This test will cause an OutOfMemoryException when it eventually
 * fails, as it will eventually fail.
 *
 * @throws Exception
 */
@Ignore
@Test(timeout = 10000)
public void testEntityExpansionNoSecureProcessing() throws Exception {
    QueryResultCollector handler = new QueryResultCollector();
    ParseErrorCollector errorCollector = new ParseErrorCollector();
    QueryResultParser aParser = QueryResultIO.createTupleParser(TupleQueryResultFormat.SPARQL).setQueryResultHandler(handler).set(XMLParserSettings.SECURE_PROCESSING, false).setParseErrorListener(errorCollector);
    try {
        // IMPORTANT: This will not use the entity limit
        aParser.parseQueryResult(this.getClass().getResourceAsStream("/sparqlxml/bad-entity-expansion-limit.srx"));
        fail("Parser did not throw an exception");
    } catch (QueryResultParseException e) {
    // assertTrue(e.getMessage().contains(
    // "The parser has encountered more than \"64,000\" entity
    // expansions in this document; this is the limit imposed by the"));
    }
    assertEquals(0, errorCollector.getWarnings().size());
    assertEquals(0, errorCollector.getErrors().size());
    assertEquals(1, errorCollector.getFatalErrors().size());
}
Also used : QueryResultParser(org.eclipse.rdf4j.query.resultio.QueryResultParser) QueryResultParseException(org.eclipse.rdf4j.query.resultio.QueryResultParseException) ParseErrorCollector(org.eclipse.rdf4j.rio.helpers.ParseErrorCollector) QueryResultCollector(org.eclipse.rdf4j.query.resultio.helpers.QueryResultCollector) Ignore(org.junit.Ignore) Test(org.junit.Test)

Example 2 with ParseErrorCollector

use of org.eclipse.rdf4j.rio.helpers.ParseErrorCollector in project rdf4j by eclipse.

the class TriXParserTest method setUp.

@Before
public void setUp() throws Exception {
    platformLocale = Locale.getDefault();
    Locale.setDefault(Locale.ENGLISH);
    vf = SimpleValueFactory.getInstance();
    parser = new TriXParser();
    sc = new StatementCollector();
    parser.setRDFHandler(sc);
    el = new ParseErrorCollector();
    parser.setParseErrorListener(el);
}
Also used : StatementCollector(org.eclipse.rdf4j.rio.helpers.StatementCollector) ParseErrorCollector(org.eclipse.rdf4j.rio.helpers.ParseErrorCollector) Before(org.junit.Before)

Example 3 with ParseErrorCollector

use of org.eclipse.rdf4j.rio.helpers.ParseErrorCollector in project rdf4j by eclipse.

the class TriGParserCustomTest method setUp.

/**
 * @throws java.lang.Exception
 */
@Before
public void setUp() throws Exception {
    vf = SimpleValueFactory.getInstance();
    settingsNoVerifyLangTag = new ParserConfig();
    settingsNoVerifyLangTag.set(BasicParserSettings.VERIFY_LANGUAGE_TAGS, false);
    errors = new ParseErrorCollector();
    parser = Rio.createParser(RDFFormat.TRIG);
    statementCollector = new StatementCollector(new LinkedHashModel());
    parser.setRDFHandler(statementCollector);
}
Also used : StatementCollector(org.eclipse.rdf4j.rio.helpers.StatementCollector) ParseErrorCollector(org.eclipse.rdf4j.rio.helpers.ParseErrorCollector) LinkedHashModel(org.eclipse.rdf4j.model.impl.LinkedHashModel) ParserConfig(org.eclipse.rdf4j.rio.ParserConfig) Before(org.junit.Before)

Example 4 with ParseErrorCollector

use of org.eclipse.rdf4j.rio.helpers.ParseErrorCollector in project rdf4j by eclipse.

the class RDFXMLParserCustomTest method testEntityExpansionNoSecureProcessing.

/**
 * Test with Secure processing setting off.
 * <p>
 * IMPORTANT: Only turn this on to verify it is still working, as there is no way to safely perform this
 * test.
 * <p>
 * WARNING: This test will cause an OutOfMemoryException when it eventually fails, as it will eventually
 * fail.
 *
 * @throws Exception
 */
@Ignore
@Test(timeout = 10000)
public void testEntityExpansionNoSecureProcessing() throws Exception {
    final Model aGraph = new LinkedHashModel();
    ParseErrorCollector errorCollector = new ParseErrorCollector();
    RDFParser aParser = Rio.createParser(RDFFormat.RDFXML).setRDFHandler(new StatementCollector(aGraph)).set(XMLParserSettings.SECURE_PROCESSING, false).setParseErrorListener(errorCollector);
    try {
        // IMPORTANT: This will not use the entity limit
        aParser.parse(this.getClass().getResourceAsStream("/testcases/rdfxml/openrdf/bad-entity-expansion-limit.rdf"), "http://example.org");
        fail("Parser did not throw an exception");
    } catch (RDFParseException e) {
    // assertTrue(e.getMessage().contains(
    // "The parser has encountered more than \"64,000\" entity expansions in this document; this is the limit imposed by the"));
    }
    assertEquals(0, errorCollector.getWarnings().size());
    assertEquals(0, errorCollector.getErrors().size());
    assertEquals(1, errorCollector.getFatalErrors().size());
}
Also used : StatementCollector(org.eclipse.rdf4j.rio.helpers.StatementCollector) LinkedHashModel(org.eclipse.rdf4j.model.impl.LinkedHashModel) Model(org.eclipse.rdf4j.model.Model) ParseErrorCollector(org.eclipse.rdf4j.rio.helpers.ParseErrorCollector) LinkedHashModel(org.eclipse.rdf4j.model.impl.LinkedHashModel) RDFParser(org.eclipse.rdf4j.rio.RDFParser) RDFParseException(org.eclipse.rdf4j.rio.RDFParseException) Ignore(org.junit.Ignore) Test(org.junit.Test)

Example 5 with ParseErrorCollector

use of org.eclipse.rdf4j.rio.helpers.ParseErrorCollector in project rdf4j by eclipse.

the class CustomTurtleParserTest method setUp.

/**
 * @throws java.lang.Exception
 */
@Before
public void setUp() throws Exception {
    vf = ValueFactoryImpl.getInstance();
    settingsNoVerifyLangTag = new ParserConfig();
    settingsNoVerifyLangTag.set(BasicParserSettings.VERIFY_LANGUAGE_TAGS, false);
    errors = new ParseErrorCollector();
    parser = Rio.createParser(RDFFormat.TURTLE);
    statementCollector = new StatementCollector(new LinkedHashModel());
    parser.setRDFHandler(statementCollector);
}
Also used : StatementCollector(org.eclipse.rdf4j.rio.helpers.StatementCollector) ParseErrorCollector(org.eclipse.rdf4j.rio.helpers.ParseErrorCollector) LinkedHashModel(org.eclipse.rdf4j.model.impl.LinkedHashModel) ParserConfig(org.eclipse.rdf4j.rio.ParserConfig) Before(org.junit.Before)

Aggregations

ParseErrorCollector (org.eclipse.rdf4j.rio.helpers.ParseErrorCollector)14 StatementCollector (org.eclipse.rdf4j.rio.helpers.StatementCollector)9 Test (org.junit.Test)9 LinkedHashModel (org.eclipse.rdf4j.model.impl.LinkedHashModel)7 ParserConfig (org.eclipse.rdf4j.rio.ParserConfig)6 Model (org.eclipse.rdf4j.model.Model)5 Before (org.junit.Before)5 QueryResultParseException (org.eclipse.rdf4j.query.resultio.QueryResultParseException)4 QueryResultParser (org.eclipse.rdf4j.query.resultio.QueryResultParser)4 QueryResultCollector (org.eclipse.rdf4j.query.resultio.helpers.QueryResultCollector)4 RDFParseException (org.eclipse.rdf4j.rio.RDFParseException)4 RDFParser (org.eclipse.rdf4j.rio.RDFParser)4 Ignore (org.junit.Ignore)2 Statement (org.eclipse.rdf4j.model.Statement)1 RioSetting (org.eclipse.rdf4j.rio.RioSetting)1