Buggy code:
public class EDBarcodeReportServiceImpl implements EDBarcodeReportService { private static final Logger logger = LogManager . getLogger ( EDBarcodeReportServiceImpl . class ) ; @ Override public byte [ ] generateReport ( SR12011FormReport form ) throws EDBarcodeReportException { } @ Override public int generateReport ( String xmlFile , String outputPath , String uniqueId ) throws EDBarcodeReportException { } @ Override public int generateReport ( String xmlFile , String outputPath , String uniqueId , String referenceNumber ) throws EDBarcodeReportException { } private List < ExporterInputItem > getSR12011ExportInputItemList ( SR12011FormReport form ) throws EDBarcodeReportException { } private List < ExporterInputItem > getFundExportInputItemList ( SR12011FormReport form ) throws EDBarcodeReportException { } private List < JasperPrint > getSR12011ReportList ( SR12011FormReport form ) throws IOException , ParseException , JRException { } private JasperPrint getSSS101Report ( SR12011FormReport form ) throws IOException , ParseException , JRException { } private JasperPrint getSST101Report ( SR12011FormReport form ) throws IOException , ParseException , JRException { } private JasperPrint getKKT101Report ( SR12011FormReport form ) throws IOException , ParseException , JRException { } private JasperPrint getFundReport ( Map < String , Object > paramMap , SR12011FormReport form , FundEntryReport fundEntry ) throws IOException , ParseException , JRException { EDBarcodeReportServiceImpl . logger . info ( "Prepare<seq2seq4repair_space>data<seq2seq4repair_space>for<seq2seq4repair_space>Fund<seq2seq4repair_space>Report" ) ; paramMap . put ( "companyName" , form . getTaxpayerInfoReport ( ) . getCompanyName ( ) ) ; paramMap . put ( "taxpayerName" , form . getTaxpayerInfoReport ( ) . getTaxpayerName ( ) ) ; paramMap . put ( "tin" , form . getTaxpayerInfoReport ( ) . getTin ( ) ) ; putAddressData ( paramMap , form . getTaxpayerInfoReport ( ) ) ; boolean isRefNumFlag = StringUtils . isNotEmpty ( form . getSummaryReport ( ) . getReferenceNumber ( ) ) ; if ( isRefNumFlag ) { paramMap . put ( "referenceNumber" , form . getSummaryReport ( ) . getReferenceNumber ( ) ) ; paramMap . put ( "submissionDate" , "" ) ; } else { paramMap . put ( "referenceNumber" , "" ) ; paramMap . put ( "submissionDate" , "" ) ; } DecimalFormat decimalFormat = new DecimalFormat ( DECIMAL_FORMAT . TWO_DIGIT ) ; <START_BUG> String exciseAmount = decimalFormat . format ( new BigDecimal ( form . getSummaryReport ( ) . getExciseAmountSubtractTaxLessAmount ( ) ) ) ; <END_BUG> paramMap . put ( "exciseAmountBaht" , exciseAmount . split ( "\\." ) [ 0 ] ) ; paramMap . put ( "exciseAmountStang" , exciseAmount . split ( "\\." ) [ 1 ] ) ; String fundAmount = decimalFormat . format ( new BigDecimal ( fundEntry . getFundAmt ( ) ) ) ; String creditAmount = decimalFormat . format ( new BigDecimal ( fundEntry . getCreditAmt ( ) ) ) ; String netAmount = decimalFormat . format ( new BigDecimal ( fundEntry . getNetAmt ( ) ) ) ; paramMap . put ( "fundAmountBaht" , fundAmount . split ( "\\." ) [ 0 ] ) ; paramMap . put ( "fundAmountStang" , fundAmount . split ( "\\." ) [ 1 ] ) ; if ( ( ( form . getCreditListReport ( ) ) != null ) && ( ! ( form . getCreditListReport ( ) . isEmpty ( ) ) ) ) { paramMap . put ( "taxDeductionOnBookNo" , form . getCreditListReport ( ) . get ( 0 ) . getCreditDocNo ( ) ) ; } else { paramMap . put ( "taxDeductionOnBookNo" , "" ) ; } paramMap . put ( "creditAmountBaht" , creditAmount . split ( "\\." ) [ 0 ] ) ; paramMap . put ( "creditAmountStang" , creditAmount . split ( "\\." ) [ 1 ] ) ; paramMap . put ( "netAmountBaht" , netAmount . split ( "\\." ) [ 0 ] ) ; paramMap . put ( "netAmountStang" , netAmount . split ( "\\." ) [ 1 ] ) ; paramMap . put ( "netAmountString" , ThaiNumberUtils . toThaiBaht ( netAmount . replaceAll ( "," , "" ) ) ) ; StringBuilder builder = new StringBuilder ( ) ; FundBarcodeData fundBarcodeData = new FundBarcodeData ( ) ; if ( ! isRefNumFlag ) { fundBarcodeData . generateBarcodeForFundReport ( builder , form , fundEntry ) ; } else { fundBarcodeData . generateBarcodeForFundReportRef ( builder , form , fundEntry . getFundType ( ) ) ; } EDBarcodeReportServiceImpl . logger . debug ( ( "Data<seq2seq4repair_space>in<seq2seq4repair_space>barcode:\n" + builder ) ) ; paramMap . put ( "barcodeData" , builder . toString ( ) ) ; JasperPrint jasperPrint = null ; if ( ! isRefNumFlag ) { jasperPrint = ReportUtil . getJasperPrintWithJasper ( fundEntry . getReportName ( ) , paramMap ) ; } else { jasperPrint = ReportUtil . complieReportWithJasperDesign ( fundBarcodeData . getJasperDesignWithResizeQrCode ( fundEntry . getReportName ( ) ) , paramMap ) ; } return jasperPrint ; } private void putAddressData ( Map < String , Object > paramMap , TaxpayerInfoReport taxpayerInfo ) { } private FundEntryReport getFundEntryFromFundList ( List < FundEntryReport > fundList , String fundType ) { } }

Fix:
String exciseAmount = decimalFormat . format ( new BigDecimal ( form . getSummaryReport ( ) . getPaymentExciseAmount ( ) ) ) ;