GWT / GXT compilation slow and freezes my Windows ?

Recently I was able to run some basic GWT / GXT compilation tests to compare time efficiency between some old and new machines using Microsoft Windows. Test results wasn’t something that surprised me much but by accident I was able to find a reason that makes GWT compilation choke even modern monster desktops (6 core Phenom 3.3GHz with fast 8GB Dual RAM and top SSD II Disc)

If you are using something else then lightweight anti-virus program your GWT compilation can be much more time consuming (depending on project size and complexity average of few times longer) and even freeze your desktop for a little while.

Suggestion: use lightweight anti-virus program (like Avast AV) or change its configuration that it would skip real time scanning of your local drive (greatly improves compilation time with NOD32, Norton AV etc…)

You May Also Like

Grails render as JSON catch

One of a reasons your controller doesn't render a proper response in JSON format might be wrong package name that you use. It is easy to overlook. Import are on top of a file, you look at your code and everything seems to be fine. Except response is still not in JSON format.

Consider this simple controller:

class RestJsonCatchController {
def grailsJson() {
render([first: 'foo', second: 5] as grails.converters.JSON)
}

def netSfJson() {
render([first: 'foo', second: 5] as net.sf.json.JSON)
}
}

And now, with finger crossed... We have a winner!

$ curl localhost:8080/example/restJsonCatch/grailsJson
{"first":"foo","second":5}
$ curl localhost:8080/example/restJsonCatch/netSfJson
{first=foo, second=5}

As you can see only grails.converters.JSON converts your response to JSON format. There is no such converter for net.sf.json.JSON, so Grails has no converter to apply and it renders Map normally.

Conclusion: always carefully look at your imports if you're working with JSON in Grails!

Edit: Burt suggested that this is a bug. I've submitted JIRA issue here: GRAILS-9622 render as class that is not a codec should throw exception