uima-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Baptiste Gaillard <b_gaill...@hotmail.com>
Subject RE: Potential problems in the XmlInputSource class...
Date Thu, 18 Mar 2010 14:07:08 GMT

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

Baptiste Gaillard

> Date: Thu, 11 Mar 2010 10:26:36 +0100
> From: twgoetz@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/
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message