On May 2, 2012, at 3:55 PM, Caleb James DeLisle wrote: > > > On 05/02/2012 09:20 AM, Vincent Massol wrote: >> Hi Caleb, >> >> On May 2, 2012, at 3:12 PM, Caleb James DeLisle wrote: >> >>> Just committed the patch to a branch, you can see it here >>> https://github.com/xwiki/xwiki-commons/commit/32fb77049fe9d8f758e776d26bfe5d7d2d21c4cc >>> >>> Since it contains an API break in EnvironmentConfiguration, I wanted to run >>> it by the list before merging it into the master. >>> I'll push later on today if nobody objects. >> >> We should no longer break APIs. So this will need to go through deprecation >> and legacy. >> >> Why is File an issue? >> >> Big -1 to the code I've seen. We should never ever use System.exit(). > > How do you envision the wiki behaving as a whole if there is no writable temp > dir? > I agree that killing the jvm is very bad if there is any way to recover but > this seems like the edge case where there is no way out.
There's no reason to kill the JVM IMO. The only thing we should do is to not make the XWiki webapp available in the running container. This is done by throwing a top level exception. Remember that a servlet container can be used to run several webapps, not just xwiki. Killing it is really really bad. Thanks -Vincent >> Also I've seen a lot of "final" used in the code. Please don't use them >> since they're unnecessary and bad in most cases and we don't have any best >> practice to use them in methods for ex (this prevents extensibility). As >> for variables I don't see the point at all. > > I can remove the final annotation on the methods, I think it's important > however to differentiate between clean extensibility and using "extends" to > monkey patch code in ways that weren't intended. > As for variables and fields, I am very fond of making those final because > they are inline documentation and verification. > I declare my intent not to change a variable with the final keyword, the > reader/maintainer knows what I meant and the compiler checks that I didn't > make a mistake. > If you want me to strip those, I can but think it's like stripping comments. > > Caleb > >> >> Re the fail fast I was expecting some event listener listening on >> Application started event to check if the directories were writable for >> example and throw some exception if not. >> >> Thanks >> -Vincent >> >>> Caleb >>> >>> >>> On 04/23/2012 09:43 AM, Caleb James DeLisle wrote: >>>> Hi, >>>> >>>> In order to fix XWIKI-7748 and XWIKI-7749, we need a plan for deleting >>>> temporary file. >>>> XWikiAttachmentContent uses File.deleteOnExit(), but in Sun's >>>> implementation, deleteOnExit() >>>> only deletes on a *clean* exit, in a crash it can't delete the files but >>>> it doesn't tag them >>>> so they can be deleted in the next run either. Since temp files are >>>> usually pseudo-randomly >>>> named, they are impossible to find and delete later. >>>> >>>> I propose that we create a subdirectory, `java.io.tmpdir`/xwiki/ which >>>> will be removed on >>>> application exit. If the jvm crashes, the files will be removed next time >>>> around. Then alter >>>> ApplicationContext.getTemporaryDirectory() to yield this directory. >>>> >>>> WDYT? >>>> >>>> Caleb >> _______________________________________________ >> devs mailing list >> [email protected] >> http://lists.xwiki.org/mailman/listinfo/devs >> > > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

