首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenGrok历史缓存零Ptr异常

OpenGrok历史缓存零Ptr异常
EN

Stack Overflow用户
提问于 2015-01-16 18:38:21
回答 1查看 823关注 0票数 1

当索引时,它尝试为perforce创建历史缓存,如果出现以下空ptr异常,则会失败:

代码语言:javascript
复制
2015-01-16 10:30:32.178-0800 INFO t1 HistoryGuru.createCacheReal: Creating historycache for 1 repositories
2015-01-16 10:30:32.179-0800 INFO t22 HistoryGuru.createCache: Creating historycache for /local2/mnt/workspace/opengrok/src (PerforceRepository)
2015-01-16 10:30:32.181-0800 FINE t22 Executor.exec: Executing command [/pkg/qct/software/p4/p4, dirs, *] in directory /local2/mnt/workspace/opengrok/src
2015-01-16 10:30:32.458-0800 FINE t22 Executor.exec: Finished command [/pkg/qct/software/p4/p4, dirs, *] in directory /local2/mnt/workspace/opengrok/src
2015-01-16 10:30:32.459-0800 FINE t22 Executor.exec: Executing command [p4, changes, -t, ...] in directory /local2/mnt/workspace/opengrok/src
2015-01-16 10:30:39.230-0800 FINE t22 Executor.exec: Finished command [p4, changes, -t, ...] in directory /local2/mnt/workspace/opengrok/src
2015-01-16 10:30:39.366-0800 FINE t22 FileHistoryCache.store: Storing history for repo /local2/mnt/workspace/opengrok/src
2015-01-16 10:30:39.369-0800 WARNING t22 FileHistoryCache.storeLatestCachedRevision: cannot write latest cached revision to file: null
2015-01-16 10:30:39.369-0800 WARNING t22 HistoryGuru.createCache: An error occured while creating cache for /local2/mnt/workspace/opengrok/src (PerforceRepository)
java.lang.NullPointerException
    at org.opensolaris.opengrok.history.FileHistoryCache.storeLatestCachedRevision(FileHistoryCache.java:595

我已经检查了用户对$OPENGROK_INSTANCE_BASE/data的写权限。对还有什么需要检查或可能发生了什么有什么想法吗?

OpenGrok版本: 0.12.1.1索引cmd:

代码语言:javascript
复制
OPENGROK_TAG=1 OPENGROK_VERBOSE=1 OPENGROK_REMOTE_REPOS_OFF=0 OPENGROK_TOMCAT_CASE=/usr/share/tomcat7 OPENGROK_INSTANCE_BASE=/local2/mnt/workspace/opengrok ./OpenGrok index /local2/mnt/workspace/opengrok/src/
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-21 18:28:26

结果发现这是OpenGrok中的一个bug。见线程:https://github.com/OpenGrok/OpenGrok/issues/878

简而言之,src/org/opensolaris/opengrok/history/FileHistoryCache.java需要一个空ptr检查。

代码语言:javascript
复制
 @@ -592,7 +592,9 @@ private void storeLatestCachedRevision(Repository repository, String rev) {
                 ex.getCause());
         } finally {
            try {
-               writer.close();
+               if (writer != null) {
+                   writer.close();
+               }
            } catch (IOException ex) {
                logger.log(Level.INFO, "cannot close file: " + ex);
            }

https://github.com/OpenGrok/OpenGrok/commit/0dbb0e366b3798ac18d1bfc010a1985bce75f071

为什么文件作者一开始是空的是另一个问题..。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27990606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档