[ 
https://issues.apache.org/jira/browse/JENA-2326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17536856#comment-17536856
 ] 

Kelvin Qian commented on JENA-2326:
-----------------------------------

Not the OP, but I will point out that this bug will cause any `COPY`, `MOVE`, 
or `ADD` update from a named source graph to throw an exception, e.g.
```
COPY <http://example.org/test-graph> TO <http://example.org/test-graph-2>
```
works in Jean 4.4.0 but not Jena 4.5.0.

> 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
>            Priority: Major
>
> 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