I have created a swing application. I have created a report with iReport 5.6.0. Now whenever I call the report and tried to add the report in JInternalFrame it throws exception. I am sharing my code bellow.
Report Viewer
public class MyReportViewer extends JInternalFrame {
public MyReportViewer(String fileName){
this(fileName, null);
}
public MyReportViewer(String fileName, HashMap parameter) {
super("View Report",true,true,true,true);
try {
DB_Con db = new DB_Con();
JasperPrint print = JasperFillManager.fillReport(fileName,parameter,db.con);
java.util.List list = print.getPages();
if(!(list.isEmpty())) {
JRViewer viewer = new JRViewer(print);
Container contentPane = super.getContentPane();
contentPane.removeAll();
contentPane.add(viewer);
int sW =(int)Toolkit.getDefaultToolkit().getScreenSize().getWidth();
int sH = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight()-50;
setBounds(0,0,sW,sH);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
} else {
BOptionPane.showMessageDialog(null,
BOptionPane.REPORT_MESSAGE,
BOptionPane.ERROR_TITLE,
BOptionPane.ERROR_ICON);
}
}catch(JRException jre){
jre.printStackTrace();
}
}
}
Main Frame
public class frmMenu extends JFrame {
public frmMenu(){
initComponents();
}
JDesktopPane dPane = new JDesktopPane();
//---- itemAllSizeInfo ----
itemAllSizeInfo.setText("All Size List");
itemAllSizeInfo.setFont(new Font("Rupali", Font.BOLD, 14));
itemAllSizeInfo.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
MyReportViewer sizeInfo = new MyReportViewer(".\\Report\\All_Size_List.jasper");
dPane.add(sizeInfo);
sizeInfo.setVisible(true);
}
});
The Exception:
Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError at net.sf.jasperreports.view.JRViewer$23.getRenderersCache(JRViewer.java:2256) at net.sf.jasperreports.view.JRViewer$23.getRenderersCache(JRViewer.java:2256) at net.sf.jasperreports.view.JRViewer$23.getRenderersCache(JRViewer.java:2256) at net.sf.jasperreports.view.JRViewer$23.getRenderersCache(JRViewer.java:2256) at net.sf.jasperreports.view.JRViewer$23.getRenderersCache(JRViewer.java:2256) at net.sf.jasperreports.view.JRViewer$23.getRenderersCache(JRViewer.java:2256) at net.sf.jasperreports.view.JRViewer$23.getRenderersCache(JRViewer.java:2256) at net.sf.jasperreports.view.JRViewer$23.getRenderersCache(JRViewer.java:2256) at net.sf.jasperreports.view.JRViewer$23.getRenderersCache(JRViewer.java:2256)
Can anyone help to find out to overcome the problem. I am using iReport 5.6.0 and JDK 1.7.0 version
This was a bug on the Jasper. Just use the last version.