SonarQube analysis fails after upgrade to 3.7.1 rules - sonarqube

Using SonarQube 5.2 - just the "click and go" distribution downloaded yesterday and running under Windows. Nothing fancy.
After upgrading the "Java" rules package from the bundled 3.6 version to 3.7.1, the sonar runner then fails during analysis.
There's a long stacktrace that is revealed when running with '-e' option however there is no detail on where in the file it failed (line-number, method) or which rule failed.
I have pared down the stack-trace to what I believe are the useful bits:
ERROR: Error during Sonar runner execution
org.sonar.runner.impl.RunnerException: Unable to execute Sonar
...
Caused by: org.sonar.squidbridge.api.AnalysisException: SonarQube is unable to analyze file : 'C:\Users\robert.rusk\Documents\cvs\ip_probe\src\com\robert\splat\MyClass.java'
...
Caused by: java.lang.IndexOutOfBoundsException: index (1) must be less than size (1)
...
at org.sonar.java.checks.PrintfCheck.verifyParameters(PrintfCheck.java:173)
at org.sonar.java.checks.PrintfCheck.onMethodInvocationFound(PrintfCheck.java:112)
...

You are encoutering the following issue : https://jira.sonarsource.com/browse/SONARJAVA-1369
It happens when you have a parameter with %< during the printf check (rule squid:S2275).
Issue has been fixed (few minutes ago for the record ;) ) and should be part of next release bound to happen within the next few days.

After some investigation I now believe the error occurs because String.format is called without enough parameters (should be 2), and when I comment out this line the analysis then runs without any problems.
splatDateStr = String.format("%tFT%<tRZ", splatDate);
I guess this is the PrintfCheck that is referred to in the stack-trace.

Related

Sonarqube : The 'report' parameter is missing

I am using MSBuild. I have Java 8 installed.
I am running the following commands:
SonarQube.Scanner.MSBuild.exe begin /k:"ABC" /d:sonar.host.url="http://localhost:9000" /d:sonar.login="8b839xxxxxxxxxxxxxxxxxxxxxxx6b00125bf92" /d:sonar.verbose=true
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\msbuild.exe" /t:rebuild
SonarQube.Scanner.MSBuild.exe end /d:sonar.login="8b839xxxxxxxxxxxxxxxxxxxxxxx6b00125bf92"
The last step fails:
ERROR: Error during SonarQube Scanner execution
ERROR: The 'report' parameter is missing
ERROR:
ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.
The SonarQube Scanner did not complete successfully
12:53:21.909 Creating a summary markdown file...
12:53:21.918 Post-processing failed. Exit code: 1
The MSBuild version is greater than 14.
Java 8 is properly installed. Documentation indicates that Java 8 is adequate.
Any idea on what could be wrong?
Where do I add the -X switch? I tried on all 3 statements
Update :I installed Java SDK 9. Still same issue.
Update :With verbose logging and using /n naming parameter:
INFO: Analysis report generated in 992ms, dir size=4 MB
INFO: Analysis reports compressed in 549ms, zip size=1 MB
INFO: Analysis report generated in C:\ABC\.sonarqube\out\.sonar\scanner-report
DEBUG: Upload report
DEBUG: POST 400 http://localhost:9000/api/ce/submit?projectKey=ABC | time=1023ms
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 54.833s
INFO: Final Memory: 51M/170M
INFO: ------------------------------------------------------------------------
DEBUG: Execution getVersion
DEBUG: Execution stop
ERROR: Error during SonarQube Scanner execution
ERROR: The 'report' parameter is missing
ERROR:
ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.
Process returned exit code 1
The SonarQube Scanner did not complete successfully
Creating a summary markdown file...
Post-processing failed. Exit code: 1
I've struggled the same problem with SonarQube and I've finally found a solution:
You need to restart sonar service after using evaluation token.
Please note this isn't the answer, however I feel this feedback is valuable to getting this question answered.
I can reproduce this issue in POSTMan with a POST request to:
http://localhost:9000/api/ce/submit?projectKey=myProjectKey
This returns
{
"errors": [
{
"msg": "The 'report' parameter is missing"
}
]
}
You can get a similar error by removing the projectKey query parameter. I tried adding a report query parameter and received the same error:
http://localhost:9000/api/ce/submit?projectKey=brian3016&report=report
Given this, I feel there is a problem with their code. It should have included a report parameter when creating the POST request, but it failed to do so.
Verbose output seems to have changed from using the -X switch to /d:sonar.verbose=true. E.G.
SonarScanner.MSBuild.exe begin /k:"myProjectKey" /d:sonar.host.url="http://localhost:9000" /d:sonar.login="myLogin" /d:sonar.verbose=true
Note the verbose logging didn't give me any valuable insight.
(Also note that the documentation currently says to use SonarQube.Scanner.MSBuild.exe, but the verbose logger told me to switch to SonarScanner.MSBuild.exe)
SO...how we we report this issue to someone that can fix it? Their documentation says to go to Stackoverflow. So here we are.
I thought it may have been an issue with a project. So I created a new project with nothing other than the startup template Console Application. Same error.
In my case SonarQube 7.9.1 (deployed with Helm to Kubernetes cluster) was missing temp directory /opt/sonarqube/temp/tc/work/Tomcat/localhost/ROOT after Helm rollback. No idea what happened to it.
Logfile /opt/sonarqube/logs/web.log inside SonarQube pod had this error:
2021.02.02 06:57:03 WARN web[AXdZ6l6MParQCncJACv3][o.s.s.w.ServletRequest] Can't read file part for parameter report
java.io.IOException: The temporary upload location [/opt/sonarqube/temp/tc/work/Tomcat/localhost/ROOT] is not valid
The fix was to exec into pod and create the missing directory. Would like to know the reason though...
The issue is with the sonar service starting up.
First try to stop the SonarStart.bat by using Ctrl+c, and then try to open localhost:9000 ( or whichever port you configured sonar server).
If it is still opening then go to task manager and search for wrapper.exe service and stop the service. If no service is found then go to:
Task manager>Details> and stop all java.exe process.
Note: If you running many Java applications, right-click the java.exe and choose goto service, and stop only those java.exe that belongs to AppX deployment.services
Now start sonarstart.bat as administrator..
today i face the same error when using jenkins to scanner the code.
get the error when POST /api/ce/submit and get 400 code by add the sonar.verbose=true
i use the below step to check reason
first to restart the sonarqube => failed
check the report file size by using "du -sh" get 108m and DB server support 1G => failed
login the sonar-qube server and check the access.log, web.log and another log, finally find the error reason " Processing of multipart/form-data request failed. No space left on device", so i check the server by command "df -h", some devices are used 100% => so i remove some no-using file and fix it!!!
check if you have enough memory
ex: free -m
In my case I had to upgrade memory.

Sonar-web-frontend-helloworld execution error

I am running the hello world example
I generate the reports but when i come to run the sonar scan i get the very unhelpful exception of
-----------
09:42:56.279 ERROR: Error during SonarQube Scanner execution
java.lang.IllegalArgumentException: 0 is not a valid line for a file
at org.sonar.api.internal.google.common.base.Preconditions.checkArgument
(Preconditions.java:145)
[![Error description][1]][1]
Seems like a bug in the plugin that you use - https://github.com/groupe-sii/sonar-web-frontend-plugin
SonarQube API clearly states that first line in a file has number 1, but plugin passes 0.

SourceMeter plugin for SonarQube 4.4 errors due to analyse.xml issue. Has anyone been able to resolve this?

I am evaluating SourceMeter plugin for SonarQube using SonarQube 4.4 and the plugin i downloaded from the SourceMeter website https://www.sourcemeter.com/download/. While i try to execute the code review for a Java project, it always gives me an error in the following line of the analyze.xml.
ERROR: Error during Sonar runner execution
ERROR: Unable to execute Sonar
ERROR: Caused by: The following error occurred while executing this line:
E:\CI\SourceMeter-Java-6.0-x64-windows\analyze.xml:479: exec returned: 255
ERROR: Caused by: exec returned: 255
Line number 479 is as follows.
Could you please help me understand what could be the probable cause of this issue?
Tried the same (?) in this environment:
Windows 7
Maven built project
SonarQube
The problem seems to arise from Windows not treating quotes any special yielding problems when trying to start a java process:
"C:\dev\maven\repository\org\eclipse\persistence\javax.persistence\2.1.0\javax.persistence-2.1.0.jar" kann syntaktisch an dieser Stelle nicht verarbeitet werden. (meaning something like syntax error)
This is raised in some executeJANScript.bat containing the lines
set JOPTIONS="-j:|-cp ".;C:\dev\maven\repository\org\eclipse\persistence\javax.persistence\2.1.0\javax.persistence-2.1.0.jar;C:\..."" where the outer quotes should be omitted.

Batch Process Test_Bib_Import fails on OLE 1.5.2.1 installation

After upgrading to OLE 1.5.2.1 when I try to upload a local MARC .mrc-file via batch process I get the following error:
Batch process Failed for profile :: Test_Bib_Import
The same exact file worked fine in OLE 1.5.0-M2
Catalina.out contains the following error:
[INFO] org.kuali.ole.batch.impl.OLEBatchProcessAdhocStep - Executing Batch process type :: Bib Import
[ERROR] org.kuali.ole.batch.ingest.BatchProcessBibImport - java.lang.NullPointerException
[ERROR] org.kuali.ole.batch.helper.OLEBatchProcessDataHelper - Error while performing batch process for profile :: Test_Bib_Import
java.lang.RuntimeException: java.lang.NullPointerException
at org.kuali.ole.batch.ingest.BatchProcessBibImport.processBatch(BatchProcessBibImport.java:90)
at org.kuali.ole.batch.impl.AbstractBatchProcess.process(AbstractBatchProcess.java:87)
at org.kuali.ole.batch.impl.OLEBatchProcessAdhocStep.executeBatch(OLEBatchProcessAdhocStep.java:50)
at org.kuali.ole.batch.impl.OLEBatchProcessAdhocStep.execute(OLEBatchProcessAdhocStep.java:30)
at org.kuali.ole.sys.batch.Job.runStep(Job.java:175)
at org.kuali.ole.sys.batch.Job.execute(Job.java:121)
at org.quartz.core.JobRunShell.run(JobRunShell.java:216)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)
Caused by: java.lang.NullPointerException
at org.kuali.ole.batch.helper.BatchBibImportHelper.processBibMarcRecord(BatchBibImportHelper.java:89)
at org.kuali.ole.batch.helper.BatchBibImportHelper.processBatch(BatchBibImportHelper.java:70)
at org.kuali.ole.batch.ingest.BatchProcessBibImport.processBatch(BatchProcessBibImport.java:152)
at org.kuali.ole.batch.ingest.BatchProcessBibImport.processBatch(BatchProcessBibImport.java:83)
... 7 more
[ERROR] org.kuali.ole.batch.impl.OLEBatchProcessAdhocStep - Error while running Batch Process Step::OLEBatchProcessAdhocStep
java.lang.Exception: Batch process Failed
at org.kuali.ole.batch.impl.AbstractBatchProcess.process(AbstractBatchProcess.java:123)
at org.kuali.ole.batch.impl.OLEBatchProcessAdhocStep.executeBatch(OLEBatchProcessAdhocStep.java:50)
at org.kuali.ole.batch.impl.OLEBatchProcessAdhocStep.execute(OLEBatchProcessAdhocStep.java:30)
at org.kuali.ole.sys.batch.Job.runStep(Job.java:175)
at org.kuali.ole.sys.batch.Job.execute(Job.java:121)
at org.quartz.core.JobRunShell.run(JobRunShell.java:216)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)
Caused by: java.lang.RuntimeException: java.lang.NullPointerException
at org.kuali.ole.batch.ingest.BatchProcessBibImport.processBatch(BatchProcessBibImport.java:90)
at org.kuali.ole.batch.impl.AbstractBatchProcess.process(AbstractBatchProcess.java:87)
... 6 more
Caused by: java.lang.NullPointerException
at org.kuali.ole.batch.helper.BatchBibImportHelper.processBibMarcRecord(BatchBibImportHelper.java:89)
at org.kuali.ole.batch.helper.BatchBibImportHelper.processBatch(BatchBibImportHelper.java:70)
at org.kuali.ole.batch.ingest.BatchProcessBibImport.processBatch(BatchProcessBibImport.java:152)
at org.kuali.ole.batch.ingest.BatchProcessBibImport.processBatch(BatchProcessBibImport.java:83)
... 7 more
The line from which that that error is coming from suggests that the Batch Profile you are using has not been set up correctly in the database (specifically, it can't find the matching profile). One definitive indicator would be a stack trace output in catalina.out involving the getMatchingProfileObj method in the org.kuali.ole.batch.bo.OLEBatchProcessProfileBo class.
If you migrated your application code over top of an existing database without having fully migrated the data in that database correctly, this problem could result. Given that your question illustrates you used 1.5.0-M2 previously, which is a pre-release milestone, you are better off re-initializing your database and reloading your data before running batch processes with a new version of the OLE codebase.
If you already did that, then this may be fodder for a bug report.
Note that there were a lot of changes to the match/overlay part of the profiles in 1.5.2. You might want to look at how it is set up and make sure the choices apply. Match and overlay was added for holdings and items and is being tested, this makes for more complicated possible choices. YOu could try setting it to no match, just add the bib and see if that works. As long as your file is utf8, not MARC8 encoding it shoul dload

Oracle Data Integrator (ODI - v11.1.1.3) "unable to load language: beanshell" Error

Following an install of Eclipse 3.7.2 on my Ubuntu 12.04 development machine, I have been unable to execute any ODI packages/interfaces/procedures. On execution (for both simulated and actual runs), an error is thrown (java trace below). I am not sure if it's anything to do with the Eclipse install, but it seems likely. Does anyone have an idea how to fix this?
Also, when launching ODI from the terminal using 'bash odi', the following error is displayed in the terminal:
2013-08-15 14:43:46.162 ERROR Error during RuntimeClassLoader initialization. ODI will start without RuntimeClassLoader
Error output:
oracle.odi.core.exception.OdiRuntimeException: Error during Code Interpretor creation
at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.getInstance(SnpCodeInterpretor.java:209)
at com.sunopsis.dwg.codeinterpretor.SnpGeneratorSQLCIT.<init>(SnpGeneratorSQLCIT.java:300)
at com.sunopsis.graphical.dialog.SnpsDialogExecution.doPackageExecuter(SnpsDialogExecution.java:907)
at oracle.odi.ui.action.SnpsPopupActionExecuteHandler.actionPerformed(SnpsPopupActionExecuteHandler.java:68)
at oracle.odi.ui.SnpsActionControler.handleEvent(SnpsActionControler.java:75)
at oracle.ide.controller.IdeAction.performAction(IdeAction.java:529)
at oracle.ide.controller.IdeAction.actionPerformedImpl(IdeAction.java:884)
at oracle.ide.controller.IdeAction.actionPerformed(IdeAction.java:501)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:809)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:850)
at java.awt.Component.processMouseEvent(Component.java:6297)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3275)
at java.awt.Component.processEvent(Component.java:6062)
at java.awt.Container.processEvent(Container.java:2039)
at java.awt.Component.dispatchEventImpl(Component.java:4660)
at java.awt.Container.dispatchEventImpl(Container.java:2097)
at java.awt.Component.dispatchEvent(Component.java:4488)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4575)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4236)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4166)
at java.awt.Container.dispatchEventImpl(Container.java:2083)
at java.awt.Window.dispatchEventImpl(Window.java:2489)
at java.awt.Component.dispatchEvent(Component.java:4488)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:674)
at java.awt.EventQueue.access$400(EventQueue.java:81)
at java.awt.EventQueue$2.run(EventQueue.java:633)
at java.awt.EventQueue$2.run(EventQueue.java:631)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:647)
at java.awt.EventQueue$3.run(EventQueue.java:645)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:644)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: org.apache.bsf.BSFException: unable to load language: beanshell
at org.apache.bsf.BSFManager.loadScriptingEngine(BSFManager.java:718)
at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.loadEngine(SnpCodeInterpretor.java:85)
at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.<init>(SnpCodeInterpretor.java:75)
at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.getInstance(SnpCodeInterpretor.java:184)
... 45 more
After digging around for about a day on this issue, I brazenly tried running ODI as the root user on the off chance that this was a permissions issue. I started ODI from the command line (using 'bash odi') for greater verbosity, and it loaded without the error mentioned above. Something gave me the impression that this wasn't a permissions issue, but one related to the user settings.
To rectify the issue, I removed my user's odi settings folder (renaming it, for safety):
mv ~/.odi ~/.backup_odi
Then I started ODI from the terminal under my own user (i.e. not root) - there were no errors! None of my connections were available in the new settings folder though. This I fixed by closing ODI and entering the following:
cp ~/.backup_odi/oracledi/snps_login_work.xml ~/.odi/oracledi/
If anybody else encounters this issue, I hope you find this post quicker than it took me to fix it!
org.apache.bsf.BSFException: unable to load language: beanshell
The exception was thrown because bsh-2.Ob4.jar was not in the classpath and it is a dependent jar of bsf.jar

Resources