我正在使用工作流根据数据和一组要求将大量pdf从一个位置复制到其他大坝位置。我使用以下代码: Asset damAsset = manager.createAsset( path,is,mimeType,true);其中path是目标目录,' is‘是输入流pdf文件,没有关于我使用以下语句将元数据应用于目标文件的元数据Node damAsset= damAsset.adaptTo(Node.class);node mdNode = node.getNode("jcr:content/ metadata ");mdNode.setProperty("pttitle",forms.getFileDisplayTitle());一旦所有文件完成,我将终止使用pdf的工作流
工作流在大多数情况下工作正常,但由于以下异常,最后一个文件未与元数据一起设置。此异常在重复运行3-4次后随机发生一次。
javax.jcr.InvalidItemStateException: Unable to update a stale item: item.save()
at org.apache.jackrabbit.core.ItemSaveOperation.perform(ItemSaveOperation.java:262)
at org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:216)
at org.apache.jackrabbit.core.ItemImpl.perform(ItemImpl.java:91)
at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:329)
at org.apache.jackrabbit.core.session.SessionSaveOperation.perform(SessionSaveOperation.java:65)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.jackrabbit.core.state.StaleItemStateException: 1f6fc642-1a20-4cac-abe5-70f903aefde4 has been modified externally
at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:679)
at org.apache.jackrabbit.core.ItemSaveOperation.perform(ItemSaveOperation.java:258)发布于 2013-12-10 02:12:04
当另一个线程上有另一个会话更新了有问题的项时,就会发生过时的项异常。例如,在你之前保存了一些其他的东西。
有关这方面的详细信息,请访问:http://wiki.apache.org/jackrabbit/ItemStateManagement
我会检查一下,在你做你的工作的同时,是否还有其他与DAM相关的工作流程。
发布于 2014-08-11 17:46:24
https://stackoverflow.com/questions/20438022
复制相似问题