Patch provided in JIRA: https://issues.apache.org/jira/browse/UIMA-1746

Baptiste Gaillard

> Date: Thu, 11 Mar 2010 10:26:36 +0100
> From: twgo...@gmx.de
> To: uima-dev@incubator.apache.org
> Subject: Re: Potential problems in the XmlInputSource class...
> 
> Sure.  Please open a JIRA issue and provide a patch.  You can
> just paste your message into the issue.
> 
> --Thilo
> 
> On 3/10/2010 17:35, Baptiste Gaillard wrote:
> > 
> > Hi, 
> > 
> > I've read multiple messages about UIMA and OSGI on this forum.  
> > 
> > On our project we have successfully integrated UIMA components inside OSGI 
> > Bundle (our solution provides an automatic OSGI Bundle genration system 
> > which take PEAR files so developpers do not have to worry about OSGI). 
> > 
> > We have encountered a JAR locking problem inside the XmlInputSource class, 
> > the problem comes from this instruction (WmlInputSource line 90) :
> >   
> >  mInputStream = mURL.openStream()
> > 
> > When we do that with a URL which refers to a file inside a JAR file a 
> > JarURLConnection is used. 
> > 
> > JarURLConnection seems to have a bug because in the destroy method of 
> > XmlInputSource those instruction do not close the ZipFile associated to the 
> > JARUrlConnection. 
> > 
> > if (mInputStream != null)
> > {
> >     mInputStream.close();   // DO NOT CLOSE THE ASSOCIATED ZipFile !!!
> > }
> > 
> > 
> > The bug has been reported in the SUN Bug Database: // see 
> > http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4386865
> > 
> > This is problematic with OSGI because we can unload our Bundles (UIMA 
> > components in our case ;-) ) but never delete theme from the file system 
> > after... 
> > 
> > The solution to close the ZipFiles in XmlInputSource is to add the 
> > following instructions in the constructor and destroy method: 
> > 
> > private URLConnection urlConnection;
> > 
> >   public XMLInputSource(String aUrlOrFileName) throws IOException {
> >     //try as URL first, then as file name
> >     try {
> >       mURL = new URL(aUrlOrFileName);
> >     }
> >     catch (MalformedURLException e) {
> >       mURL = new File(aUrlOrFileName).toURL();
> >     }
> >     
> >     this.urlConnection = mURL.openConnection();
> >     
> >     mInputStream = mURL.openStream();
> >   }
> > 
> > 
> > public void close()
> >       throws IOException
> >   {
> >       if (mInputStream != null)
> >       {
> >           mInputStream.close();
> >       }
> >       
> >       if((this.urlConnection != null) && (this.urlConnection instanceof 
> > JarURLConnection))
> >       {
> >           ((JarURLConnection)urlConnection).getJarFile().close();
> >       }
> > 
> >       mURL = null;
> >   }
> > 
> > Is it possible to include those modifications in the next UIMA release ? 
> > 
> > Thanks,
> > 
> > Baptiste Gaillard
> > 
> > 
> > 
> > 
> >                                       
> > _________________________________________________________________
> > Hotmail arrive sur votre téléphone ! Compatible Iphone, Windows Phone, 
> > Blackberry, …
> > http://www.messengersurvotremobile.com/?d=Hotmail
                                          
_________________________________________________________________
Découvrez comment SURFER DISCRETEMENT sur un site de rencontres !
http://clk.atdmt.com/FRM/go/206608211/direct/01/

Reply via email to