On Wed, May 24, 2000 at 02:19:43PM +0100, Chris Withers wrote:
Given Itamar's comments, I have changed his suggestion as follows:
You can try to fix this problem, by removing the "int(...)" in "OFS.Image.py:186"
- mod_since=int(DateTime(header).timeTime())
+ mod_since=long(DateTime(header).timeTime())
I've checked this in for 2.2. Thanks for investigating this guys!
--Brian
Woohoo! :-)
Chris
I've changed Image.py as suggested in the line above but I was still getting some strange behaviour so I pursued it a little bit further. I encountered the following strange behaviour when using the debugger to step through the code: The image I'm looking for has: Last-Modified: Wed, 15 Mar 2000 19:02:17 GMT Upon executing: ZPublisher.Zope('/path/to/image', d=1) and stepping into the debugger I set: environ['IF_MODIFIED_SINCE'] = 'Wed, 15 Mar 2000 19:02:17 GMT' when I get to lib/python/OFS/Image.py(line 188) I get the following strange results:
OFS/Image.py(188)index_html() -> if last_mod > 0 and last_mod <= mod_since: pdb> print mod_since, last_mod 953146936 953146937 <<<< Something is wrong! mod_since should equal last_mod pdb> print DateTime(header).timeTime() 953146937.0 pdb> print self._p_mtime 953146937.38 pdb> int(953146937.0) 953146937 pdb> print int(DateTime(header).timeTime()) 953146936 <<<< WHAT!? pdb> type( DateTime(header).timeTime() ) <type 'float'> pdb> int(DateTime(header).timeTime()) 953146936 <<<< I still don't believe this. pdb> DateTime(header).timeTime() 953146937.0 pdb> print header Wed, 15 Mar 2000 19:02:17 GMT pdb> long(DateTime(header).timeTime()) 953146936L <<<< long also does it!?
I'm completly baffled by this, how can int/long be interacting with DateTime(header).timeTime() to produce this error? ------------------------------------------------------ Andres Corrada-Emmanuel Email: andres@corrada.com ------------------------------------------------------