Issue531256
Created on 2002-03-18.08:41:49 by ianzsk, last changed 2002-05-31.12:38:23 by bckfnn.
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2002-03-18 08:41:49 | ianzsk | create | |
Created on 2002-03-18.08:41:49 by ianzsk, last changed 2002-05-31.12:38:23 by bckfnn.
| Messages | |||
|---|---|---|---|
| msg624 (view) | Author: ian west (ianzsk) | Date: 2002-03-18.08:41:49 | |
Firstly I want to say -- fantastic work guys!!!
Now to the problem :-(.
If a Java constructor uses <Class>.newInstance() within
its body and <Class> is a PyProxy class then. a
Type Error occurs from within in Py.initProxy(...).
I think the problem is because the
ThreadState.{get/push/pop}InitializingProxy()
methods are being "subverted"
by the direct call to Class.newInstance() below:
#****** Jython 2.1 part
# File xx.py
from x import X,Y
class PyX(X): pass
class PyY(Y): pass
PyX.useClass(PyY)
X() # OK
PyX() # Not OK prints 'TypeError: Proxy instance reused'
//*****Java part
// File x/X.java
package x;
public class X {
static Class myClass;
// register a class to construct
public static void useClass(Class cls) {
myClass=cls;
}
Object o;
public X() throws Exception {
o=myClass.newInstance();
}
}
// File x/Y.java
package x;
public class Y { public Y() {} }
|
|||
| msg625 (view) | Author: Finn Bock (bckfnn) | Date: 2002-05-31.12:35:50 | |
Logged In: YES user_id=4201 Your analysis is correct, the use of newInstance does not work when there is a python class instance ctor on the stack. Both python class ctor and newInstance() work correctly, they just don't mix. To the best of my knowledge, there is no way to improve the situation. |
|||
| msg626 (view) | Author: Finn Bock (bckfnn) | Date: 2002-05-31.12:38:23 | |
Logged In: YES user_id=4201 Added as test364. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2002-03-18 08:41:49 | ianzsk | create | |
Supported by Python Software Foundation,
Powered by Roundup