NIHVIVO-3810 intercepting RDFService.close() when using a factory with single service instance
This commit is contained in:
parent
ffce3efe91
commit
0b014fb3de
2 changed files with 100 additions and 2 deletions
|
@ -152,7 +152,9 @@ public class WebappDaoFactorySDB extends WebappDaoFactoryJena {
|
|||
@Override
|
||||
public void close() {
|
||||
super.close();
|
||||
//this.rdfService.close();
|
||||
if (this.rdfService != null) {
|
||||
this.rdfService.close();
|
||||
}
|
||||
}
|
||||
|
||||
private class ReconnectingDatasetFactory implements DatasetWrapperFactory {
|
||||
|
|
|
@ -2,7 +2,11 @@
|
|||
|
||||
package edu.cornell.mannlib.vitro.webapp.rdfservice.impl;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.List;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.ChangeListener;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.ChangeSet;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceException;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceFactory;
|
||||
|
@ -17,7 +21,7 @@ public class RDFServiceFactorySingle implements RDFServiceFactory {
|
|||
private RDFService rdfService;
|
||||
|
||||
public RDFServiceFactorySingle(RDFService rdfService) {
|
||||
this.rdfService = rdfService;
|
||||
this.rdfService = new UnclosableRDFService(rdfService);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -34,5 +38,97 @@ public class RDFServiceFactorySingle implements RDFServiceFactory {
|
|||
public void unregisterListener(ChangeListener listener) throws RDFServiceException {
|
||||
this.rdfService.unregisterListener(listener);
|
||||
}
|
||||
|
||||
public class UnclosableRDFService implements RDFService {
|
||||
|
||||
private RDFService s;
|
||||
|
||||
public UnclosableRDFService(RDFService rdfService) {
|
||||
this.s = rdfService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean changeSetUpdate(ChangeSet changeSet)
|
||||
throws RDFServiceException {
|
||||
return s.changeSetUpdate(changeSet);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void newIndividual(String individualURI, String individualTypeURI)
|
||||
throws RDFServiceException {
|
||||
s.newIndividual(individualURI, individualTypeURI);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void newIndividual(String individualURI,
|
||||
String individualTypeURI, String graphURI)
|
||||
throws RDFServiceException {
|
||||
s.newIndividual(individualURI, individualTypeURI, graphURI);
|
||||
}
|
||||
|
||||
@Override
|
||||
public InputStream sparqlConstructQuery(String query,
|
||||
ModelSerializationFormat resultFormat)
|
||||
throws RDFServiceException {
|
||||
return s.sparqlConstructQuery(query, resultFormat);
|
||||
}
|
||||
|
||||
@Override
|
||||
public InputStream sparqlDescribeQuery(String query,
|
||||
ModelSerializationFormat resultFormat)
|
||||
throws RDFServiceException {
|
||||
return s.sparqlDescribeQuery(query, resultFormat);
|
||||
}
|
||||
|
||||
@Override
|
||||
public InputStream sparqlSelectQuery(String query,
|
||||
ResultFormat resultFormat) throws RDFServiceException {
|
||||
return s.sparqlSelectQuery(query, resultFormat);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean sparqlAskQuery(String query) throws RDFServiceException {
|
||||
return s.sparqlAskQuery(query);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getGraphURIs() throws RDFServiceException {
|
||||
return s.getGraphURIs();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getGraphMetadata() throws RDFServiceException {
|
||||
s.getGraphMetadata();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDefaultWriteGraphURI() throws RDFServiceException {
|
||||
return s.getDefaultWriteGraphURI();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerListener(ChangeListener changeListener)
|
||||
throws RDFServiceException {
|
||||
s.registerListener(changeListener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unregisterListener(ChangeListener changeListener)
|
||||
throws RDFServiceException {
|
||||
s.unregisterListener(changeListener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ChangeSet manufactureChangeSet() {
|
||||
return s.manufactureChangeSet();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() {
|
||||
// Don't close s. It's being used by everybody.
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue