Most likely your problem ist that new File(..) creates different
objects in each thread. I would try using something like the path to
the file as String.
Oliver
On 7/5/05, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>
>
>
>
> I'm trying to use the ReadWriteLock class to acquire a write lock on a file
> in a servlet. When I generate multiple threads of the servlet using a WTE
> 5.1 server in the WSAD 5.1 IDE, I'm not able to get ReadWriteLock to block
> other servlet threads after the first servlet thread obtains the lock. I'm
> using two IE browser windows to generate the two servlet threads. Below is
> ReadWriteLock code I have in the servlet followed by the System.out.println
> statements that are generated in the server log file during my test.
>
> ReadWriteLock fileLock = new ReadWriteLock(new File(c:/logRec.txt,
> loggerFacade);
> try {
> System.out.println("before acquiring a lock " +
> Thread.currentThread());
> boolean result =
> fileLock.acquireWrite(Thread.currentThread(),Long.MAX_VALUE);
> System.out.println("lock result: " + result + " " +
> Thread.currentThread());
> Thread.sleep(20000);
> System.out.println("after sleeping " + Thread.currentThread());
> FileWriter recFile = new FileWriter(c:/logRec.txt, true);
> recFile.write("text from testFileTran");
> recFile.close();
> } catch (InterruptedException e) {
> e.printStackTrace(System.err);
>
> } catch (IOException e) {
> e.printStackTrace(System.err);
>
> } finally {
> fileLock.release(Thread.currentThread());
> }
>
> [7/5/05 8:26:03:326 CDT] 7c1477e SystemOut O before acquiring a lock
> Thread[Servlet.Engine.Transports : 0,5,main]
> [7/5/05 8:26:03:326 CDT] 7c1477e SystemOut O lock result: true
> Thread[Servlet.Engine.Transports : 0,5,main]
> [7/5/05 8:26:08:384 CDT] 24c3477d SystemOut O before acquiring a lock
> Thread[Servlet.Engine.Transports : 1,5,main]
> [7/5/05 8:26:08:384 CDT] 24c3477d SystemOut O lock result: true
> Thread[Servlet.Engine.Transports : 1,5,main]
> [7/5/05 8:26:23:335 CDT] 7c1477e SystemOut O after sleeping
> Thread[Servlet.Engine.Transports : 0,5,main]
> [7/5/05 8:26:28:382 CDT] 24c3477d SystemOut O after sleeping
> Thread[Servlet.Engine.Transports : 1,5,main]
>
>
> From reviewing the Transaction documentation and mailing list archives, I'm
> not able to determine what I'm doing wrong.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]