Fix NPE & use try-with-resources issues 87/59987/3
authorParshad Patel <pars.patel@samsung.com>
Fri, 10 Aug 2018 09:41:57 +0000 (18:41 +0900)
committerParshad Patel <pars.patel@samsung.com>
Mon, 20 Aug 2018 05:32:29 +0000 (14:32 +0900)
Sonar issues fix in ReportHandler.java

Issue-ID: PORTAL-342
Change-Id: Iaab16fefb8abe99e70793dbb8ae12e66cdf6b365
Signed-off-by: Parshad Patel <pars.patel@samsung.com>
ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/ReportHandler.java

index 415edb0..00e9dfe 100644 (file)
@@ -505,13 +505,15 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
                                        name = "";
                                        }
 */                             }
-                                       int cw = 0;
-                                       cw =  name.trim().length() + 12;
+                                       //int cw = 0;
+                                       //cw =  name.trim().length() + 12;
                                        // if(i!=cellWidth.size()-1)
-                                       if(sheet.getColumnWidth((short)0)< (short) name.trim().length())
-                                       sheet.setColumnWidth((short)0, (short) name.trim().length());
-                                       if(sheet.getColumnWidth((short)1)< (short) value.trim().length())
-                                       sheet.setColumnWidth((short)1, (short) value.trim().length());
+                                       if(name!=null && (sheet.getColumnWidth((short)0)< (short) name.trim().length())){
+                                               sheet.setColumnWidth((short)0, (short) name.trim().length());
+                                       }
+                                       if(sheet.getColumnWidth((short)1)< (short) value.trim().length()){
+                                               sheet.setColumnWidth((short)1, (short) value.trim().length());
+                                       }
                                name = "";
                                value = "";
                                        
@@ -969,22 +971,16 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
         SimpleDateFormat MMMMMDDYYYYHHMMSS    = new SimpleDateFormat("MMMMM-dd-yyyy HH:mm:ss");
         
         
-        
-               
-               ResultSet rs = null;
-        Connection conn = null;
-        Statement st = null;
         ResultSetMetaData rsmd = null;
         CreationHelper createHelper = wb.getCreationHelper();
 
        if(nvl(sql_whole).length() >0 && rr.getReportType().equals(AppConstants.RT_LINEAR)) {
-        try {
-                       conn = ConnectionUtils.getConnection(rr.getDbInfo());
-                       st = conn.createStatement();
+        try(Connection conn = ConnectionUtils.getConnection(rr.getDbInfo());
+               Statement st = conn.createStatement();
+               ResultSet rs = st.executeQuery(sql_whole)) {
                        System.out.println("************* Map Whole SQL *************");
                        System.out.println(sql_whole);
                        System.out.println("*****************************************");
-                       rs = st.executeQuery(sql_whole);
                        rsmd = rs.getMetaData();
                    int numberOfColumns = rsmd.getColumnCount();
                    HashMap colHash = new HashMap();
@@ -1655,18 +1651,7 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
                    } catch (Exception ex) {
                        if(!(ex.getCause() instanceof java.net.SocketException) )
                                throw new RaptorException (ex);
-                   } finally {
-                       try {
-                               if(conn!=null)
-                                       conn.close();
-                               if(st!=null)
-                                       st.close();
-                               if(rs!=null)
-                                       rs.close();
-                       } catch (SQLException ex) {
-                               throw new RaptorException(ex);
-                       }
-               }
+                   }
         
                /*if(Globals.getShowDisclaimer() && !Globals.disclaimerPositionedTopInCSVExcel()) {
                        rowNum += 1;
@@ -2793,8 +2778,8 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
                        logger.debug(EELFLoggerDelegate.debugLogger, ("Xls File name " +
                                          AppUtils.getTempFolderPath()
                                         + xlsFName));
-                       FileOutputStream xlsOut = new FileOutputStream(FilenameUtils.normalize(AppUtils.getTempFolderPath()
-                                       + xlsFName));
+                       try(FileOutputStream xlsOut = new FileOutputStream(FilenameUtils.normalize(AppUtils.getTempFolderPath()
+                                       + xlsFName))){
                        // BufferedWriter xlsOut = new BufferedWriter(new
                        // FileWriter(AppUtils
                        // .getTempFolderPath()
@@ -2832,7 +2817,7 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
              //       + user_id + ".xls");            
                        wb.write(xlsOut);
                        xlsOut.flush();
-                       xlsOut.close();
+                       }
                        return xlsFName;
                } catch (Exception e) {
                        e.printStackTrace();
@@ -3269,8 +3254,6 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
                
                Map<String, XSSFCellStyle> styles = new HashMap<String, XSSFCellStyle>();
                HttpSession session = request.getSession();
-               ServletOutputStream sos = null;
-               BufferedInputStream buf = null;
                XSSFWorkbook wb = null;
         String formattedReportName = new HtmlStripper().stripSpecialCharacters(rr.getReportName());
         String formattedDate = new SimpleDateFormat("MMddyyyyHHmm").format(new Date());
@@ -3324,7 +3307,6 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
 
         String sheetRef = null;
         
-        FileOutputStream os = null; //template file
         File templateFile = null; 
         
         if(isDashboard) {
@@ -3344,7 +3326,7 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
                                        count++;
                                        Map.Entry entry                         = (Entry) iter.next();
                                        ReportRuntime rrDashRep         = (ReportRuntime) entry.getValue();
-                                       os = new FileOutputStream(AppUtils.getTempFolderPath()+ filename+"T."+ nvls(extension, "xlsx"));
+                                       try(FileOutputStream os = new FileOutputStream(AppUtils.getTempFolderPath()+ filename+"T."+ nvls(extension, "xlsx"))){
                                        
                                        if(count==1) {
                                        if(nvl(rr.getTemplateFile()).length()>0) {
@@ -3374,21 +3356,18 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
                                os.flush();
                                        if(nvl(rr.getTemplateFile()).length()>0) {
                                                readTemplate.close();
-                                       }                               
-                               os.close();
-                               
-                                       FileInputStream inF                     = new FileInputStream(AppUtils.getTempFolderPath()+ filename+"T."+ nvls(extension, "xlsx"));
-                                       FileOutputStream outStream              = new FileOutputStream(AppUtils.getTempFolderPath()+ filename+"."+ nvls(extension, "xlsx"));
-                                       copyStream(inF, outStream);
-                                       outStream.flush();
-                                       outStream.close();
-                                       inF.close();
+                                       }
+                                       
+                                       try(FileInputStream inF = new FileInputStream(AppUtils.getTempFolderPath()+ filename+"T."+ nvls(extension, "xlsx"));
+                                       FileOutputStream outStream = new FileOutputStream(AppUtils.getTempFolderPath()+ filename+"."+ nvls(extension, "xlsx"))){
+                                               copyStream(inF, outStream);
+                                               outStream.flush();
+                                       }
                                
                                }
-                       
+                       }
                        FileInputStream xlsIn = null;
                        POIFSFileSystem fileSystem = null;
-                       buf = null;
                        FileOutputStream xlsOut = null;
                        formattedDate = new SimpleDateFormat("MMddyyyyHHmm").format(new Date());
                        String xlsFName = "dashboard"+formattedDate+user_id+".xls";
@@ -3417,39 +3396,37 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
                                
                                //Step 2. Generate XML file.
                                File tmp = File.createTempFile("sheet", ".xml");
-                               FileOutputStream fileOutTemp = new FileOutputStream(tmp);
-                               Writer fw = new OutputStreamWriter(fileOutTemp, XML_ENCODING);
-                               String sql_whole = rrDashRep.getWholeSQL();
+                               try(FileOutputStream fileOutTemp = new FileOutputStream(tmp);
+                                       Writer fw = new OutputStreamWriter(fileOutTemp, XML_ENCODING)){
                                
-                               SpreadsheetWriter sw = new SpreadsheetWriter(fw);
-                               sw.beginSheet();
-                               
-                               
-                               generate(wb, sw, styles, rdDashRep, sql_whole, rrDashRep, request, sheet);
-                           
-
-                           sw.endSheet();
-                           
-                           fw.flush();
-                               fw.close();            
-                           fileOutTemp.flush();
-                           fileOutTemp.close();
-
+                                       String sql_whole = rrDashRep.getWholeSQL();
+                                       
+                                       SpreadsheetWriter sw = new SpreadsheetWriter(fw);
+                                       sw.beginSheet();
+                                       
+                                       
+                                       generate(wb, sw, styles, rdDashRep, sql_whole, rrDashRep, request, sheet);
+                                   
+       
+                                   sw.endSheet();
+                                   
+                                   fw.flush();
+                                   fileOutTemp.flush();
+                               }
                            
                                //Step 3. Substitute the template entry with the generated data
                                
-                               FileOutputStream outF = new FileOutputStream(AppUtils.getTempFolderPath()+ filename+"."+ nvls(extension, "xlsx"));
-                               templateFile =  new File(AppUtils.getTempFolderPath()+ filename+"T."+ nvls(extension, "xlsx"));
-                               substitute(templateFile, tmp, sheetRef.substring(1), outF);
-                               outF.flush();
-                               outF.close();
+                               try(FileOutputStream outF = new FileOutputStream(AppUtils.getTempFolderPath()+ filename+"."+ nvls(extension, "xlsx"))){
+                                       templateFile =  new File(AppUtils.getTempFolderPath()+ filename+"T."+ nvls(extension, "xlsx"));
+                                       substitute(templateFile, tmp, sheetRef.substring(1), outF);
+                                       outF.flush();
+                               }
                                
-                               FileInputStream inF                     = new FileInputStream(AppUtils.getTempFolderPath()+ filename+"."+ nvls(extension, "xlsx"));
-                               FileOutputStream outStream              = new FileOutputStream(AppUtils.getTempFolderPath()+ filename+"T."+ nvls(extension, "xlsx"));
+                               try(FileInputStream inF = new FileInputStream(AppUtils.getTempFolderPath()+ filename+"."+ nvls(extension, "xlsx"));
+                                               FileOutputStream outStream      = new FileOutputStream(AppUtils.getTempFolderPath()+ filename+"T."+ nvls(extension, "xlsx"))){
                                copyStream(inF, outStream);
                                outStream.flush();
-                               outStream.close();
-                               inF.close();
+                               }
                                }
          }     
        } else {
@@ -3459,12 +3436,12 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
                extension = templateFilename.substring(templateFilename.lastIndexOf(".")+1);
                filename = formattedReportName+formattedDate+user_id;
                //filename = templateFilename.substring(0, templateFilename.lastIndexOf("."))+"_"+formattedDate+user_id; 
-        } else
+        } else {
                filename = formattedReportName+formattedDate+user_id;
-
+        }
 
         if(nvl(rr.getTemplateFile()).length()<=0) {
-               os = new FileOutputStream(AppUtils.getTempFolderPath()+"template"+formattedDate+user_id+".xlsx");
+               try(FileOutputStream os = new FileOutputStream(AppUtils.getTempFolderPath()+"template"+formattedDate+user_id+".xlsx")){
                    wb=new XSSFWorkbook();
                        //Load customized styles
                    if (rr != null)
@@ -3490,11 +3467,11 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
                    wb.write(os);
                    os.flush();
                    //wb = null;
-                   os.close();
+               }
                        
             } else {
-               os = new FileOutputStream(AppUtils.getTempFolderPath()+ filename+"T."+ nvls(extension, "xlsx"));
-               FileInputStream readTemplate = new FileInputStream(org.onap.portalsdk.analytics.system.AppUtils.getExcelTemplatePath()+rr.getTemplateFile());
+               try(FileOutputStream os = new FileOutputStream(AppUtils.getTempFolderPath()+ filename+"T."+ nvls(extension, "xlsx"));
+                   FileInputStream readTemplate = new FileInputStream(org.onap.portalsdk.analytics.system.AppUtils.getExcelTemplatePath()+rr.getTemplateFile());){
                    wb=new XSSFWorkbook(readTemplate);
                        if (rr != null)
                                styles = loadXSSFStyles(rr, wb, styles);
@@ -3507,15 +3484,14 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
                        sheetRef = sheet.getPackagePart().getPartName().getName();
                        wb.write(os);
                        os.flush();
-                       readTemplate.close();
                        //wb = null;
-                       os.close();
+                 }
               }
               
                //Step 2. Generate XML file.
                File tmp = File.createTempFile("sheet", ".xml");
-               FileOutputStream fileOutTemp = new FileOutputStream(tmp);
-               Writer fw = new OutputStreamWriter(fileOutTemp, XML_ENCODING);
+               try(FileOutputStream fileOutTemp = new FileOutputStream(tmp);
+                               Writer fw = new OutputStreamWriter(fileOutTemp, XML_ENCODING)){
                
                //String sql_whole = (String) request.getAttribute(AppConstants.RI_REPORT_SQL_WHOLE);
                String sql_whole = "";
@@ -3541,30 +3517,29 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
             sw.endSheet();
             
             fw.flush();
-               fw.close();            
             fileOutTemp.flush();
-            fileOutTemp.close();
-
-               
+            }
                //Step 3. Substitute the template entry with the generated data
                
-               FileOutputStream outF = new FileOutputStream(AppUtils.getTempFolderPath()+ filename+"."+ nvls(extension, "xlsx"));
+               try(FileOutputStream outF = new FileOutputStream(AppUtils.getTempFolderPath()+ filename+"."+ nvls(extension, "xlsx"))){
 
                if(nvl(rr.getTemplateFile()).length()>0) {
                        templateFile =  new File(AppUtils.getTempFolderPath()+ filename+"T."+ nvls(extension, "xlsx"));
-               } else
+               } else {
                        templateFile = new File(AppUtils.getTempFolderPath()+"template"+formattedDate+user_id+".xlsx");
-               
+               }
                substitute(templateFile, tmp, sheetRef.substring(1), outF);
                outF.flush();
-               outF.close();
+               }
                
        }
                //get servlet output stream
               
 
                response.reset();
-               sos = response.getOutputStream();
+               try(BufferedInputStream buf = new BufferedInputStream(new FileInputStream(AppUtils.getTempFolderPath()+filename + "."+  nvls(extension, "xlsx")));
+                       ServletOutputStream     sos = response.getOutputStream()){
+               
                String mime_type = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                if(extension.equals("xlsm"))
                        mime_type = "application/vnd.ms-excel.sheet.macroEnabled.12";
@@ -3572,16 +3547,16 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
 
                        response.setHeader("Content-disposition", "attachment;filename="+filename+"."+ nvls(extension, "xlsx"));
                        
-                       buf = new BufferedInputStream(new FileInputStream(AppUtils.getTempFolderPath()+filename + "."+  nvls(extension, "xlsx")));
+                       
                    int readBytes = 0;
 
                    //read from the file; write to the ServletOutputStream
                    while ((readBytes = buf.read()) != -1)
                        sos.write(readBytes);
                      
-                   buf.close();
+                   
                    sos.flush();
-                   sos.close();
+                       }
                    logger.debug(EELFLoggerDelegate.debugLogger, ("ENDING..DOWNLOADING XLSX..."));
                    logger.debug(EELFLoggerDelegate.debugLogger, ("##### Heap utilization statistics [MB] #####"));
                    logger.debug(EELFLoggerDelegate.debugLogger, ("Used Memory:"
@@ -3601,9 +3576,10 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
        * @param out the stream to write the result to
        */
        private static void substitute(File zipfile, File tmpfile, String entry, OutputStream out) throws IOException {
-          ZipFile zip = new ZipFile(zipfile);
+         try(ZipFile zip = new ZipFile(zipfile);
+             ZipOutputStream zos = new ZipOutputStream(out)){
        
-          ZipOutputStream zos = new ZipOutputStream(out);      
+               
        
           @SuppressWarnings("unchecked")
           Enumeration<ZipEntry> en = (Enumeration<ZipEntry>) zip.entries();
@@ -3611,18 +3587,17 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
               ZipEntry ze = en.nextElement();
               if(!ze.getName().equals(entry)){
                   zos.putNextEntry(new ZipEntry(ze.getName()));
-                  InputStream is = zip.getInputStream(ze);
+                  try(InputStream is = zip.getInputStream(ze)){
                   copyStream(is, zos);
-                  is.close();
+                  }
               }
           }
           zos.putNextEntry(new ZipEntry(entry));
-          InputStream is = new FileInputStream(tmpfile);
-          copyStream(is, zos);
-          zos.flush();    
-          zos.close();
-          is.close();
-          zip.close();
+          try(InputStream is = new FileInputStream(tmpfile)){
+              copyStream(is, zos);
+          }
+          zos.flush();
+         }
        }
        
        private static void copyStream(InputStream in, OutputStream out) throws IOException {
@@ -3641,8 +3616,6 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
        //String reportTitle = rr.getReportName();
        //String reportDescr = rr.getReportDescr();     
                PrintWriter csvOut = new PrintWriter(out);
-               ServletOutputStream sos = null;
-               BufferedInputStream buf = null;
                String fileName = "";
                String formattedReportName = new HtmlStripper().stripSpecialCharacters(rr.getReportName());
            String formattedDate = new SimpleDateFormat("MMddyyyyHHmm").format(new Date());
@@ -3667,13 +3640,10 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
                         }
                }
                HtmlStripper strip = new HtmlStripper();
-               ResultSet rs = null;
         //OracleConnection conn = null;
         //OracleStatement st = null;
         //Connection conO = null;
         //Statement stO = null;
-               Connection conn = null;
-               Statement st = null;
         ResultSetMetaData rsmd = null;
         ColumnHeaderRow chr = null;
        int mb = 1024*1024;
@@ -3751,16 +3721,16 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
        
        
         if(nvl(sql_whole).length()>0) {
-               try {
-                       conn = ConnectionUtils.getConnection(rr.getDbInfo());
-                       st = conn.createStatement();
+               try(Connection conn = ConnectionUtils.getConnection(rr.getDbInfo());
+                       Statement st = conn.createStatement();
+                       ResultSet rs = st.executeQuery(sql_whole)) {
+                       
                        //conn.setDefaultRowPrefetch(1000);
                        //st.setFetchDirection(ResultSet.TYPE_FORWARD_ONLY);
                        //st.setFetchSize(1000);
                        System.out.println("************* Map Whole SQL *************");
                        System.out.println(sql_whole);
                        System.out.println("*****************************************");
-                       rs = st.executeQuery(sql_whole);
                        //st.setFetchSize(1000);
                        rsmd = rs.getMetaData();
                    int numberOfColumns = rsmd.getColumnCount();
@@ -3852,17 +3822,6 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
                        throw new RaptorException(ex);
                } catch (Exception ex) {
                        throw new RaptorException (ex);
-               } finally {
-                       try {
-                               if(conn!=null)
-                                       conn.close();
-                               if(st!=null)
-                                       st.close();
-                               if(rs!=null)
-                                       rs.close();
-                       } catch (SQLException ex) {
-                               throw new RaptorException(ex);
-                       }
                }
                
                if(!raw) {
@@ -3990,8 +3949,9 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
                        csvOut.println();
                } // if
 */
-        if(true && !raw) {
-               try {
+        if(!raw) {
+               try(ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(AppUtils.getTempFolderPath()+""+zipFName));
+                FileInputStream fis = new FileInputStream(fileName)) {
                
                 //final int BUFFER = 2048;
                 
@@ -4002,9 +3962,7 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
                 //CRC32 crc = new CRC32();
                        //PrintStream fos = new PrintStream(new WriterOutputStream(out));
                        //BufferedOutputStream dest = new BufferedOutputStream(fos, BUFFER);
-                       //ZipOutputStream s = new ZipOutputStream(dest);                
-                ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(AppUtils.getTempFolderPath()+""+zipFName));
-                FileInputStream fis = new FileInputStream(fileName);
+                       //ZipOutputStream s = new ZipOutputStream(dest);
                 
                 //s.setLevel(6);
                 
@@ -4032,7 +3990,7 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
         response.reset();
                java.io.File file = null;
                
-               if(true && !raw) {
+               if(!raw) {
                        response.setContentType("application/octet-stream");
                        response.setHeader("Content-disposition","attachment;filename="+fName+".zip");
                        file = new java.io.File(AppUtils.getTempFolderPath()+""+fName+".zip");
@@ -4043,12 +4001,11 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
                }
                
           
-       FileInputStream fileIn = null; 
        int c;
-       try {
-               sos = response.getOutputStream();
-               fileIn = new FileInputStream(file);
-               buf = new BufferedInputStream(fileIn);
+       try(ServletOutputStream sos = response.getOutputStream();
+               FileInputStream fileIn = new FileInputStream(file);
+               BufferedInputStream buf = new BufferedInputStream(fileIn);) {
+               
                byte [] bOut = new byte [4096];
                    //read from the file; write to the ServletOutputStream
                    //while ((readBytes = buf.read()) != -1)
@@ -4062,18 +4019,6 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
                        ex.printStackTrace();
                } catch (Exception e) {
                        e.printStackTrace();
-               } finally {
-                       try {
-                               if (sos != null)
-                                       sos.close();
-                               if (buf != null)
-                                       buf.close();
-                               if (fileIn!=null) {
-                                       fileIn.close();
-                           }
-                       } catch (Exception e1) {
-                               e1.printStackTrace();
-                       }
                }
                                
                        File f = new File (AppUtils.getTempFolderPath()
@@ -4136,10 +4081,10 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
                try {
                        String xmlFName = AppUtils.generateUniqueFileName(request, reportName, AppConstants.FT_XML);
             
-                       PrintWriter xmlOut = new PrintWriter(new BufferedWriter(new FileWriter(new File(
-                                       AppUtils.getTempFolderPath() + xmlFName))));
-                       xmlOut.println(reportXML);
-                       xmlOut.close();
+                       try(PrintWriter xmlOut = new PrintWriter(new BufferedWriter(new FileWriter(new File(
+                                       AppUtils.getTempFolderPath() + xmlFName))))){
+                               xmlOut.println(reportXML);
+                       }
 
                        //return AppUtils.getTempFolderURL()
                        //              + java.net.URLEncoder.encode(java.net.URLDecoder.decode(xmlFName));
@@ -4810,20 +4755,17 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
         dateFormat = createHelper.createDataFormat().getFormat("MMMMM-dd-yyyy HH:mm:ss");
         dateFormatMap.put("MMMMMDDYYYYHHMMSS", new Short(dateFormat));
         
-               ResultSet rs = null;
-        Connection conn = null;
-        Statement st = null;
         ResultSetMetaData rsmd = null;
 
 
        if(nvl(sql_whole).length() >0 && (rr.getReportType().equals(AppConstants.RT_LINEAR) || rr.getReportType().equals(AppConstants.RT_HIVE) )) {
-        try {
-                       conn = ConnectionUtils.getConnection(rr.getDbInfo());
-                       st = conn.createStatement();
+        try(Connection conn = ConnectionUtils.getConnection(rr.getDbInfo());
+               Statement       st = conn.createStatement();
+               ResultSet rs = st.executeQuery(sql_whole)) {
+                       
                        logger.debug(EELFLoggerDelegate.debugLogger, ("************* Map Whole SQL *************"));
                        logger.debug(EELFLoggerDelegate.debugLogger, (sql_whole));
                        logger.debug(EELFLoggerDelegate.debugLogger, ("*****************************************"));
-                       rs = st.executeQuery(sql_whole);
                        rsmd = rs.getMetaData();
                    int numberOfColumns = rsmd.getColumnCount();
                    HashMap colHash = new HashMap();
@@ -5492,18 +5434,7 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
                    } catch (Exception ex) {
                        if(!(ex.getCause() instanceof java.net.SocketException) )
                                throw new RaptorException (ex);
-                   } finally {
-                       try {
-                               if(conn!=null)
-                                       conn.close();
-                               if(st!=null)
-                                       st.close();
-                               if(rs!=null)
-                                       rs.close();
-                       } catch (SQLException ex) {
-                               throw new RaptorException(ex);
-                       }
-               }
+                   }
         
                String footer = (String) session.getAttribute("FOOTER_"+index);
                if(nvl(footer).length()>0) {