小编bed*_*rin的帖子

如何找出哪个线程容纳显示器?

我的应用程序Gson 2.2用于转换POJOsJSON.当我进行负载测试时,我偶然发现Gson构造函数中阻塞了很多线程:

"http-apr-28201-exec-28" #370 daemon prio=5 os_prio=0 tid=0x0000000001ee7800 nid=0x62cb waiting for monitor entry [0x00007fe64df9a000]
    java.lang.Thread.State: BLOCKED (on object monitor)
    at com.google.gson.Gson.<init>(Gson.java:200)
    at com.google.gson.Gson.<init>(Gson.java:179)
Run Code Online (Sandbox Code Playgroud)

线程转储不显示任何线程持有[0x00007fe64df9a000] monitor. 我怎样才能知道谁拥有它?

Gson第200行的代码看起来很无辜:

// built-in type adapters that cannot be overridden
factories.add(TypeAdapters.STRING_FACTORY);
factories.add(TypeAdapters.INTEGER_FACTORY);
Run Code Online (Sandbox Code Playgroud)

我使用JRE 1.8.0_91Linux

java multithreading thread-dump gson

27
推荐指数
1
解决办法
2581
查看次数

如何在Logback中避免CRLF(回车和换行)-CWE 117

我正在使用Logback,并且在记录用户参数时需要避免CRLF(回车和换行)。
我试图在静态地图PatternLayout.defaultConverterMap上添加扩展了ClassicConverter的类,但是没有用。

谢谢,

security logback carriage-return linefeed log-forging

6
推荐指数
1
解决办法
1237
查看次数

EclipseLink/JPA:如何以编程方式获取已执行的SQL查询数

我正在使用JPA,通过EclipseLink.在我的单元测试中,我想测试在操作期间执行了多少SQL查询.这样,如果稍后的修改导致查询计数爆炸(例如,如果触发延迟加载),则单元测试将其标记为可能需要优化.

我正在寻找正确的API来做到这一点.纯JPA解决方案是理想的,但我可以在单元测试中使用特定于EclipseLink的API.我查看了EclipseLink分析器,但它似乎没有给我一种方法来计算SQL查询的数量.

在此先感谢您的帮助!

java sql jpa eclipselink sniffy

5
推荐指数
1
解决办法
501
查看次数

鉴于参数名称在编译期间丢失,Spring如何通过参数名称自动装配?

考虑使用创建的两个相同类型的bean进行以下配置:

@Configuration
@ComponentScan(basePackageClasses = TwoStrings.class)
public class Config {

    @Bean
    public String one() {
        return "one";
    }

    @Bean
    public String two() {
        return "two";
    }

}
Run Code Online (Sandbox Code Playgroud)

依赖于上面两个bean的另一个bean是由组件扫描创建的:

@Component
public class TwoStrings {

    public final String a;
    public final String b;

    @Autowired
    public TwoStrings(String one, String two) {
        this.a = one;
        this.b = two;
    }

}
Run Code Online (Sandbox Code Playgroud)

编译期间局部变量/参数的名称将丢失,并且在运行时不可用:

在此输入图像描述

但是,Spring以某种方式String正确地自动连接两个bean.下面的示例测试

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = Config.class )
public class Example {

    @Autowired
    private TwoStrings twoStrings;

    @Test
    public void test() {
        System.out.println(twoStrings.a);
        System.out.println(twoStrings.b);
    } …
Run Code Online (Sandbox Code Playgroud)

java reflection spring

3
推荐指数
1
解决办法
262
查看次数