diff --git a/src/main/java/at/ac/univie/mminf/qskos4j/issues/labels/UnprintableCharactersInLabels.java b/src/main/java/at/ac/univie/mminf/qskos4j/issues/labels/UnprintableCharactersInLabels.java index 5758d85..ca3355f 100644 --- a/src/main/java/at/ac/univie/mminf/qskos4j/issues/labels/UnprintableCharactersInLabels.java +++ b/src/main/java/at/ac/univie/mminf/qskos4j/issues/labels/UnprintableCharactersInLabels.java @@ -11,6 +11,7 @@ import org.openrdf.model.Literal; import org.openrdf.model.Resource; import org.openrdf.model.URI; +import org.openrdf.model.Value; import org.openrdf.model.impl.URIImpl; import org.openrdf.query.BindingSet; import org.openrdf.query.QueryLanguage; @@ -56,13 +57,21 @@ protected CollectionResult invoke() throws OpenRDFException { TupleQueryResult queryResult = query.evaluate(); while (queryResult.hasNext()) { BindingSet binding = queryResult.next(); - Literal labelValue = (Literal) binding.getValue("labelValue"); - URI labelProperty = (URI) binding.getValue("labelProperty"); - String label = labelValue.stringValue(); - if (!label.replaceAll("\\p{C}", "?").equals(label)) - { - result.add(new LabeledConcept(concept, labelValue, LabelType.getFromUri(labelProperty))); + Value labelValue = binding.getValue("labelValue"); + Value labelPropertyValue = binding.getValue("labelProperty"); + try { + Literal labelValueLiteral = (Literal) labelValue; + URI labelProperty = (URI) labelPropertyValue; + + String label = labelValue.stringValue(); + if (!label.replaceAll("\\p{C}", "?").equals(label)) { + result.add(new LabeledConcept(concept, labelValueLiteral, LabelType.getFromUri(labelProperty))); + } + } + catch (ClassCastException e) { + logger.warn("Could not cast label value (" +labelValue.stringValue()+ + ") or label property (" +labelPropertyValue.stringValue()+ ") value "); } } }