pascal-lab/Tai-e

Program doesn't end

runner02 opened this issue · 2 comments

Describe the bug

I run the following program:

package org.example;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Main {

    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
    }
}

Also attached pom.xml dependencies section:

 <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot</artifactId>
            <version>3.1.2</version>
        </dependency>
    </dependencies>

and it never ends although there is only one call

Tai-e arguments

-cp
MyApp.jar:/home/runner/.m2/repository/org/springframework/spring-beans/6.0.11/spring-beans-6.0.11.jar:/home/runner/.m2/repository/org/springframework/spring-context/6.0.11/spring-context-6.0.11.jar:/home/runner/.m2/repository/org/springframework/spring-core/6.0.11/spring-core-6.0.11.jar:/home/runner/.m2/repository/org/springframework/spring-jcl/6.0.11/spring-jcl-6.0.11.jar:/home/runner/.m2/repository/org/springframework/boot/spring-boot/3.1.2/spring-boot-3.1.2.jar:/home/runner/.m2/repository/org/springframework/spring-expression/6.0.11/spring-expression-6.0.11.jar:/home/runner/.m2/repository/org/springframework/spring-aop/6.0.11/spring-aop-6.0.11.jar
-m
org.example.Main
-pp
-ap
-scope
REACHABLE
-a
pta=handle-invokedynamic:true;cs:2-type;implicit-entries:false;dump:false;reflection-inference:solar;only-app:false;merge-string-objects:false;distinguish-string-constants:all
-a
cg=dump-call-edges:true

Runtime environment infomation

No response

Try to troubleshoot it gradually from simple analysis options to time-consuming analysis options.

Notes that cs:2-type;, merge-string-objects:false;, distinguish-string-constants:all and reflection-inference:solar; are time-consuming. You can observe the analysis time from enabling one to enabling multiple above options to choose the analysis option that best suits your scenario (the trade-off between precision and efficiency).

You can try:

  • change reflection-inference:solar; to reflection-inference:null;
  • change cs:2-type;to cs:ci;
  • change merge-string-objects:false; to merge-string-objects:true;

If no further information is provided, we tend to close this issue.