在我们的测试服务器中,我们要删除节点。我们使用下面的代码
Repository repository = .... ;
Session session = null;
session = repository.login(new SimpleCredentials(getApplicationName(), getPassword().toCharArray()));
JcrTools jcrTools = new JcrTools();
if (!session.nodeExists(fileInfo.getRealPath())) {
return;
}
Node node = session.getNode(fileInfo.getRealPath());
//delete children nodes if exists
jcrTools.removeAllChildren(node);
//delete all properties include mixins
PropertyIterator pIt = node.getProperties();
while (pIt.hasNext()) {
javax.jcr.Property property = pIt.nextProperty();
property.remove();
}
node.remove();
session.save();
session.logout();
该方法有效,我们看到文件已从 modeshape-explorer Web 应用程序中删除。但我们也看到二进制文件位于存储库的二进制文件夹中,因此节点并没有被物理删除,磁盘使用情况也不会改变。可能是什么问题?