文档说你不应该锁定基于值的Java类的实例,例如Optional因为代码
如果它试图将两个引用区分为基于值的类的相等值,则可能产生不可预测的结果......间接地通过对同步的诉求......
因为未来的JVM实现可能不会使用对象标头和基于值的类的引用指针,所以一些限制很明显.(例如,没有锁定JVM必须不支持的标识.锁定的引用可以被删除并在以后被另一个替换,这使得释放锁定毫无意义并将导致死锁).
IE认为该禁令是面向未来的.但是这个断言没有参考.
如果以未来为基础,我想参考它.如果没有,我想了解基于价值的对象是什么基础Object.
编辑
顺便说一句,我理解不要锁定Integers和其他原始包装类的原因; 他们可能会被缓存.但是我找不到任何文档说基于价值的类,以及整数,等等.基于价值观,它们不是基于价值的类.IE 可选的JavaDocs等.明确地说
这是一个基于价值的课程
对于Integer,等等,情况并非如此.
使用声纳如何仅针对我所做的当前更改进行静态代码分析。例如,我的项目 100 类/文件,我对类/文件进行了更改,现在声纳必须仅针对该特定项目而不是整个项目运行静态代码分析。如何实现?
我们已经将我们的前端项目迁移ionic/es6/angular到了ionic2/typescript/angular2.一切都很好,除了我们不知道如何运行声纳报告项目.
以前我们使用gulp和run gulp sonar命令生成声纳报告(在本地声纳服务器上).
我们不会在新的ionic2项目中使用gulp,并想知道如何在新项目中运行声纳扫描仪.
注意
sonar-project.properties在项目rood目录中添加了文件问题是如何运行它
谢谢...
我们在AWS节点上运行SonarQube 5.1.2.经过一段时间的使用,通常是一两天后,Sonar Web服务器变得没有响应,并且服务器的CPU会出现问题:
top - 01:59:47 up 2 days, 3:43, 1 user, load average: 1.89, 1.76, 1.11
Tasks: 93 total, 1 running, 92 sleeping, 0 stopped, 0 zombie
Cpu(s): 94.5%us, 0.0%sy, 0.0%ni, 5.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 7514056k total, 2828772k used, 4685284k free, 155372k buffers
Swap: 0k total, 0k used, 0k free, 872440k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2328 root 20 0 3260m 1.1g 19m S 188.3 15.5 62:51.79 java
11 …Run Code Online (Sandbox Code Playgroud) 我们正在使用遗留项目(maven)来设置devop.初学者与詹金斯.Jenkins构建现在没有问题.但是,在将sonarqube与jenkins集成时,我们收到以下错误:
ERROR: Error during SonarQube Scanner execution
java.lang.IllegalStateException: Error when executing blame for file src/main/java/com/acme/acq/scavenger/AssetCmboItem.java
at org.sonar.plugins.scm.svn.SvnBlameCommand.blame(SvnBlameCommand.java:100)
at org.sonar.plugins.scm.svn.SvnBlameCommand.blame(SvnBlameCommand.java:59)
at org.sonar.batch.scm.ScmSensor.execute(ScmSensor.java:84)
at org.sonar.batch.sensor.SensorWrapper.analyse(SensorWrapper.java:57)
at org.sonar.batch.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:58)
at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:50)
at org.sonar.batch.phases.PhaseExecutor.execute(PhaseExecutor.java:102)
at org.sonar.batch.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:185)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:120)
at org.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.java:264)
at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:259)
at org.sonar.batch.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:249)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)
at org.sonar.batch.scan.ProjectScanContainer.startComponents(ProjectScanContainer.java:127)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:120)
at org.sonar.batch.task.ScanTask.execute(ScanTask.java:55)
at org.sonar.batch.task.TaskContainer.doAfterStart(TaskContainer.java:86)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:120)
at org.sonar.batch.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:122)
at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:119)
at org.sonar.runner.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:67)
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 org.sonar.runner.impl.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:61)
at com.sun.proxy.$Proxy0.execute(Unknown Source)
at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:274)
at org.sonar.runner.api.EmbeddedRunner.runAnalysis(EmbeddedRunner.java:165)
at …Run Code Online (Sandbox Code Playgroud) SonarQube(大于5.2)分析的这些预览和问题模式之间的主要区别是什么?
考虑到http://docs.sonarqube.org/display/SONAR/Concepts 发布和预览之间的主要区别在于,预览仅报告问题(无测量),并且没有报告被推回SonarQube服务器; 这个想法很清楚.但问题呢?编写的问题与预览相同,但仅应用于工具开发.我有点困惑,工具是什么意思?
使用 sonarqube 进行分析时,有没有办法排除类中的特定方法?我找到的只是如何排除文件和模块。
我们有一个非常大的代码库,其中一个项目打破了SonarQube分析,出现以下错误.
016-12-15T11:20:30.8989361Z ##[error]ERROR: Error during SonarQube Scanner execution
2016-12-15T11:20:30.8999277Z ##[error]java.lang.IllegalStateException: Line 1203 is out of range in the file Converters/IMSServiceToESBConverter.cs (lines: 1202)
Run Code Online (Sandbox Code Playgroud)
我们正在使用SonarQube 6.1和最新的C#插件(5.5.1.522).
禁用C#配置文件中的所有规则仍会导致此问题.
在sonarqube 5.6.4中,如何查看重复的代码块?在 4.5 中,重复指标下有一个几乎隐藏的 UI 元素。现在它什么也没做。
由于问题附加在文件顶部,我如何知道需要修复什么?
我需要只分析根项目,并忽略嵌套的子模块,但它d
所以我有这个层次结构:
ProjectMain
-src
-subProjectAngular
settings.gradle
Run Code Online (Sandbox Code Playgroud)
我的配置settings.gradle
rootProject.name="ProjectMain"
include 'subProjectAngular'
Run Code Online (Sandbox Code Playgroud)
我只需要分析根项目,并忽略嵌套的子模块,但我得到:
A multi-module project can't have source folders, so 'C:\Users\vagrant\develop-2\site\Source\Site\Vessels\src\main\java' won't be used for the analysis. If you want to analyse files of this folder, y
ou should create another sub-module and move them inside it.
Run Code Online (Sandbox Code Playgroud)
然后我尝试添加多模块配置:
systemProp.sonar.projectKey=site
systemProp.sonar.projectName=vessels-test
systemProp.sonar.projectBaseDir=.
systemProp.sonar.sources=src
systemProp.sonar.modules=javamodule, angularmodule
systemProp.javamodule.sonar.projectName=vessels
systemProp.javamodule.sonar.sources=src
systemProp.javamodule.sonar.projectBaseDir=.
systemProp.javamodule.sonar.language=java
systemProp.angularmodule.sonar.projectName=angular
systemProp.angularmodule.sonar.projectBaseDir=.
systemProp.angularmodule
Run Code Online (Sandbox Code Playgroud)
但在UI处收到消息:未执行任何分析
它仅在我从settings.gradle中删除子项目的定义时才有效,并删除所有子模块配置