【发布时间】:2016-12-22 07:32:43
【问题描述】:
我使用Apache Jackrabbit 存储PDF、doc 文件并使用FileDataStore 作为基础数据存储。设置二进制数据值后,临时目录中会创建许多临时/假脱机文件 (bin*.tmp)。在 JVM 关闭之前,这些文件永远不会被删除。这些临时文件充斥着 tmp 目录并导致 no space left on device 错误。
下面是sn-p的代码:
Node childFileNode = childLeafFolder.addNode(file.pdf, NodeType.NT_FILE);
Node childContentNode = childFileNode.addNode(Node.JCR_CONTENT,
NodeType.NT_RESOURCE);
Property property = childContentNode.setProperty(Property.JCR_DATA, binary);
我尝试调用property.getBinary.dispose(),它指向AbstractQValue dispose(),发现它是一个空方法。
我用谷歌搜索并遇到了JCR-3568,这仍然没有解决。我的应用程序运行时间很长,不能经常关闭。
看起来我遗漏了一些东西,因为这可能是一个非常常见的问题。
【问题讨论】:
-
嗨,我也面临同样的问题。设备上没有剩余空间。谁能建议 JCR-3568 将在哪个版本中得到解决。
-
写一个单元测试。修复错误。提出补丁。它是开源的。
标签: java apache jcr jackrabbit