blob: 664cbfc35c4b99d63ee8d1e4bb5ea2e6279e1fc1 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<test-data
xmlns="http://pmd.sourceforge.net/rule-tests"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sourceforge.net/rule-tests https://pmd.sourceforge.io/rule-tests_1_0_0.xsd">
<test-code>
<description>All static fields must be immutable </description>
<expected-problems>1</expected-problems>
<code><![CDATA[
import java.util.Map;
import java.util.HashMap;
public class MutableStatic {
public static final Map f1 = new HashMap();
}
]]></code>
</test-code>
<test-code>
<description>Should not detect immutable static fields</description>
<expected-problems>0</expected-problems>
<code><![CDATA[
import java.net.InetAddress;
public class Immutable {
public static final int f1 = 0;
public static final String f2 = "hi";
public static final InetAddress f3 = null;
}
]]></code>
</test-code>
<test-code>
<description>Should ignore fields marked Immutable</description>
<expected-problems>0</expected-problems>
<code><![CDATA[
import org.apache.geode.annotations.Immutable;
import java.util.Map;
import java.util.Collections;
public class IsImmutable {
@Immutable
public static final Map f4 = Collections.emptyMap();
}
]]></code>
</test-code>
<test-code>
<description>Should not be fooled by annotating previous field</description>
<expected-problems>1</expected-problems>
<code><![CDATA[
import org.apache.geode.annotations.Immutable;
import java.util.Map;
import java.util.Collections;
public class IsImmutable {
@Immutable
public static final Map f4 = Collections.emptyMap();
public static final Map f5 = Collections.emptyMap();
}
]]></code>
</test-code>
<test-code>
<description>Should ingore logger </description>
<expected-problems>0</expected-problems>
<code><![CDATA[
import org.apache.logging.log4j.Logger;
import org.apache.geode.logging.internal.log4j.api.LogService;
public class HasLogger {
private static final Logger logger = LogService.getLogger();
}
]]></code>
</test-code>
<test-code>
<description>Should flag primitive arrays</description>
<expected-problems>1</expected-problems>
<code><![CDATA[
public class HasArray {
private static final int[] field = new int [] {1,2};
}
]]></code>
</test-code>
</test-data>