Skip to main content

High Horses

Posted by editor on January 3, 2008 at 5:35 AM PST


More discussion amongst the closures theorists

The ongoing and still-unresolved "closures for Java 7" debate isn't scoring very high in our poll of the top Java-related developments in 2007, but there's no doubt that this remains a topic being closely followed by much of the Java community. Beyond the obvious constituencies -- those who love closures (many of whom love one particular proposal) and those who hate them and don't want to "junk up" the Java language any further -- there's also a crowd that isn't invested yet but knows their lives will be impacted by any syntax that's adopted by the language. It's tempting to call this the "just don't make it another Generics" camp, if you buy the premise that a number of developers who didn't follow the Generic proposals in advance of Java 5 were badly burned by not liking (or not understanding) the syntax that was eventually approved.

This latter crowd has much to gain from the fact that the closures debate is being carried out in public, in blogs and prototypes, which gives interested parties a much better idea of what's on the table and why. The downside is that there are so many proposals now, it's hard to keep track of them. Would you like "real" closures with a new syntax, or just beefed-up inner classes? Will you take your closures as autoboxed quasi-objects, or honest-to-Gosling Objects? Coke or Pepsi? Paper or plastic?

We start the Java Today section with a pair of perspectives on the closures debate at the dawn of 2008. On his JRoller blog, Stephen Colebourne continues his series of comparisons of the major closure proposals for Java 7 in Closures - Comparing control structures of BGGA, ARM and JCA. "In this blog I'm going to compare the second major part of the three principle 'closure' proposals - control structures. This follows my previous blog where I compared one method callbacks." He argues there are two basic approaches to control structures: let anyone write them (as the BGGA and JCA proposals do), or restrict them to language designers.

That said, there are other proposals to add to the mix. In An Alternative to Closure Conversion and to Restricted Closures, Dr. Howard Lovatt of the Artima "Pattern Centric" blog proposes an alternative where the closure is an object:

Closure conversions, both normal and restricted, have a number of catches, a bit like autoboxing of primitives does. The problem is that a closure, like a primitive, is a bit like an object but not quite and this difference is patched over by boxing the closure within an object. I think we should be striving for a more consistency, i.e. everything as an object, not introducing more none-object types.


Also in Java Today: JSR 271, Mobile Information Device Profile 3, entered a three-month public review in late December. This major JSR for the ME platform seeks to accomplish a number of goals, including enabling and specifying proper behavior for MIDlets on each of CLDC, CDC, and OSGi, enabling shared libraries for MIDlets, tightening spec in all areas to improve cross-device interoperability, improving functionality in a number of areas, specifying standard means of MIDlet provisioning (Bluetooth, removable media, MMS, JSR 232, etc.), and more. The public review ends on March 18.


Fabrizio Giudici begings today's Weblogs with a new year's review and preview in
2007 and 2008: looking at things in perspective
"I'm going to talk about what I have done in 2007 and about what I will do in 2008. Even more boring? It depends, because after all this is related to a question that I've been put after my talk at JavaPolis. The question was more or less "how do you make money with your opensource projects?""

Jan Haderka wants you to
Get Busy now with SwingX:
"Infinite progress bar like component of SwingX - JXBusyLabel have been reimplemented to add more flexibility."

Finally, Cay Horstmann takes stock of
The OLPC and Java.
"I got myself (and another deserving child somewhere out there) a "One Laptop Per Child" for christmas. Here is my experience with Java on the device, followed by some year-end musings what this all means."


In today's Forums,
cowwoc wonders
Why doesn't java.io.ObjectOutputStream use weak references?
"One of the common complaints against Java Serialization is that you get OutOfMemoryError when serializing a large number of objects. The Serialization FAQ indicates this is caused by the [object, handle] table: [see Object Serialization FAQ #3]. I was wondering why the class can't use a [WeakReference, handle] instead? That is, a table that would remove keys that have been garbage-collected."

whartung discusses EJB deployment considerations and their implications for remoting versus local semantics in the reply
Re: How do EJBs communicate between an Enterprise Application and an EJB Module
"Yea, only elements deployed within the same EAR can enjoy Local semantics, outside of the EAR you have to use Remote. Now, the fact than an EJB may be in a JAR that's deployed WITHIN an EAR, doesn't change that. The EJB in the JAR is deployed IN the EAR, so it can use Local calling even though it's packaged within a JAR. For example, I have common EJBs in their own library JAR file that I use with different EARs, but they all enjoy Local calling semantics once deployed within an EAR."

Finally, rwillie6 reports that
After some time running, cluster becomes non-responsive.
"I have a 3 machine glassfish cluster load balanced by SJSWS 7.0. If I reboot all machines and start up the cluster, everything is fine. But after some time, the cluster becomes non-responsive with all instances returning HTTP 403 error codes. Executing a "asadmin stop-cluster cluster-name" command takes ridiculously longer than usual but eventually completes. The biggest problem is that after stopping the cluster, trying to restart it with "asadmin start-cluster cluster-name" fails with this error:

[root@glassfish1 ~]# asadmin start-cluster cluster-name

Operation 'startCluster' failed in 'clusters' Config Mbean."


Current and upcoming Java
Events
:

Registered users can submit event listings for the href="http://www.java.net/events">java.net Events Page using our href="http://today.java.net/cs/user/create/e">events submission form.
All submissions go through an editorial review before being posted to the
site.


Archives and Subscriptions: This blog is delivered weekdays as
the Java
Today RSS feed
. Also, once this page is no longer featured as the
front page of java.net it will be
archived along with other past issues in the href="http://today.java.net/today/archive/">java.net Archive.

More discussion amongst the closures theorists