是否有任何快速修复liferay,修复上传文件错误。在上传过程中我有:
ERROR [BufferedIncreament-DLFolderLocalService.updateLastPostDate(long,Date)-1][BufferedIncrementRunnable:68] Unable to write buffered increment value to the database
java.lang.NullPointerException
at java.util.Date.getMillisOf(Date.java:956)
at java.util.Date.before(Date.java:915)
at com.liferay.portlet.documentlibrary.service.impl.DLFolderLocalServiceImpl.updateLastPostDate(DLFolderLocalServiceImpl.java:1095)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:115)
at com.liferay.portal.spring.transaction.DefaultTransactionExecutor.execute(DefaultTransactionExecutor.java:62)
at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:51)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
at com.liferay.portal.increment.BufferedIncreasableEntry.proceed(BufferedIncreasableEntry.java:48)
at com.liferay.portal.increment.BufferedIncrementRunnable.run(BufferedIncrementRunnable.java:65)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
我所知道的唯一解决方案是重置数据库架构 - 这可能会有问题:(帮助!
答案 0 :(得分:1)
您应该在issues.liferay.com报告此问题(除非您发现该问题已存在)并执行以下任一操作:
创建一个ext插件并将检查添加到DLFolderLocalServiceImpl.updateLastPostDate
:
if (dlFolder.getLastPostDate() != null
&& lastPostDate.before(dlFolder.getLastPostDate())) {
return;
}
不要使用文档文件夹(只需将所有内容放入根目录中)
暂时为所有现有文件夹修复此问题,方法是在服务器脱机时更新数据库中所有文档文件夹的lastPostDate
(或之后刷新缓存):
UPDATE DLFOLDER SET LASTPOSTDATE = NOW() WHERE LASTPOSTDATE IS NULL
答案 1 :(得分:0)
Liferay运行相当多的代码来确保服务构建器具有其上下文 - 如果您的堆栈跟踪没有缩短,看起来您正在一个独立于请求的线程中运行,该线程可能没有正确初始化servicebuilder(明显)。
因此,它可能不是Liferay中的错误,但您需要以Liferay准备环境的方式准备环境。我不能确切地指出你必要的步骤,但你可能会记住这一点。此外,堆栈跟踪中没有任何内容指向“上传错误”恕我直言,因为您只是触及上一个发布日期
如果你省略了堆栈跟踪的部分内容,那么用“...”表示你遗漏东西是很好的。它看起来并不完整。你张贴的部分看起来并不合适。