[
https://issues.jenkins-ci.org/browse/JENKINS-13775?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=162821#comment-162821
]
Cyril Picat commented on JENKINS-13775:
---------------------------------------
After more investigation, this is not due to the '+' but to the directory tree.
In some cases, sloc seems to create a fake top_dir at the top and it makes the
plugin fail.
In those cases, you get the following message at the top of the sloccount.sc
file:
'Have a non-directory at the top, so creating directory top_dir'
and entries like:
15 objc top_dir /Users/udd/Jenkins/Workspace/jobs/MyProject
dev/workspace/MyProject/main.m
I simply prune those entries and it works again.
So my full shell build step in Jenkins is the following:
# Compute basic code metrics
sloccount --duplicates --wide --details MyProject | grep -v 'top_dir' >
build/sloccount.sc
> String index out of range
> -------------------------
>
> Key: JENKINS-13775
> URL: https://issues.jenkins-ci.org/browse/JENKINS-13775
> Project: Jenkins
> Issue Type: Bug
> Components: sloccount
> Affects Versions: current
> Environment: Linux:redhat9
> jenkins:1.463
> Reporter: wang y
> Assignee: npiguet
> Labels: plugin
>
> console output:
> {quote}
> ERROR: Publisher hudson.plugins.sloccount.SloccountPublisher aborted due to
> exception
> java.lang.StringIndexOutOfBoundsException: String index out of range: -5
> at java.lang.String.substring(String.java:1937)
> at java.lang.String.substring(String.java:1904)
> at hudson.plugins.sloccount.model.Folder.simplifyName(Folder.java:22)
> at
> hudson.plugins.sloccount.model.SloccountReport.simplifyNames(SloccountReport.java:175)
> at
> hudson.plugins.sloccount.model.SloccountParser.invoke(SloccountParser.java:42)
> at
> hudson.plugins.sloccount.model.SloccountParser.invoke(SloccountParser.java:17)
> at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2154)
> at hudson.remoting.UserRequest.perform(UserRequest.java:118)
> at hudson.remoting.UserRequest.perform(UserRequest.java:48)
> at hudson.remoting.Request$2.run(Request.java:287)
> at
> hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:662)
> {quote}
> sloccount file:
> {quote}
> Have a non-directory at the top, so creating directory top_dir
> Adding /g2m_builder_test/railway-svn-code/support/cppcheck-check-Make to
> top_dir
> Adding /g2m_builder_test/railway-svn-code/support/cppcheck_reports.xml to
> top_dir
> Adding /g2m_builder_test/railway-svn-code/support/cppcheck-suppress to top_dir
> Creating filelist for driver
> Adding /g2m_builder_test/railway-svn-code/support/sloccount.sc to top_dir
> Creating filelist for test
> Categorizing files.
> Computing results.
> 43 ansic test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/GhtDspApi/GhtDspDisp.c
> 197 ansic test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/GhtDspApi/GhtDspEnc.c
> 268 ansic test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/GhtDspApi/GhtDspCap.c
> 179 ansic test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/GhtDspApi/GhtDspDec.c
> 87 ansic test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/GhtDspApi/Convert.c
> 636 ansic test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/GhtDspApi/dm648api.c
> 387 ansic test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/GhtDspApi/GhtDspApi.c
> 173 ansic test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/include/dm648api.h
> 27 ansic test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/include/GhtDspCommon.h
> 173 ansic test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/include/GhtDspApi.h
> 5 ansic test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/GhtDspApi/Convert.h
> 6 ansic test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/GhtDspApi/SdkVersion.h
> 240 ansic test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/GhtDspApi/ShareStruct.h
> 37 makefile test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/GhtDspApi/Makefile
> 174 cpp test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/dialog/iconDecodeArea.cpp
> 236 cpp test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/dialog/iconPreviewArea.cpp
> 223 cpp test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/dialog/mainWindow.cpp
> 12 cpp test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/main.cpp
> 39 cpp test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/public/sunday.cpp
> 220 cpp test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/public/yuv.cpp
> 143 cpp test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/thread/Timer.cpp
> 41 cpp test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/thread/Thread.cpp
> 295 cpp test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/video/videoThread.cpp
> 64 cpp test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/video/videoTimer.cpp
> 445 cpp test
> /g2m_builder_test/railway-svn-code/support/test/auSdkDialog/pages.cpp
> 998 cpp test
> /g2m_builder_test/railway-svn-code/support/test/auSdkDialog/vmsdk.cpp
> 10 cpp test
> /g2m_builder_test/railway-svn-code/support/test/auSdkDialog/main.cpp
> 181 cpp test
> /g2m_builder_test/railway-svn-code/support/test/auSdkDialog/SI3000Page.cpp
> 143 cpp test
> /g2m_builder_test/railway-svn-code/support/test/auSdkDialog/public/thread/Timer.cpp
> 41 cpp test
> /g2m_builder_test/railway-svn-code/support/test/auSdkDialog/public/thread/Thread.cpp
> 26 cpp test
> /g2m_builder_test/railway-svn-code/support/test/auSdkDialog/dogTimer.cpp
> 371 cpp test
> /g2m_builder_test/railway-svn-code/support/test/auSdkDialog/logicPage.cpp
> 166 cpp test
> /g2m_builder_test/railway-svn-code/support/test/auSdkDialog/configdialog.cpp
> 31 cpp test
> /g2m_builder_test/railway-svn-code/support/test/auSdkDialog/SDevThread.cpp
> 57 cpp test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/dialog/mainWindow.h
> 73 cpp test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/dialog/iconPreviewArea.h
> 64 cpp test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/dialog/iconDecodeArea.h
> 7 cpp test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/public/sunday.h
> 22 cpp test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/public/yuv.h
> 56 cpp test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/thread/Timer.h
> 24 cpp test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/thread/Thread.h
> 45 cpp test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/thread/Mutex.h
> 43 cpp test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/thread/Sem.h
> 53 cpp test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/video/videoThread.h
> 22 cpp test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/video/imageDef.h
> 24 cpp test
> /g2m_builder_test/railway-svn-code/support/test/viSdkDialog/video/videoTimer.h
> 51 cpp test
> /g2m_builder_test/railway-svn-code/support/test/auSdkDialog/logicPage.h
> 64 cpp test
> /g2m_builder_test/railway-svn-code/support/test/auSdkDialog/configdialog.h
> 348 cpp test
> /g2m_builder_test/railway-svn-code/support/test/auSdkDialog/vmsdk.h
> 56 cpp test
> /g2m_builder_test/railway-svn-code/support/test/auSdkDialog/public/thread/Timer.h
> 24 cpp test
> /g2m_builder_test/railway-svn-code/support/test/auSdkDialog/public/thread/Thread.h
> 45 cpp test
> /g2m_builder_test/railway-svn-code/support/test/auSdkDialog/public/thread/Mutex.h
> 43 cpp test
> /g2m_builder_test/railway-svn-code/support/test/auSdkDialog/public/thread/Sem.h
> 13 cpp test
> /g2m_builder_test/railway-svn-code/support/test/auSdkDialog/dogTimer.h
> 76 cpp test
> /g2m_builder_test/railway-svn-code/support/test/auSdkDialog/sdkFunc.h
> 35 cpp test
> /g2m_builder_test/railway-svn-code/support/test/auSdkDialog/SI3000Page.h
> 16 cpp test
> /g2m_builder_test/railway-svn-code/support/test/auSdkDialog/SDevThread.h
> 56 cpp test
> /g2m_builder_test/railway-svn-code/support/test/auSdkDialog/pages.h
> 9 lisp top_dir /g2m_builder_test/railway-svn-code/support/sloccount.sc
> {quote}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jenkins-ci.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira