[Rd] isOpen on closed connections

From: Roger D. Peng <rpeng_at_jhsph.edu>
Date: Wed, 14 Nov 2007 09:33:29 -0500


As far as I can tell, 'isOpen' cannot return FALSE in the case when 'rw = ""'. If the connection has already been closed by 'close' or some other function, then isOpen will produce an error. The problem is that when isOpen calls 'getConnection', the connection cannot be found and 'getConnection' produces an error. The check to see if it is open is never actually done.

This came up in some code where I'm trying to clean up connections after successfully opening them. The problem is that if I try to close a connection that has already been closed, I get an error (because 'getConnection' cannot find it). But then there's no way for me to find out if a connection has already been closed. Perhaps there's another approach I should be taking? The context is basically,

con <- file("foo", "w")

tryCatch({

	## Do stuff that might fail
	writeLines(stuff, con)
	close(con)

	file.copy("foo", "bar")
}, finally = {
	close(con)

})

So the problem is that if the block in the 'tryCatch' succeeds, the 'finally' will produce an error.

I'm not exactly sure of what I'd want since it seems modifying 'getConnection' would not be a great idea as it is used elsewhere.

-roger

-- 
Roger D. Peng  |  http://www.biostat.jhsph.edu/~rpeng/

______________________________________________
R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Received on Wed 14 Nov 2007 - 14:36:32 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Thu 15 Nov 2007 - 05:30:18 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.