耶拿 java.util.ConcurrentModificationException 与 execConstruct

Jena java.util.ConcurrentModificationException with execConstruct

执行以下代码:

     Query query = QueryFactory.create(queryString);      
     QueryExecution qexec = QueryExecutionFactory.create(query, model);          
     Model m = qexec.execConstruct(model);     
     System.out.println(m.toString());
     model.close();

有时会出现 java.util.ConcurrentModificationException 异常,这取决于我正在执行的查询类型。有一种方法可以构建始终安全的代码片段吗?谢谢。

使用 Model m = qexec.execConstruct()(无模型参数)然后调用 model.add(m)

如果您在同一模型上查询和插入语句,通过 execConstruct(model)) 存在 CCME 风险。对结果使用不同的模型可以避免这种情况。