Issue1651

classification
Title: Crash on os.path.isfile(None)
Type: crash Severity: normal
Components: Core Versions: 2.5.1
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: gdoutch, pjenvey
Priority: Keywords:

Created on 2010-09-02.09:37:02 by gdoutch, last changed 2010-09-02.17:12:23 by pjenvey.

Messages
msg6031 (view) Author: Gareth Doutch (gdoutch) Date: 2010-09-02.09:37:00
On jython 2.5.1, JRE 6.0_16-b01, Windows i386:

>>> import os
>>> os.path.isfile(None)
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x77c47bc4, pid=8908, tid=13396

#
# JRE version: 6.0_16-b01
# Java VM: Java HotSpot(TM) Client VM (14.2-b01 mixed mode, sharing windows-x86
)
# Problematic frame:
# C  [msvcrt.dll+0x37bc4]
#
# An error report file with more information is saved as:
# C:\WINDOWS\hs_err_pid8908.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#


Python 2.7 (r27:82525, Jul  4 2010, 09:01:59) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.path.isfile(None)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\genericpath.py", line 29, in isfile
    st = os.stat(path)
TypeError: coercing to Unicode: need string or buffer, NoneType found


(Python 2.5 does the same - tested on another machine).
msg6032 (view) Author: Philip Jenvey (pjenvey) Date: 2010-09-02.17:12:22
This is related to #1369. This should be fixed in 2.5.2b1, as most of the stat implementation (which isfile relies on) was rewritten. Reopen this ticket if you can still reproduce it on 2.5.2, but I can't on OSX

Jython 2.5.2b1 (trunk:7095M, Sep 1 2010, 22:35:18) 
[Java HotSpot(TM) 64-Bit Server VM (Apple Inc.)] on java1.6.0_17
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.path.isfile(None)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/pjenvey/src/java/jython/dist/Lib/posixpath.py", line 208, in isfile
    st = os.stat(path)
  File "/Users/pjenvey/src/java/jython/dist/Lib/posixpath.py", line 208, in isfile
    st = os.stat(path)
TypeError: coercing to Unicode: need string or buffer, NoneType found
History
Date User Action Args
2010-09-02 17:12:23pjenveysetstatus: open -> closed
resolution: fixed
messages: + msg6032
nosy: + pjenvey
2010-09-02 09:37:03gdoutchcreate