@@ -0,0 +1,2160 @@
+/*%0A * Copyright 2000-2014 JetBrains s.r.o.%0A *%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A * http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A */%0Apackage com.siyeh.ig.threading;%0A%0Aimport com.intellij.codeInspection.InspectionProfileEntry;%0Aimport com.siyeh.ig.LightInspectionTestCase;%0A%0A/**%0A * @author Bas Leijdekkers%0A */%0Apublic class DoubleCheckedLockingInspectionTest extends LightInspectionTestCase %7B%0A%0A  public void testSimple() %7B%0A    doTest(%22class A %7B%22 +%0A           %22    private  boolean initialized;%5Cn%22 +%0A           %22    private void initialize() %7B%5Cn%22 +%0A           %22        /*Double-checked locking*/if/**/ (initialized == false) %7B%5Cn%22 +%0A           %22            synchronized (this) %7B%5Cn%22 +%0A           %22                if (initialized == false) %7B%5Cn%22 +%0A           %22                    initialized = true;%5Cn%22 +%0A           %22                %7D%5Cn%22 +%0A           %22            %7D%5Cn%22 +%0A           %22        %7D%5Cn%22 +%0A           %22    %7D%5Cn%22 +%0A           %22%7D%22);%0A  %7D%0A%0A  public void testVolatile() %7B%0A    doTest(%22class X %7B%22 +%0A           %22    private volatile boolean initialized;%5Cn%22 +%0A           %22    private void initialize() %7B%5Cn%22 +%0A           %22        if (initialized == false) %7B%5Cn%22 +%0A           %22            synchronized (this) %7B%5Cn%22 +%0A           %22                if (initialized == false) %7B%5Cn%22 +%0A           %22                    initialized = true;%5Cn%22 +%0A           %22                %7D%5Cn%22 +%0A           %22            %7D%5Cn%22 +%0A           %22        %7D%5Cn%22 +%0A           %22    %7D%5Cn%22 +%0A           %22%7D%22);%0A  %7D%0A%0A  @Override%0A  protected InspectionProfileEntry getInspection() %7B%0A    final DoubleCheckedLockingInspection inspection = new DoubleCheckedLockingInspection();%0A    inspection.ignoreOnVolatileVariables = true;%0A    return inspection;%0A  %7D%0A%7D%0A

add test