linsage / java2json

A simple plugin for converting Java bean to JSON in IntelliJ IDEA
49 stars 22 forks source link

StackOverFlowError (another one) #4

Closed gajatko closed 2 years ago

gajatko commented 5 years ago

Beans:

public class TaskBean{
    private Timestamp startDate;    
    private String sType;   
    private String name;    
(some more strings)
    private List<String> every;
    private boolean otherServer=false;
    private String scriptName;
    private ArrayList<String> parameters = new ArrayList<String>();
    private ToolData tool;  
public class ToolData{  
    private String name;
    private String action;
    private ToolType type;
    private String toolboxName;
    private String email;
    private boolean endIfOneCrash;
    private List<ToolParameter> parameters = new ArrayList<>();
//  private List<ToolData> sequenceTools = new ArrayList<>();

    public ToolData() { }
public class ToolParameter {
    private String name;
    private String type;
    private Boolean optional;
    private List<String> items = new ArrayList<>();
    private String defaultValue;
    private String value;
    private String comment;
public enum ToolType {
    webTool("webTool"),oracleTool("oracleTool"),scriptTool("scriptTool"), sequenceTool("sequenceTool");
    private String value;

    public String getValue() {
        return value;
    }

    private ToolType(String value) {
        this.value = value;
    }
}

There was another stack overflow due to recursion, but after commenting out List<ToolData> in ToolData and fixing compile errors, error still happens Stacktrace:

java.lang.StackOverflowError
    at java.io.FileOutputStream.writeBytes(Native Method)
    at java.io.FileOutputStream.write(FileOutputStream.java:326)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
    at java.io.BufferedOutputStream.write(BufferedOutputStream.java:126)
    at java.io.PrintStream.write(PrintStream.java:480)
    at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221)
    at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:291)
    at sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:104)
    at java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:185)
    at java.io.PrintStream.write(PrintStream.java:527)
    at java.io.PrintStream.print(PrintStream.java:669)
    at java.io.PrintStream.println(PrintStream.java:806)
    at com.linsage.Java2JsonAction.getFields(Java2JsonAction.java:115)
    at com.linsage.Java2JsonAction.getFields(Java2JsonAction.java:116)
    at com.linsage.Java2JsonAction.getFields(Java2JsonAction.java:116)
    at com.linsage.Java2JsonAction.getFields(Java2JsonAction.java:116)
    at com.linsage.Java2JsonAction.getFields(Java2JsonAction.java:116)
    at com.linsage.Java2JsonAction.getFields(Java2JsonAction.java:116)
    at com.linsage.Java2JsonAction.getFields(Java2JsonAction.java:116)
    at com.linsage.Java2JsonAction.getFields(Java2JsonAction.java:116)
    at com.linsage.Java2JsonAction.getFields(Java2JsonAction.java:116)
    at com.linsage.Java2JsonAction.getFields(Java2JsonAction.java:116)
    at com.linsage.Java2JsonAction.getFields(Java2JsonAction.java:116)
    at com.linsage.Java2JsonAction.getFields(Java2JsonAction.java:116)
    at com.linsage.Java2JsonAction.getFields(Java2JsonAction.java:116)
    at com.linsage.Java2JsonAction.getFields(Java2JsonAction.java:116)
    at com.linsage.Java2JsonAction.getFields(Java2JsonAction.java:116)
    at com.linsage.Java2JsonAction.getFields(Java2JsonAction.java:116)
(and so on)
linsage commented 2 years ago

try upgrading the version to 1.0.7+