Liferay上传文件错误

时间:2015-12-14 10:40:27

标签: mysql liferay

是否有任何快速修复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)

我所知道的唯一解决方案是重置数据库架构 - 这可能会有问题:(帮助!

2 个答案:

答案 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准备环境的方式准备环境。我不能确切地指出你必要的步骤,但你可能会记住这一点。此外,堆栈跟踪中没有任何内容指向“上传错误”恕我直言,因为您只是触及上一个发布日期

如果你省略了堆栈跟踪的部分内容,那么用“...”表示你遗漏东西是很好的。它看起来并不完整。你张贴的部分看起来并不合适。