Alan created MARMOTTA-393:
-----------------------------

             Summary: ClassCastException when loading Literal thats Stored as a 
URI
                 Key: MARMOTTA-393
                 URL: https://issues.apache.org/jira/browse/MARMOTTA-393
             Project: Marmotta
          Issue Type: Bug
          Components: KiWi Triple Store
    Affects Versions: 3.1-incubating
            Reporter: Alan
            Assignee: Sebastian Schaffert


When loading a literal value that already exists as a URI the 
KiWiConnection.loadLiteral throws an ClassCastException as the return ed node 
is a URI. 

{noformat}
Caused by: java.lang.ClassCastException: 
org.apache.marmotta.kiwi.model.rdf.KiWiUriResource cannot be cast to 
org.apache.marmotta.kiwi.model.rdf.KiWiLiteral
        at 
org.apache.marmotta.kiwi.persistence.KiWiConnection.loadLiteral(KiWiConnection.java:627)
        at 
org.apache.marmotta.kiwi.sail.KiWiValueFactory.createLiteral(KiWiValueFactory.java:435)
        at 
org.apache.marmotta.kiwi.sail.KiWiValueFactory.createLiteral(KiWiValueFactory.java:350)
        at 
org.openrdf.rio.helpers.RDFParserHelper.createLiteral(RDFParserHelper.java:250)
{noformat}

Perhaps loadLiteral could validate the type and return null e.g.

>From this:
{noformat}
return (KiWiLiteral)constructNodeFromDatabase(result);
{noformat}
To this:
{noformat}
KiWiNode node = constructNodeFromDatabase(result);
                    KiWiNode kiWiNode = constructNodeFromDatabase(result);
                    if(kiWiNode.isLiteral()) {
                        return (KiWiLiteral)kiWiNode;
                    } else {
                        return null;
                    }
{noformat}






--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to