As it turns out, Java has a fair number of nasty WONT-FIX bugs.

In my above documented attempt where it couldn't delete the
file...there's a WONT-FIX bug for that:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4715154

No wonder ppl hate Java.

Massimo, are you going to re-work template.py to work around the bug?
I know that template.py is kinda touchy when it comes to backward
compatibility.  I've looked into this a little more and I'm
considering creating a Jython branch as I could really use it.
However the two bugs above might cause problems with my application
code.  I'll have to look into that.

-tim

On Nov 9, 1:15 pm, mdipierro <mdipie...@cs.depaul.edu> wrote:
> This is clearly a Java bug. A major one. I love the "won't fix"
>
> On Nov 9, 12:33 pm, Timbo <tfarr...@swgen.com> wrote:
>
> > No difference.
>
> > I think this is the bug we're dealing with:
>
> >http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5050507
>
> > Since it's a wont-fix, our only option is to work around it by relying
> > less on regexps.  Is that an acceptable solution?
>
> > On Nov 9, 11:58 am, mdipierro <mdipie...@cs.depaul.edu> wrote:
>
> > > another test. in gluon/templates.py
>
> > > can you replace
>
> > > re_strings = re.compile(r'(?P<name>'
> > >                          + r"[uU]?[rR]?'''([^']+|'{1,2}(?!'))*'''|"
> > >                          + r"'([^'\\]|\\.)*'|"
> > >                          + r'"""([^"]|"{1,2}(?!"))*"""|'
> > >                          + r'"([^"\\]|\\.)*")', re.DOTALL)
>
> > > with
>
> > > re_strings = re.compile(r'(?P<name>'
> > >                          + r"[uU]?[rR]?'''([^']|'{1,2}(?!'))*'''|"
> > >                          + r"'([^'\\]|\\.)*'|"
> > >                          + r'"""([^"]|"{1,2}(?!"))*"""|'
> > >                          + r'"([^"\\]|\\.)*")', re.DOTALL)
>
> > > Does it make things better?
>
> > > Massimo
> > > On Nov 9, 11:21 am, mdipierro <mdipie...@cs.depaul.edu> wrote:
>
> > > > The first problem is because you did not upgraded admin in a while ;-)
>
> > > > cd applications/admin
> > > > tar zxvf ../../admin.w2p
>
> > > > The second error. Can you help me fix it?
>
> > > > Try each one of these models?
>
> > > > <html><body>{{='hello world'}</body></html>
>
> > > > <html><body>{{='''hello world'''}</body></html>
>
> > > > <html><body>{{="hello world"}</body></html>
>
> > > > <html><body>{{="""hello world"""}</body></html>
>
> > > > which ones break? Any, none? Please email me privately.
>
> > > > Massimo
>
> > > > On Nov 9, 11:07 am, Timbo <tfarr...@swgen.com> wrote:
>
> > > > > OK so I downloaded fresh versions of both.  If put in the above
> > > > > workaroudn for the TCP_NODELAY issue.  And upon running I get:
>
> > > > > C:\jython2.5.1>jython.bat \web2py2\web2py.py
> > > > > WARNING:root:no file locking
> > > > > WARNING:root:unable to import dbhash
> > > > > WARNING:root:GUI not available because Tk library is not installed
> > > > > unpacking apps; this may take a few seconds...
> > > > > Traceback (most recent call last):
> > > > >   File "\web2py2\web2py.py", line 20, in <module>
> > > > >     gluon.widget.start(cron=True)
> > > > >   File "C:\web2py2\gluon\widget.py", line 726, in start
> > > > >     (options, args) = console()
> > > > >   File "C:\web2py2\gluon\widget.py", line 699, in console
> > > > >     w2p_unpack('admin.w2p', 'applications/admin/')
> > > > >   File "C:\web2py2\gluon\fileutils.py", line 189, in w2p_unpack
> > > > >     os.unlink(tarname)
> > > > >   File "C:\jython2.5.1\Lib\os.py", line 342, in remove
> > > > >     raise OSError(0, "couldn't delete file", path)
> > > > > OSError: [Errno 0] couldn't delete file: 'admin.tar'
>
> > > > > So I wrapped that in a try-block. The next issue to deal with is a
> > > > > lack of sqlite (Welcome app).  That's not difficult but annoying.
> > > > > Just delete the db.py model (for now).  And that gets us to the root
> > > > > issue I can't get past with any template.  Here's the traceback for
> > > > > the Welcome app main page:
>
> > > > > Traceback (most recent call last):
> > > > >   File "C:\web2py2\gluon\main.py", line 459, in wsgibase
> > > > >     serve_controller(request, response, session)
> > > > >   File "C:\web2py2\gluon\main.py", line 459, in wsgibase
> > > > >     serve_controller(request, response, session)
> > > > >   File "C:\web2py2\gluon\main.py", line 206, in serve_controller
> > > > >     run_view_in(response._view_environment)
> > > > >   File "C:\web2py2\gluon\compileapp.py", line 492, in run_view_in
> > > > >     ccode = parse_template(response.view,
> > > > >   File "C:\web2py2\gluon\template.py", line 149, in parse_template
> > > > >     return parse(text)
> > > > >   File "C:\web2py2\gluon\template.py", line 65, in parse
> > > > >     text = replace(re_strings, text, lambda x: x.replace('\n', '\\n'))
> > > > >   File "C:\web2py2\gluon\template.py", line 77, in replace
> > > > >     for item in regex.finditer(text, i):
> > > > > RuntimeError: maximum recursion depth exceeded
>
> > > > > This is Jython 2.5.1 fresh install, 1.71.2 fresh install with only the
> > > > > changes I've mentioned in this post.  There are no bugs for this in
> > > > > Jython as the answer has always been "just increase the recursion
> > > > > depth". I've tried setting the recursion depth to something
> > > > > ridiculously high and that made no difference.
>
> > > > > Can anyone else confirm/deny this?  I'm testing on Windows, can we get
> > > > > a Linux user to test this?
>
> > > > > -tim
>
> > > > > On Nov 9, 10:00 am, mdipierro <mdipie...@cs.depaul.edu> wrote:
>
> > > > > > I cannot reproduce this with jython2.5rc3 on mac.
>
> > > > > > On Nov 9, 9:52 am, Timbo <tfarr...@swgen.com> wrote:
>
> > > > > > > No need, it blows up for me on the admin interface.  I have no 
> > > > > > > special
> > > > > > > customizations.  I'm trying this on Sun JRE6/Jython2.5.1 on WinXP.
>
> > > > > > > On Nov 9, 8:34 am, mdipierro <mdipie...@cs.depaul.edu> wrote:
>
> > > > > > > > Can you send me the view that creates the regex problem in 
> > > > > > > > Jython. I
> > > > > > > > have seen it before and I thought it was fixed.
>
> > > > > > > > On Nov 9, 7:53 am, Timbo <tfarr...@swgen.com> wrote:
>
> > > > > > > > > Jython does support TCP_NODELAY, but it does so in the Java
> > > > > > > > > fashion...that is to say only on a client socket.  The short 
> > > > > > > > > story is
> > > > > > > > > this: most platforms allow you to set socket options to server
> > > > > > > > > (accepting) sockets and the accepted (client) sockets that 
> > > > > > > > > come from
> > > > > > > > > them inherit the options from the server socket.  This varies 
> > > > > > > > > based on
> > > > > > > > > platform.  Some platforms inherit all options, some just 
> > > > > > > > > TCP_NODELAY.
> > > > > > > > > Java is a little different in that it inherits none and 
> > > > > > > > > consequently
> > > > > > > > > it does not allow setting TCP_NODELAY to a server socket.
>
> > > > > > > > > The good news is that it does support it on the client socket 
> > > > > > > > > it just
> > > > > > > > > that you have to socket.setsockopt() on the client connection 
> > > > > > > > > after
> > > > > > > > > you accept it.  This behavior is currently up for debate 
> > > > > > > > > right now
> > > > > > > > > with Jython.  Seehttp://bugs.jython.org/issue1309
>
> > > > > > > > > Now the blocker that I ran into with Jython + web2py is the 
> > > > > > > > > template
> > > > > > > > > module.  web2py templates rely heavily on regexps.  This is 
> > > > > > > > > great
> > > > > > > > > because it makes them fast...but Jython does something 
> > > > > > > > > different with
> > > > > > > > > cPython such that everytime I try to render a template, I get 
> > > > > > > > > a
> > > > > > > > > "Recursion limit exceeded error".  Maybe Regexps are not the 
> > > > > > > > > same in
> > > > > > > > > Java as in Python (Perl).  This is one I haven't been able to 
> > > > > > > > > track
> > > > > > > > > down.
>
> > > > > > > > > Java (and hence Jython) is great from a concurrency 
> > > > > > > > > perspective since
> > > > > > > > > it is fully multi-threaded whereas cPython has the GIL to 
> > > > > > > > > deal with.
> > > > > > > > > It would be awesome if we could find a happy marriage between 
> > > > > > > > > web2py
> > > > > > > > > templates and Jython.
>
> > > > > > > > > -tim
>
> > > > > > > > > On Nov 9, 3:04 am, Vasile Ermicioi <elff...@gmail.com> wrote:
>
> > > > > > > > > > I have to convince someone that python is better than Java 
> > > > > > > > > > (and even can
> > > > > > > > > > work with Java) -
> > > > > > > > > > Jython+Web2py is my best argument :)
>
> > > > > > > > > > On Mon, Nov 9, 2009 at 8:38 AM, mdipierro 
> > > > > > > > > > <mdipie...@cs.depaul.edu> wrote:
>
> > > > > > > > > > > I changed it in trunk so that it is automatic and now 
> > > > > > > > > > > (again) web2py
> > > > > > > > > > > works with Jython out of the box. I have email the author 
> > > > > > > > > > > of
> > > > > > > > > > > wsgiserver hoping this is fixed in the official 
> > > > > > > > > > > distribution.
>
> > > > > > > > > > > On Nov 8, 1:56 pm, mdipierro <mdipie...@cs.depaul.edu> 
> > > > > > > > > > > wrote:
> > > > > > > > > > > > jython does not seem to support socket option no_delay. 
> > > > > > > > > > > > In gluon/
> > > > > > > > > > > > wsgiserver.py replace
>
> > > > > > > > > > > >  nodelay = True
>
> > > > > > > > > > > > with
>
> > > > > > > > > > > >  nodelay = False
>
> > > > > > > > > > > > Massimo
>
> > > > > > > > > > > > On Nov 8, 1:48 pm, Nik <nitral...@googlemail.com> wrote:
>
> > > > > > > > > > > > > Hi folks,
>
> > > > > > > > > > > > > For testing web2py with jython I have started it
> > > > > > > > > > > > > by executing  "jython web2py.py" and got the following
> > > > > > > > > > > > > error message:
>
> > > > > > > > > > > > > ==================================================================
> > > > > > > > > > > > > saturn:web2py_1.71.2 nik$ jython web2py.py
> > > > > > > > > > > > > WARNING:root:no file locking
> > > > > > > > > > > > > WARNING:root:unable to import dbhash
> > > > > > > > > > > > > WARNING:root:GUI not available because Tk library is 
> > > > > > > > > > > > > not installed
> > > > > > > > > > > > > default applications appear to be installed already
> > > > > > > > > > > > > web2py Enterprise Web Framework
> > > > > > > > > > > > > Created by Massimo Di Pierro, Copyright 2007-2009
> > > > > > > > > > > > > Version 1.71.2 (2009-11-04 15:48:54)
> > > > > > > > > > > > > Database drivers available:
> > > > > > > > > > > > > Starting cron...
> > > > > > > > > > > > > choose a password:********
> > > > > > > > > > > > > please visit:
> > > > > > > > > > > > >        http://127.0.0.1:8000
> > > > > > > > > > > > > use "kill -SIGTERM 949" to shutdown the web2py server
> > > > > > > > > > > > > Traceback (most recent call last):
> > > > > > > > > > > > >   File "web2py.py", line 20, in <module>
> > > > > > > > > > > > >     gluon.widget.start(cron=True)
> > > > > > > > > > > > >   File
>
> ...
>
> read more »
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to