Unverified Commit bf08549d authored by Maxime Lefrançois's avatar Maxime Lefrançois
Browse files

autoclose responses for themis and oops

parent 46a3e8eb
Loading
Loading
Loading
Loading
+62 −81
Original line number Diff line number Diff line
@@ -30,7 +30,6 @@ import java.io.IOException;
import java.net.SocketTimeoutException;
import java.util.ArrayList;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;

import org.apache.jena.rdf.model.Model;
@@ -85,10 +84,8 @@ public class Clause_9_4_5_Checker extends AbstractClauseChecker {

		final OWLProfileReport report = new OWL2DLProfile().checkOntology(ontology);
		report.getViolations().removeIf(v -> {
			if(v instanceof UseOfDefinedDatatypeInDatatypeRestriction
					|| v instanceof UseOfDefinedDatatypeInLiteral
					|| v instanceof UseOfUndeclaredDatatype
					|| v instanceof UseOfUnknownDatatype) {
			if (v instanceof UseOfDefinedDatatypeInDatatypeRestriction || v instanceof UseOfDefinedDatatypeInLiteral
					|| v instanceof UseOfUndeclaredDatatype || v instanceof UseOfUnknownDatatype) {
				return true;
			}
			return false;
@@ -144,8 +141,6 @@ public class Clause_9_4_5_Checker extends AbstractClauseChecker {
				+ "<OntologyContent><![CDATA[" + onto + "]]></OntologyContent>" + "<Pitfalls></Pitfalls>"
				+ "<OutputFormat>RDF/XML</OutputFormat>" + "</OOPSRequest>";



		Object[] arrayData = new Object[0];

		try {
@@ -159,24 +154,7 @@ public class Clause_9_4_5_Checker extends AbstractClauseChecker {
			Request request = new Request.Builder().url("http://oops.linkeddata.es/rest").method("POST", body)
					.addHeader("Content-Type", "application/xml").build();

			Response response;

			try{
				response = httpClient.newCall(request).execute();
			}
			catch (SocketTimeoutException e){

				httpClient = new OkHttpClient().newBuilder().readTimeout(10, TimeUnit.SECONDS).build();

				try{
					response = httpClient.newCall(request).execute();
				}
				catch (SocketTimeoutException f){
					httpClient = new OkHttpClient().newBuilder().readTimeout(20, TimeUnit.SECONDS).build();
					response = httpClient.newCall(request).execute();
				}
			}

			try (Response response = httpClient.newCall(request).execute();) {

				if (response.code() != 200) {
					throw new SAREFPipelineException("response", "Unexpected response code " + response.code());
@@ -197,7 +175,8 @@ public class Clause_9_4_5_Checker extends AbstractClauseChecker {
							if (((Element) node).getElementsByTagName("oops:hasName").item(0) != null) {
								String code = element.getElementsByTagName("oops:hasCode").item(0).getTextContent();
								String name = element.getElementsByTagName("oops:hasName").item(0).getTextContent();
							String description = element.getElementsByTagName("oops:hasDescription").item(0).getTextContent();
								String description = element.getElementsByTagName("oops:hasDescription").item(0)
										.getTextContent();
								String affected = "";
								NodeList affectedElements = element.getElementsByTagName("oops:hasAffectedElement");
								if (affectedElements != null) {
@@ -210,13 +189,14 @@ public class Clause_9_4_5_Checker extends AbstractClauseChecker {
									}
								}


							String oopsError = String.format("Code: %s, Name: %s, Description: %s, Affected Elements: %s", code, name, description, affected);
								String oopsError = String.format(
										"Code: %s, Name: %s, Description: %s, Affected Elements: %s", code, name,
										description, affected);
								oopsErrors.add(oopsError);
						}
						else{
							} else {
								String code = element.getElementsByTagName("oops:hasCode").item(0).getTextContent();
							String description = element.getElementsByTagName("oops:hasDescription").item(0).getTextContent();
								String description = element.getElementsByTagName("oops:hasDescription").item(0)
										.getTextContent();
								String affected = "";
								NodeList affectedElements = element.getElementsByTagName("oops:hasAffectedElement");
								if (affectedElements != null) {
@@ -229,8 +209,8 @@ public class Clause_9_4_5_Checker extends AbstractClauseChecker {
									}
								}


							String oopsError = String.format("Code: %s, Description: %s, Affected Elements: %s", code, description, affected);
								String oopsError = String.format("Code: %s, Description: %s, Affected Elements: %s",
										code, description, affected);
								oopsErrors.add(oopsError);
							}
						}
@@ -243,8 +223,9 @@ public class Clause_9_4_5_Checker extends AbstractClauseChecker {
					logWarning(getMessage(MESSAGE.oops, data));

				}


			} catch (SocketTimeoutException e) {
				logWarning(getMessage(MESSAGE.oopsError), e);
			}
		} catch (IOException | SAREFPipelineException e) {
			logWarning(getMessage(MESSAGE.oopsError), e);
		}
+1 −2
Original line number Diff line number Diff line
@@ -159,8 +159,7 @@ public class Clause_9_5_Checker extends AbstractClauseChecker {
		Request request = new Request.Builder().url("http://themis.linkeddata.es/rest/api/results").method("POST", body)
				.addHeader("accept", "application/json").addHeader("Content-Type", "application/json").build();

		try {
			Response response = httpClient.newCall(request).execute();
		try (Response response = httpClient.newCall(request).execute();) {
			if (response.code() != 200) {
				throw new SAREFPipelineException("response", "Unexpected response code " + response.code());
			}
+6 −5
Original line number Diff line number Diff line
@@ -38,12 +38,13 @@ public class ThemisManager {
		// Parser that produces DOM object trees from XML content
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		// API to obtain DOM Document instance
		try {
		try(StringReader reader = new StringReader(xmlString)) {
						
			// Create DocumentBuilder with default configuration
			DocumentBuilder builder = factory.newDocumentBuilder();

			// Parse the content to Document object
			Document doc = builder.parse(new InputSource(new StringReader(xmlString)));
			Document doc = builder.parse(new InputSource(reader));
			
			return doc;
			} catch (Exception e) {