org.apache.pdfbox.cos.COSDocument finalize, did not close a PDF Document
------------------------------------------------------------------------

                 Key: PDFBOX-991
                 URL: https://issues.apache.org/jira/browse/PDFBOX-991
             Project: PDFBox
          Issue Type: Bug
    Affects Versions: 1.4.0
         Environment: Eclipse Version: 3.4.1, Java SDK 1.6, Windows 7 32-bit 
            Reporter: Ayaka Shota


The error below keeps occurring when I run several PDF files.

[Error]Mar 28, 2011 10:18:24 AM org.apache.pdfbox.cos.COSDocument finalize
WARNING: Warning: You did not close a PDF Document
Mar 28, 2011 10:18:24 AM org.apache.pdfbox.cos.COSDocument finalize
WARNING: Warning: You did not close a PDF Document
Mar 28, 2011 10:18:24 AM org.apache.pdfbox.cos.COSDocument finalize
WARNING: Warning: You did not close a PDF Document
Mar 28, 2011 10:18:24 AM org.apache.pdfbox.cos.COSDocument finalize
WARNING: Warning: You did not close a PDF Document
Mar 28, 2011 10:18:24 AM org.apache.pdfbox.cos.COSDocument finalize
WARNING: Warning: You did not close a PDF Document
Mar 28, 2011 10:18:24 AM org.apache.pdfbox.cos.COSDocument finalize
WARNING: Warning: You did not close a PDF Document[/Error]

Here's my code:

public void methodForPDF() throws SQLException
{
     PDDocument doc = null;
     PDActionURI uri = null;
     ResultSet resultSet = null;
     Statement statement = null;
     int newURI = 0, type = 0;
     String newuri = "";
     String oldLink ="", line="", oldId="";
     int pos = 0;
     CharSequence char0 = "abc";
     File f = new File(fullFilePath);
     try
     {
           statement = dbConnection.createStatement(); 
           doc = PDDocument.load(fullFilePath, false);
                    
           List allPages = doc.getDocumentCatalog().getAllPages();
           for( int i=0; i<allPages.size(); i++ )
           {
         PDPage page = (PDPage)allPages.get( i );
         List annotations = page.getAnnotations();

         for( int j=0; j<annotations.size(); j++ )
         {
                PDAnnotation annot = (PDAnnotation)annotations.get( j );
                if( annot instanceof PDAnnotationLink )
                        {
                               PDAnnotationLink link = (PDAnnotationLink)annot;
                               PDAction action = link.getAction();
                               if( action instanceof PDActionURI )
                               {
                                     uri = (PDActionURI)action;
                             String oldURI = uri.getURI();
                             if(oldURI.contains(char0))
                             { 
                                    
                                    line = oldURI;
                                    pos = line.lastIndexOf("=");
                                    oldLink = line.substring(0, pos+1);
                                
                                    line = line.replace(oldLink, 
newWebformUrl+"?"+newArtName);
                                    pos = line.lastIndexOf("=");
                                    oldId = line.substring(pos+1, 
line.length());
                                
                            resultSet = statement.executeQuery("SELECT newid, 
type "
                                  + "FROM prrm.temp_migration_lookup WHERE 
oldid = " + oldId);
                                            
                            if (null != resultSet) {
                          while (resultSet.next()) {
                                 newURI = resultSet.getInt("newid");
                                 type = resultSet.getInt("type");
                           }
                             }
                                             
                            newuri = newURI + "";
                            String newurl = line.replace(oldId,newuri);
                            newurl = newurl + "?type=" + type;
                            System.out.println( "Page " + (i+1) +": Replacing " 
+ oldURI + " with " + newurl );
                            uri.setURI( newurl );
                              }
                           
                   }
                   }
         }
            }
                            
            doc.save(fullFilePath);
            resultSet.close();
            statement.close();
            doc.close();
                            
     } catch (IOException e) {
          e.printStackTrace();
     } catch (COSVisitorException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
     }
     finally
     {
           if( doc != null )
           {
                  try {
                     doc.close();
                     doc = null;
          } catch (IOException e) {
               // TODO Auto-generated catch block
                       e.printStackTrace();
          }
            }
       }
 }

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to