While that is a simple change it is a breaking change behaviourally. You go from a situation where a user gets an explicit error message that they can do something about to a situation where some aspects of invalid configurations are silently ignored. For complex configurations this may lead to all sorts of subtle and invisible errors which uses could waste far more time trying to track down than if they had just received an error as they do currently.
Rob On 20/10/2017 07:07, "Laura Morales" <[email protected]> wrote: The problem is here: https://github.com/apache/jena/blob/cc038809fb622779933831011909714e22ef494c/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetAssembler.java#L79 This is a for() loop reading all the RDFNode in the configuration file. The "gName" variable corresponds to the "namedGraph" setting, and the "g" variable to the "graph" setting. When the execution reaches line #79 Model m = a.openModel(g); this (I guess) calls the "open" method overridden by hdt-java open(). So, if I return null, "Model m" will be null which is probably causing problems with the next line, ds.addNamedModel(gName, m); I think this should be the correct behavior instead: Model m = a.openModel(g); if (m != null) ds.addNamedModel(gName, m); it's just 1 additional line :) This way, if the custom assembler returned ModelFactory.createModelForGraph(null) or return ModelFactory.createDefaultModel(), Fuseki will create a new but empty graph in the dataset. If instead the custom assembler open() function returns null, the model is not added at all. What do you think? I haven't tried this because I don't know how to compile Jena/Fuseki, but I'm confident that it should work. Could somebody who knows how to compile Jena try this? Thanks! Subject: Re: Fuseki+HDT graceful "File not found" > I've put a check here, in the "open" function: > > if(!new File(file).isFile()) > return null; In the file HDTGraphAssembler.java, adding these lines before the try..catch block seems to work, more or less... if (!new File (file).isFile ()) return ModelFactory.createModelForGraph (null); I've tried this, and it looks like it creates an empty graph. That is, I find the new graph in the dataset, but it's empty, no triples. I don't know if or how it's possible to skip the entire graph entirely, such that not even an empty graph is added to the dataset.
