Issue1758838

classification
Title: execfile() throws a NullPointerException
Type: Severity: normal
Components: Core Versions:
Milestone:
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: otmarhumbel Nosy List: cgroves, otmarhumbel
Priority: normal Keywords:

Created on 2007-07-23.12:00:41 by otmarhumbel, last changed 2007-08-01.05:55:24 by cgroves.

Files
File name Uploaded Description Edit Remove
execfile.log otmarhumbel, 2007-07-23.12:00:41 Details on how to reproduce this bug
1758838-patch.txt otmarhumbel, 2007-07-24.12:25:01 Patch for PySystemState.java
1758838-bugtest-patch.txt otmarhumbel, 2007-07-24.14:49:44 Bugtest exposing the problem
Messages
msg1786 (view) Author: Oti Humbel (otmarhumbel) Date: 2007-07-23.12:00:41
In the interactive console, execfile() correctly executes the file, but raises a NullPointerException afterwards.

See attached execfile.log for details
msg1787 (view) Author: Oti Humbel (otmarhumbel) Date: 2007-07-23.14:31:45
The problem was introduced between revisions 3005 and 3258
(rc1 is revision 3268)

not reproducible with revision 3005
reproducible with rc1
reproducible with rc2
msg1788 (view) Author: Oti Humbel (otmarhumbel) Date: 2007-07-24.12:25:02
The attached patch (1758838-patch.txt) solves the problem
File Added: 1758838-patch.txt
msg1789 (view) Author: Oti Humbel (otmarhumbel) Date: 2007-07-24.14:49:44
1758838-bugtest-patch.txt contains a bugtest exposing the problem.
It succeeds with the previous patch applied, and fails without.
File Added: 1758838-bugtest-patch.txt
msg1790 (view) Author: Oti Humbel (otmarhumbel) Date: 2007-07-24.14:54:40
Fixed, see http://jython.svn.sourceforge.net/viewvc/jython?view=rev&revision=3355
msg1791 (view) Author: Oti Humbel (otmarhumbel) Date: 2007-07-24.22:14:25
Input from Samuele:

"""
Maybe I'm just confused, I don't have time to dig into this, is this
really a fix or it is just covering a bug in the compiler?

I don't think we should be getting the null instead of the None in the
first place.

I fear that other situations in which the compiler ought to produce a
None will get a null
instead.
"""

So we should check why we are getting a null return value.
msg1792 (view) Author: Charlie Groves (cgroves) Date: 2007-08-01.05:55:24
The null was actually caused by my conversion of __builtin__.java to use function sets instead of reflection.  I was returning null for functions that didn't return anything and I should have been returning Py.None.  That's fixed as of r3375, so I rolled back the initial fix for this. 
History
Date User Action Args
2007-07-23 12:00:41otmarhumbelcreate