sparql - GraphDB post Sparql-File 错误:处理程序调度失败;嵌套异常是 java.lang.StackOverflowError
问题描述
使用 curl 发布正确的大 Sparql 文件(包含删除和更新)时,
curl -X POST --data-binary @hashtag.sparql -H "Accept: application/rdf+xml" -H "Content-type: application/sparql-update" http://localhost:7200/repositories/test/statements
我收到以下错误消息
Handler dispatch failed; nested exception is java.lang.StackOverflowError
并且日志文件包含
at org.eclipse.rdf4j.query.parser.sparql.ast.SyntaxTreeBuilder.UpdateSequence(SyntaxTreeBuilder.java:116)
这是我可以以某种方式解决的问题,还是 GraphDB 中的错误?
解决方案
这是 GraphDB 使用的 RDF4J SPARQL 解析器中的一个问题,它使用递归调用来解析更新序列。显然,您的更新序列对于系统上的默认 JVM 堆栈来说太大了。
您可以通过将 JVM 配置为使用更大的堆栈(例如-Xss:512k
,或您发现需要的任何大小)来解决此问题,或者将您的大更新文件分成两个。
不过,根本原因需要在 SPARQL 解析器中进行修复。考虑到这一点,我已经记录了此问题的错误报告:https ://github.com/eclipse/rdf4j/issues/3328 。
推荐阅读
- docker - 启动 prometheus docker 镜像时出错,即使存在也找不到配置文件
- maven-3 - -B 和 -f 标志在 Maven 命令中的作用是什么?
- pdf - 如何加入多个不同尺寸的pdf文件?
- reactjs - 如何在 react.js 的迭代中处理 SetState 函数
- mysql - 数据库多状态字段 vs 1 状态字段
- maven - 如何通过 maven(如果存在)从 weblogic 中删除/取消部署耳文件或更新耳文件?
- angular - TypeError:_this._driver.validateStyleProperty 不是函数 TypeError:_this._driver.validateStyleProperty 不是函数
- laravel - google-api 如何在带有令牌的离线请求中工作
- jms - rpc、rmi、jms和webservices有什么区别?
- c# - ASP.NET MVC:尝试将变量传递给另一个动作/方法