axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jan Pieterse (JIRA)" <>
Subject [jira] Commented: (AXIS-2181) After sending an Attachments the local File can not removed from the filesystem ==> cause File is locked by axis?
Date Mon, 26 Sep 2005 13:18:50 GMT
    [ ] 

Jan Pieterse commented on AXIS-2181:


Please look at

I think the Axis development team missed that one. The inputstream isn't closed by the Axis
code after the call 'getInputstream' from the datasource. So after the webservice call you
will get a new InputStream by calling 'fds.getInputStream()' from the FileDataSource. After
closing this inputstream there will still be another which is opened untill finalize is called.
Here is a workaround:

Extend FileDataSource with you own FileDataSource class. Override the 'getInputStream()' method.
Make sure you return the same instance of every time the method (getInputStream()) is called. Give a instance
of your 'home-made' FileDataSource 2 the 
DataHandler like:

MyOwnFileDataSource fds = new MyOwnFileDataSource(new File(filename)); 
DataHandler contentHandler =  new DataHandler(fds); 

After calling the webservice close the inputstream with fds.getInputStream and close(). After
closing the stream you will be able to delete your file.

Hope it helps,

Jan P.

> After sending an Attachments the local File can not removed from the filesystem ==>
cause File is locked by axis?
> -----------------------------------------------------------------------------------------------------------------
>          Key: AXIS-2181
>          URL:
>      Project: Apache Axis
>         Type: Bug
>   Components: Basic Architecture
>     Versions: 1.2
>  Environment: Client: Windows 2000, PIII 800 MHz, 512 MB RAM.
> Server Windows 2003 Server, 512 MB.
>     Reporter: Ferruh Zamangoer
>     Priority: Critical

> Hi, 
> we are using AXIS WS to send some MP3 files to an server where we register these files.
The problem which occurred in our scenario is that after we have send the file we want to
delete the local file on the filesystem. But we can?t delete the file because anything references
or blocks the file. We have localized that the problem occurs in the part after the webservice
call. When we uncomment the the part of the call the removing works. For sending our file
as attachment we use the following code lines.
>                         boolean  status = ws.registerContent("trebun", "password", ci);
//call service
> 			System.out.println("status: " + status);
> 			File file = new File("MP3/RENCBER_DEWRANO_10_ELE__WWW.MP3"); //delete file
> 			boolean deleteState = file.delete(); ==> error occurs here?
> We cause for the error could be that a Stream are opened and not closed.
> FileDataSource fds = new FileDataSource(new File(filename));
>                 DataHandler contentHandler =
>                     new DataHandler(fds
>                         );
> The scenario can reproduced easily.
> 1. send and file to a server with attachment
> 2. After the Call of the webserice try to remove the local file without to shutdown your
> We are using on the client side the following Java Version:
> java version "1.4.2_05"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_05-b04)
> Java HotSpot(TM) Client VM (build 1.4.2_05-b04, mixed mode)

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:

View raw message