| <?xml version='1.0'?> |
| <!-- |
| 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. |
| --> |
| |
| <FindBugsFilter> |
| |
| <Match> |
| <!-- Having str restored to null is fine for our purposes --> |
| <Class name="org.apache.activemq.artemis.api.core.SimpleString"/> |
| <Field name="str"/> |
| <Bug pattern="SE_TRANSIENT_FIELD_NOT_RESTORED"/> |
| </Match> |
| |
| <Match> |
| <!-- The whole point of SimpleString is to expose this data without any performance penalty --> |
| <Class name="org.apache.activemq.artemis.api.core.SimpleString"/> |
| <method name="getData"/> |
| <Bug pattern="EI_EXPOSE_REP"/> |
| </Match> |
| |
| <!-- Ok to return mutable Object --> |
| <Match> |
| <Or> |
| <Class name="org.apache.activemq.artemis.core.protocol.core.impl.wireformat.ReplicationStartSyncMessage" /> |
| <Class name="org.apache.activemq.artemis.core.protocol.core.impl.wireformat.ReplicationSyncFileMessage" /> |
| <Class name="org.apache.activemq.artemis.core.protocol.core.impl.wireformat.ReplicationLargeMessageWriteMessage" /> |
| </Or> |
| <Bug pattern="EI_EXPOSE_REP"/> |
| </Match> |
| <!-- Ok to return mutable Object, here restricted to method getRecordData --> |
| <Match> |
| <Or> |
| <Class name="org.apache.activemq.artemis.core.protocol.core.impl.wireformat.ReplicationAddMessage" /> |
| <Class name="org.apache.activemq.artemis.core.protocol.core.impl.wireformat.ReplicationAddTXMessage" /> |
| <Class name="org.apache.activemq.artemis.core.protocol.core.impl.wireformat.ReplicationDeleteTXMessage" /> |
| <Class name="org.apache.activemq.artemis.core.protocol.core.impl.wireformat.ReplicationPrepareMessage" /> |
| </Or> |
| <Method name="getRecordData" /> |
| <Bug pattern="EI_EXPOSE_REP"/> |
| </Match> |
| |
| <!-- Comparison is correct within its context --> |
| <Match> |
| <Class name="org.apache.activemq.ra.ActiveMQRaUtils"/> |
| <Or> |
| <Method name="compare" params="java.lang.Integer,java.lang.Integer" returns="boolean"/> |
| <Method name="compare" params="java.lang.Long,java.lang.Long" returns="boolean"/> |
| <Method name="compare" params="java.lang.Double,java.lang.Double" returns="boolean"/> |
| </Or> |
| <Bug pattern="RC_REF_COMPARISON"/> |
| </Match> |
| |
| <!-- Comparison is correct within its context --> |
| <Match> |
| <Class name="org.apache.activemq.ra.Util"/> |
| <Method name="compare" params="java.lang.Boolean,java.lang.Boolean" returns="boolean"/> |
| <Bug pattern="RC_REF_COMPARISON_BAD_PRACTICE_BOOLEAN"/> |
| </Match> |
| |
| <!-- Comparison is correct within its context --> |
| <Match> |
| <Class name="org.apache.activemq.ra.Util"/> |
| <Method name="compare" params="java.lang.String,java.lang.String" returns="boolean"/> |
| <Bug pattern="ES_COMPARING_PARAMETER_STRING_WITH_EQ"/> |
| </Match> |
| |
| <Match> |
| <!-- As per Java Messaging Specification 3.5.4: |
| |
| " |
| Attempting to read a null value as a Java primitive type must be treated |
| as calling the primitive’s corresponding valueOf(String) conversion method |
| with a null value. |
| " |
| |
| so methods are passed null arguments to trigger the exact same exceptions. |
| --> |
| <Class name="org.apache.activemq.artemis.utils.collections.TypedProperties"/> |
| <Or> |
| <Method name="getFloatProperty"/> |
| <Method name="getDoubleProperty"/> |
| <Method name="getByteProperty"/> |
| <Method name="getIntProperty"/> |
| <Method name="getShortProperty"/> |
| </Or> |
| <Bug pattern="NP_NULL_PARAM_DEREF_NONVIRTUAL"/> |
| </Match> |
| |
| <Match> |
| <!-- Code is meant to measure memory usage, so calling Garbage Collection is normal. --> |
| <Class name="org.apache.activemq.artemis.utils.MemorySize"/> |
| <bug pattern="DM_GC"/> |
| </Match> |
| |
| <match> |
| <!-- Ignore naming convention violations in generated code --> |
| <class name="org.apache.activemq.artemis.core.filter.impl.FilterParser"/> |
| <bug pattern="NM_METHOD_NAMING_CONVENTION"/> |
| </match> |
| |
| <Match> |
| <!-- field changes are always guarded by PagingStoreImpl.lock.writeLock().lock() --> |
| <Class name="org.apache.activemq.artemis.core.paging.impl.PagingStoreImpl"/> |
| <Field name="numberOfPages" /> |
| <Bug pattern="VO_VOLATILE_INCREMENT"/> |
| </Match> |
| |
| <Match> |
| <!-- File is generated by JavaCC --> |
| <Class name="org.apache.activemq.artemis.core.filter.impl.ParseException"/> |
| <bug pattern="SBSC_USE_STRINGBUFFER_CONCATENATION"/> |
| </Match> |
| |
| <Match> |
| <!-- Generated by JavaCC: ignore naming convention violation --> |
| <Class name="~org\.apache\.activemq\.artemis\.core\.filter\.impl\.(FilterParser(|TokenManager|Constants)|TokenMgrError)"/> |
| <bug pattern="NM_METHOD_NAMING_CONVENTION,SF_SWITCH_NO_DEFAULT,MS_PKGPROTECT,URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD,MS_OOI_PKGPROTECT"/> |
| </Match> |
| |
| <Match> |
| <!-- Files generated by JBoss Logging are ignored --> |
| <Class name="~org\.activemq\..*\.ActiveMQ Artemis.*(Logger_\$logger|Bundle_\$bundle)"/> |
| </Match> |
| |
| <!-- Ignore checks on return values, example File.delete(), on samples/examples --> |
| <Match> |
| <Class name="~org\.apache\.activemq\.artemis\.common\.example.*Example"/> |
| <bug pattern="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE"/> |
| </Match> |
| |
| <Match> |
| <Class name="org.apache.activemq.artemis.utils.json.JSONObject$Null"/> |
| <Bug pattern="EQ_UNUSUAL"/> |
| </Match> |
| |
| <Match> |
| <Class name="org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$SharedNothingLiveActivation"/> |
| <Method name="isNodeIdUsed"/> |
| <Bug pattern="RV_RETURN_VALUE_IGNORED"/> |
| </Match> |
| |
| <!-- Examples often verify a null value and use the (null) variable in a sys-out statement --> |
| <Match> |
| <Or> |
| <Class name="org.apache.activemq.artemis.jms.example.TopicHierarchyExample"/> |
| <Class name="org.apache.activemq.artemis.jms.example.TransactionalExample"/> |
| </Or> |
| <Method name="runExample"/> |
| <Bug pattern="NP_LOAD_OF_KNOWN_NULL_VALUE"/> |
| </Match> |
| |
| </FindBugsFilter> |