【问题标题】:Liferay upload file bugLiferay上传文件错误
【发布时间】:2015-12-14 10:40:26
【问题描述】:

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)

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

【问题讨论】:

    标签: mysql liferay


    【解决方案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
      

    【讨论】:

    • 嗨 :D 你的水晶球坏了 ;) 我正在使用 liferay-portal-6.2-ce-ga4 版本。我有问题,即使修复插入错误尝试插入(数据 4expl 的运气)后 - 每次下一次上传都会产生这个错误:(
    • 哦,抱歉,我已经检查了 liferay-portal-6.2-ce-ga3,它不包含该问题。我以为它是为7引入的。无论如何,你检查它是否为ce-ga5固定?也许升级也有帮助。我已经调整了我的帖子。
    【解决方案2】:

    Liferay 运行了相当多的代码来确保服务构建器具有其上下文 - 如果您的堆栈跟踪没有缩短,看起来您正在一个独立于请求的线程中运行,该线程可能没有正确初始化服务构建器(明显地)。

    因此,它可能不是 Liferay 中的错误,但您需要像 Liferay 准备环境一样准备环境。我不能准确地指出必要的步骤,但你可能会记住这一点。此外,stacktrace 中没有任何内容指向“上传错误”恕我直言,因为您只是触摸了最后一个发布日期

    如果您省略了堆栈跟踪的部分内容,最好用“...”表示您省略了一些内容。在我看来它并不完整。您发布的部分对我来说看起来不太合适。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-17
      • 2014-01-31
      • 1970-01-01
      • 2010-12-28
      • 1970-01-01
      相关资源
      最近更新 更多