[AMQ-8104] Fix NPE when pausing queue if audit is on

cherry picked from 651c5ff2cf
This commit is contained in:
Roman Nevezhyn 2020-12-16 12:54:03 -08:00 committed by jbonofre
parent f923a2c0df
commit f71c6674f0
2 changed files with 45 additions and 0 deletions

View File

@ -202,6 +202,7 @@ public class AnnotatedMBean extends StandardMBean {
@Override @Override
public Object invoke(String s, Object[] objects, String[] strings) throws MBeanException, ReflectionException { public Object invoke(String s, Object[] objects, String[] strings) throws MBeanException, ReflectionException {
objects = (objects == null) ? new Object[]{} : objects;
JMXAuditLogEntry entry = null; JMXAuditLogEntry entry = null;
if (audit != OFF) { if (audit != OFF) {
Subject subject = Subject.getSubject(AccessController.getContext()); Subject subject = Subject.getSubject(AccessController.getContext());

View File

@ -0,0 +1,44 @@
/**
* 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.
*/
package org.apache.activemq.broker.jmx;
/**
* A test case of the various MBeans in ActiveMQ with audit log turned on.
*/
public class MBeanWithAuditLogTest extends MBeanTest {
static final String requiredAuditValue = "all";
static final String auditKey = "org.apache.activemq.audit";
static final String initialAuditValue = System.getProperty("org.apache.activemq.audit");
@Override
protected void setUp() throws Exception {
System.setProperty(auditKey, requiredAuditValue);
super.setUp();
}
@Override
protected void tearDown() throws Exception {
if (initialAuditValue == null) {
System.clearProperty(auditKey);
} else {
System.setProperty(auditKey, initialAuditValue);
}
super.tearDown();
}
}