diff --git a/core/src/main/java/com/opensymphony/xwork2/util/profiling/ProfilingTimerBean.java b/core/src/main/java/com/opensymphony/xwork2/util/profiling/ProfilingTimerBean.java
deleted file mode 100644
index 3706d2843..000000000
--- a/core/src/main/java/com/opensymphony/xwork2/util/profiling/ProfilingTimerBean.java
+++ /dev/null
@@ -1,129 +0,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.
- */
-
-/*
- * Copyright (c) 2002-2003, Atlassian Software Systems Pty Ltd All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation and/or
- * other materials provided with the distribution.
- * * Neither the name of Atlassian Software Systems Pty Ltd nor the names of
- * its contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-package com.opensymphony.xwork2.util.profiling;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Bean to contain information about the pages profiled
- *
- * @author Mike Cannon-Brookes
- * @author Scott Farquhar
- * @version $Date$ $Id$
- *
- * @deprecated will be dropped with next major release (2.6)
- */
-@Deprecated
-public class ProfilingTimerBean implements java.io.Serializable {
-
- private static final long serialVersionUID = -6180672043920208784L;
-
- List children = new ArrayList<>();
- ProfilingTimerBean parent = null;
-
- String resource;
-
- long startTime;
- long totalTime;
-
- public ProfilingTimerBean(String resource) {
- this.resource = resource;
- }
-
- protected void addParent(ProfilingTimerBean parent) {
- this.parent = parent;
- }
-
- public ProfilingTimerBean getParent() {
- return parent;
- }
-
-
- public void addChild(ProfilingTimerBean child) {
- children.add(child);
- child.addParent(this);
- }
-
-
- public void setStartTime() {
- this.startTime = System.currentTimeMillis();
- }
-
- public void setEndTime() {
- this.totalTime = System.currentTimeMillis() - startTime;
- }
-
- public String getResource() {
- return resource;
- }
-
- /**
- * @param minTime minimum time
- * @return a formatted string representing all the methods that took longer than a specified time.
- */
- public String getPrintable(long minTime) {
- return getPrintable("", minTime);
- }
-
- protected String getPrintable(String indent, long minTime) {
- //only print the value if we are larger or equal to the min time.
- if (totalTime >= minTime) {
- StringBuilder buffer = new StringBuilder();
- buffer.append(indent);
- buffer.append("[" + totalTime + "ms] - " + resource);
- buffer.append("\n");
-
- for (ProfilingTimerBean aChildren : children) {
- buffer.append((aChildren).getPrintable(indent + " ", minTime));
- }
-
- return buffer.toString();
- } else
- return "";
- }
-}
-
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/profiling/package.html b/core/src/main/java/com/opensymphony/xwork2/util/profiling/package.html
deleted file mode 100644
index 766d4b870..000000000
--- a/core/src/main/java/com/opensymphony/xwork2/util/profiling/package.html
+++ /dev/null
@@ -1,21 +0,0 @@
-
-Classes to enable profiling of action execution.
diff --git a/core/src/test/java/com/opensymphony/xwork2/util/profiling/ProfilingTimerBeanTest.java b/core/src/test/java/com/opensymphony/xwork2/util/profiling/ProfilingTimerBeanTest.java
deleted file mode 100644
index 443f469fd..000000000
--- a/core/src/test/java/com/opensymphony/xwork2/util/profiling/ProfilingTimerBeanTest.java
+++ /dev/null
@@ -1,127 +0,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.
- */
-package com.opensymphony.xwork2.util.profiling;
-
-import junit.framework.TestCase;
-
-/**
- *
- * @author tm_jee
- * @version $Date$ $Id$
- */
-public class ProfilingTimerBeanTest extends TestCase {
-
- public void testAddChild() throws Exception {
- ProfilingTimerBean bean0 = new ProfilingTimerBean("bean0");
- ProfilingTimerBean bean1 = new ProfilingTimerBean("bean1");
- ProfilingTimerBean bean2 = new ProfilingTimerBean("bean2");
- ProfilingTimerBean bean3 = new ProfilingTimerBean("bean3");
- ProfilingTimerBean bean4 = new ProfilingTimerBean("bean4");
- ProfilingTimerBean bean5 = new ProfilingTimerBean("bean5");
- ProfilingTimerBean bean6 = new ProfilingTimerBean("bean6");
- ProfilingTimerBean bean7 = new ProfilingTimerBean("bean7");
- ProfilingTimerBean bean8 = new ProfilingTimerBean("bean8");
-
- /* bean0
- * + bean1
- * + bean2
- * + bean3
- * + bean4
- * + bean5
- * + bean6
- * +bean7
- * + bean8
- */
-
- bean0.addChild(bean1);
- bean0.addChild(bean3);
- bean0.addChild(bean8);
-
- bean1.addChild(bean2);
-
- bean3.addChild(bean4);
- bean3.addChild(bean7);
-
- bean4.addChild(bean5);
-
- bean5.addChild(bean6);
-
-
- // bean0
- assertNull(bean0.getParent());
- assertEquals(bean0.children.size(), 3);
- assertTrue(bean0.children.contains(bean1));
- assertTrue(bean0.children.contains(bean3));
- assertTrue(bean0.children.contains(bean8));
-
- // bean1
- assertEquals(bean1.getParent(), bean0);
- assertEquals(bean1.children.size(), 1);
- assertTrue(bean1.children.contains(bean2));
-
- // bean2
- assertEquals(bean2.getParent(), bean1);
- assertEquals(bean2.children.size(), 0);
-
- // bean3
- assertEquals(bean3.getParent(), bean0);
- assertEquals(bean3.children.size(), 2);
- assertTrue(bean3.children.contains(bean4));
- assertTrue(bean3.children.contains(bean7));
-
- // bean4
- assertEquals(bean4.getParent(), bean3);
- assertEquals(bean4.children.size(), 1);
- assertTrue(bean4.children.contains(bean5));
-
- // bean5
- assertEquals(bean5.getParent(), bean4);
- assertEquals(bean5.children.size(), 1);
- assertTrue(bean5.children.contains(bean6));
-
- // bean6
- assertEquals(bean6.getParent(), bean5);
- assertEquals(bean6.children.size(), 0);
-
- // bean7
- assertEquals(bean7.getParent(), bean3);
- assertEquals(bean7.children.size(), 0);
-
- // bean8
- assertEquals(bean8.getParent(), bean0);
- assertEquals(bean8.children.size(), 0);
- }
-
- public void testTime() throws Exception {
- ProfilingTimerBean bean0 = new ProfilingTimerBean("bean0");
- bean0.setStartTime();
- Thread.sleep(1050);
- bean0.setEndTime();
- assertTrue(bean0.totalTime >= 1000);
- }
-
- public void testPrint() throws Exception {
- ProfilingTimerBean bean0 = new ProfilingTimerBean("bean0");
- bean0.setStartTime();
- Thread.sleep(1050);
- bean0.setEndTime();
- assertEquals(bean0.getPrintable(2000), "");
- assertTrue(bean0.getPrintable(500).length() > 0);
- }
-}