⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 doublecheckedlockingruletest.java

📁 检查Java程序漏洞
💻 JAVA
字号:
/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html*/package test.net.sourceforge.pmd.rules;import net.sourceforge.pmd.PMD;import net.sourceforge.pmd.rules.DoubleCheckedLockingRule;import test.net.sourceforge.pmd.testframework.SimpleAggregatorTst;import test.net.sourceforge.pmd.testframework.TestDescriptor;public class DoubleCheckedLockingRuleTest extends SimpleAggregatorTst {    public void testAll() {       runTests(new TestDescriptor[] {           new TestDescriptor(TEST1, "simple ok", 0, new DoubleCheckedLockingRule()),           new TestDescriptor(TEST2, "simple failure", 1, new DoubleCheckedLockingRule()),           new TestDescriptor(TEST3, "skip interfaces", 0, new DoubleCheckedLockingRule()),       });    }    private static final String TEST1 =    "public class Foo {" + PMD.EOL +    " public void foo() {}" + PMD.EOL +    "}";    private static final String TEST2 =    "public class Foo {" + PMD.EOL +    "      Object baz;" + PMD.EOL +    "      Object bar() {" + PMD.EOL +    "        if(baz == null) { //baz may be non-null yet not fully created" + PMD.EOL +    "          synchronized(this){" + PMD.EOL +    "            if(baz == null){" + PMD.EOL +    "              baz = new Object();" + PMD.EOL +    "            }" + PMD.EOL +    "          }" + PMD.EOL +    "        }" + PMD.EOL +    "        return baz;" + PMD.EOL +    "      }" + PMD.EOL +    "}";    private static final String TEST3 =    "public interface Foo {" + PMD.EOL +    " void foo();" + PMD.EOL +    "}";}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -