Brian Vosburgh created JENA-2326:
------------------------------------

             Summary: recent change to UpdateEngineWorker validation is 
probably wrong
                 Key: JENA-2326
                 URL: https://issues.apache.org/jira/browse/JENA-2326
             Project: Apache Jena
          Issue Type: Bug
          Components: ARQ
    Affects Versions: Jena 4.5.0
            Reporter: Brian Vosburgh


A validation method in {{UpdateEngineWorker}} was recently changed. (I think 
the change is related to JENA-2293.)

The previous method looked like this:
{code:java}
    private boolean validBinaryGraphOp(UpdateBinaryOp update) {
        if ( update.getSrc().isDefault() )
            return true;

        if ( update.getSrc().isOneNamedGraph() ) {
            Node gn = update.getSrc().getGraph();
            if ( !datasetGraph.containsGraph(gn) ) {
                if ( !update.getSilent() )
                    error("No such graph: " + gn);
                return false;
            }
            return true;
        }
        error("Invalid source target for oepration; " + update.getSrc());
        return false;
    }
{code}
The current method looks like this:

 
{code:java}
    private void validateBinaryGraphOp(UpdateBinaryOp update) {
        if ( update.getSrc().isDefault() )
            return;
        if ( update.getSrc().isOneNamedGraph() ) {
            Node gn = update.getSrc().getGraph();
            if ( !datasetGraph.containsGraph(gn) )
                throw errorEx("No such graph: " + gn);
        }
        throw errorEx("Invalid source target for operation; " + 
update.getSrc());
    }
 
{code}
Assuming the validation logic has not changed, the current method is 
inconsistent with the previous version. To remain consistent, it should look 
like this:

 
{code:java}
    private void validateBinaryGraphOp(UpdateBinaryOp update) {
        if ( update.getSrc().isDefault() )
            return;
        if ( update.getSrc().isOneNamedGraph() ) {
            Node gn = update.getSrc().getGraph();
            if ( !datasetGraph.containsGraph(gn) )
                throw errorEx("No such graph: " + gn);
            return;
        }
        throw errorEx("Invalid source target for operation; " + 
update.getSrc());
    }
 
{code}
Note the second {{return}} statement.

This is causing unexpected test failures in our product test suite.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to