Author: ivol37 at gmail.com
Date: Mon Jan 24 10:36:27 2011
New Revision: 690
Log:
[AMDATU-275] Fixed warnings by explicitly closing repository models after
retrieving them
Modified:
trunk/amdatu-example/course-service/src/main/java/org/amdatu/example/course/service/service/CourseOntologyDataProvider.java
trunk/amdatu-example/course-service/src/main/java/org/amdatu/example/course/service/service/CourseServiceImpl.java
trunk/amdatu-semanticweb/sesame/src/main/java/org/amdatu/semanticweb/sesame/SesameService.java
trunk/amdatu-semanticweb/sesame/src/main/java/org/amdatu/semanticweb/sesame/service/SesameServiceImpl.java
trunk/amdatu-semanticweb/sparqlendpoint/src/main/java/org/amdatu/semanticweb/sparqlendpoint/service/SPARQLEndpointServiceImpl.java
Modified:
trunk/amdatu-example/course-service/src/main/java/org/amdatu/example/course/service/service/CourseOntologyDataProvider.java
==============================================================================
---
trunk/amdatu-example/course-service/src/main/java/org/amdatu/example/course/service/service/CourseOntologyDataProvider.java
(original)
+++
trunk/amdatu-example/course-service/src/main/java/org/amdatu/example/course/service/service/CourseOntologyDataProvider.java
Mon Jan 24 10:36:27 2011
@@ -103,8 +103,13 @@
+ "'");
}
- ModelUtils.loadFromFile(ConversionUtil.urlToFile(rdfsUrl),
Syntax.RdfXml, m_modelSet.getDefaultModel());
- ModelUtils.loadFromFile(ConversionUtil.urlToFile(rdfUrl),
Syntax.RdfXml, m_modelSet.getDefaultModel());
+ Model model = m_modelSet.getDefaultModel();
+ try {
+ ModelUtils.loadFromFile(ConversionUtil.urlToFile(rdfsUrl),
Syntax.RdfXml, model);
+ ModelUtils.loadFromFile(ConversionUtil.urlToFile(rdfUrl),
Syntax.RdfXml, model);
+ } finally {
+ model.close();
+ }
// Build the rest of the test data
buildCourses();
@@ -122,11 +127,11 @@
// Build the course triples. Most courses are available for all educations
and grades
private void buildCourses() {
+ Model model = m_modelSet.getDefaultModel();
try {
// Determine base URL for all ontologies
String baseUrl = m_courseService.getOntologyBaseUrl();
- Model model = m_modelSet.getDefaultModel();
URI courseType = model.createURI(baseUrl +
EDUCA_ONTOLOGY_COURSE_URI);
URI gradeProp = model.createURI(baseUrl +
EDUCA_ONTOLOGY_GRADE_PROP_URI);
URI educationProp = model.createURI(baseUrl +
EDUCA_ONTOLOGY_EDUCATION_PROP_URI);
@@ -175,6 +180,8 @@
}
} catch (IOException e) {
m_logService.log(LogService.LOG_ERROR, "Failed to store Courses in
RDF database", e);
+ } finally {
+ model.close();
}
}
@@ -188,32 +195,40 @@
String baseUrl = m_courseService.getOntologyBaseUrl();
String queryString = "SELECT ?subject WHERE { ?subject a <" + baseUrl
+ EDUCA_ONTOLOGY_PERSON_URI + ">}";
Model model = m_modelSet.getDefaultModel();
- QueryResultTable result = model.sparqlSelect(queryString);
- ClosableIterator<QueryRow> iterator = result.iterator();
try {
- if (iterator.hasNext()) {
- return Boolean.TRUE;
+ QueryResultTable result = model.sparqlSelect(queryString);
+ ClosableIterator<QueryRow> iterator = result.iterator();
+ try {
+ if (iterator.hasNext()) {
+ return Boolean.TRUE;
+ }
+ } finally {
+ iterator.close();
}
} finally {
- iterator.close();
+ model.close();
}
return Boolean.FALSE;
}
private List<String> getSubjects(String subjectUri) {
Model model = m_modelSet.getDefaultModel();
- URI uri = model.createURI(subjectUri);
- String query = "SELECT ?subject WHERE { ?subject a <" + uri + ">}";
- QueryResultTable result = model.sparqlSelect(query);
- ClosableIterator<QueryRow> iterator = result.iterator();
ArrayList<String> subjects = new ArrayList<String>();
try {
- while (iterator.hasNext()) {
- QueryRow bs = iterator.next();
- subjects.add(bs.getValue("subject").toString());
+ URI uri = model.createURI(subjectUri);
+ String query = "SELECT ?subject WHERE { ?subject a <" + uri + ">}";
+ QueryResultTable result = model.sparqlSelect(query);
+ ClosableIterator<QueryRow> iterator = result.iterator();
+ try {
+ while (iterator.hasNext()) {
+ QueryRow bs = iterator.next();
+ subjects.add(bs.getValue("subject").toString());
+ }
+ } finally {
+ iterator.close();
}
} finally {
- iterator.close();
+ model.close();
}
return subjects;
}
Modified:
trunk/amdatu-example/course-service/src/main/java/org/amdatu/example/course/service/service/CourseServiceImpl.java
==============================================================================
---
trunk/amdatu-example/course-service/src/main/java/org/amdatu/example/course/service/service/CourseServiceImpl.java
(original)
+++
trunk/amdatu-example/course-service/src/main/java/org/amdatu/example/course/service/service/CourseServiceImpl.java
Mon Jan 24 10:36:27 2011
@@ -70,21 +70,25 @@
ArrayList<Course> courses = new ArrayList<Course>();
Model model = m_modelSet.getDefaultModel();
- QueryResultTable result = model.sparqlSelect(sparqlQuery);
- ClosableIterator<QueryRow> iterator = result.iterator();
try {
- while (iterator.hasNext()) {
- QueryRow queryRow = iterator.next();
- String course = queryRow.getLiteralValue("coursename");
- String grade = queryRow.getLiteralValue("gradename");
- String education = queryRow.getLiteralValue("educationname");
- Course c = new Course(course);
- c.setGrade(grade);
- c.setEducation(education);
- courses.add(c);
+ QueryResultTable result = model.sparqlSelect(sparqlQuery);
+ ClosableIterator<QueryRow> iterator = result.iterator();
+ try {
+ while (iterator.hasNext()) {
+ QueryRow queryRow = iterator.next();
+ String course = queryRow.getLiteralValue("coursename");
+ String grade = queryRow.getLiteralValue("gradename");
+ String education =
queryRow.getLiteralValue("educationname");
+ Course c = new Course(course);
+ c.setGrade(grade);
+ c.setEducation(education);
+ courses.add(c);
+ }
+ } finally {
+ iterator.close();
}
} finally {
- iterator.close();
+ model.close();
}
return courses;
}
Modified:
trunk/amdatu-semanticweb/sesame/src/main/java/org/amdatu/semanticweb/sesame/SesameService.java
==============================================================================
---
trunk/amdatu-semanticweb/sesame/src/main/java/org/amdatu/semanticweb/sesame/SesameService.java
(original)
+++
trunk/amdatu-semanticweb/sesame/src/main/java/org/amdatu/semanticweb/sesame/SesameService.java
Mon Jan 24 10:36:27 2011
@@ -26,7 +26,7 @@
* two query languages for searching through the RDF documents in a Sesame
database: SeRQL and SPARQL.
* This interface is deprecated, use the RDF2GO API instead. All methods
however are still fully functioning, but
* they will be removed in subsequent releases.
- *
+ *
* @author ivol
*/
@Deprecated
@@ -35,7 +35,7 @@
* Returns the Sesame repository that stores the RDF documents.
* This method has been deprecated, use the RDF2GO API instead. To
retrieve a ModelSet published by
* the any RDF implementation define a service dependency on ModelSet
instead.
- *
+ *
* @return the Sesame repository that stores the RDF documents.
*/
@Deprecated
@@ -46,7 +46,7 @@
* This method has been deprecated, use the RDF2GO API instead. To import
a RDF file use:
* ModelUtils.loadFromFile(ConversionUtil.urlToFile(url), Syntax.RdfXml,
m_modelSet.getDefaultModel());
* NB: ConversionUtil is a utility class in the utilities bundle of the
amdatu-libraries module.
- *
+ *
* @param rdfFile The URL to the file to import.
*/
@Deprecated
@@ -59,6 +59,7 @@
* <pre>
* ModelSet modelSet = m_sesameService.getModelSet();
* Model model = modelSet.getDefaultModel();
+ * try {
* QueryResultTable result = model.sparqlSelect("select ?subject");
* try {
* while (iterator.hasNext()) {
@@ -67,8 +68,12 @@
* }
* } finally {
* iterator.close();
- * } </pre>
- *
+ * }
+ * } finally {
+ * model.close();
+ * }
+ * </pre>
+ *
* @param query
* @param handler
*/
@@ -78,7 +83,7 @@
/**
* Retrieve a list of subject URI's that are instances of the specified
class.
* This method has been deprecated, use the RDF2GO API instead.
- *
+ *
* @param classURI The URI of the class of which the subjects must be
instances
* @return List of resource URI's of the selected subjects
*/
Modified:
trunk/amdatu-semanticweb/sesame/src/main/java/org/amdatu/semanticweb/sesame/service/SesameServiceImpl.java
==============================================================================
---
trunk/amdatu-semanticweb/sesame/src/main/java/org/amdatu/semanticweb/sesame/service/SesameServiceImpl.java
(original)
+++
trunk/amdatu-semanticweb/sesame/src/main/java/org/amdatu/semanticweb/sesame/service/SesameServiceImpl.java
Mon Jan 24 10:36:27 2011
@@ -168,17 +168,21 @@
ValueFactory factory = m_repository.getValueFactory();
URI uri = factory.createURI(subjectUri);
String query = "SELECT ?subject WHERE { ?subject a <" + uri + ">}";
- Model model = m_rdf2goModelSet.getDefaultModel();
- QueryResultTable result = model.sparqlSelect(query);
- ClosableIterator<QueryRow> iterator = result.iterator();
ArrayList<String> subjects = new ArrayList<String>();
+ Model model = m_rdf2goModelSet.getDefaultModel();
try {
- while (iterator.hasNext()) {
- QueryRow bs = iterator.next();
- subjects.add(bs.getValue("subject").toString());
+ QueryResultTable result = model.sparqlSelect(query);
+ ClosableIterator<QueryRow> iterator = result.iterator();
+ try {
+ while (iterator.hasNext()) {
+ QueryRow bs = iterator.next();
+ subjects.add(bs.getValue("subject").toString());
+ }
+ } finally {
+ iterator.close();
}
} finally {
- iterator.close();
+ model.close();
}
return subjects;
}
Modified:
trunk/amdatu-semanticweb/sparqlendpoint/src/main/java/org/amdatu/semanticweb/sparqlendpoint/service/SPARQLEndpointServiceImpl.java
==============================================================================
---
trunk/amdatu-semanticweb/sparqlendpoint/src/main/java/org/amdatu/semanticweb/sparqlendpoint/service/SPARQLEndpointServiceImpl.java
(original)
+++
trunk/amdatu-semanticweb/sparqlendpoint/src/main/java/org/amdatu/semanticweb/sparqlendpoint/service/SPARQLEndpointServiceImpl.java
Mon Jan 24 10:36:27 2011
@@ -121,9 +121,9 @@
@DefaultValue("1") @QueryParam("startIndex") final int startIndex,
@DefaultValue("0") @QueryParam("endIndex") final int endIndexParam) {
JSONObject jsonObject = new JSONObject();
+ Model model = m_modelSet.getDefaultModel();
try {
m_logService.log(LogService.LOG_DEBUG, "Executing SPARQL query: "
+ query);
- Model model = m_modelSet.getDefaultModel();
QueryResultTable result = model.sparqlSelect(query);
List<String> names = result.getVariables();
ClosableIterator<QueryRow> iterator = result.iterator();
@@ -161,10 +161,11 @@
jsonObject.put("lastStartIndex", (resultRow - 1) - ((resultRow -
1) % MAX_ROW_COUNT));
jsonObject.put("batchSize", MAX_ROW_COUNT);
jsonObject.put("resultCount", resultRow - 1);
- }
- catch (JSONException e) {
+ } catch (JSONException e) {
m_logService.log(LogService.LOG_ERROR, "Could not execute SPARQL
query '" + query + "'", e);
throw new WebApplicationException(e);
+ } finally {
+ model.close();
}
return Response.ok(jsonObject.toString(),
MediaType.APPLICATION_JSON_TYPE).cacheControl(m_cacheControl).build();
}