Hello,

In a migration to Java 1.5, one has to consider the changed
semantics of "synchronized" in the commonly used Sun JVM.
In Java 1.4, waiting threads are queued up in FIFO order, which is typically the behavior expected by the developer.
This is however changed to LIFO order in Sun's Java 1.5 JVM,
making the code starvation-prone under high load.

Sun suggest replacing synchronized blocks with one of the
locking mechanisms found in the java.util.concurrent library.

More details about this: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6316090

A quick count in the Java WS Core 4.0.5 code gives 184 usages of "synchronized". Replacing these by a FIFO locking mechanism should require some effort from the developers.

Best regards,

Johan Tordsson

On Mon, 17 Sep 2007, Tom Howe wrote:

While looking into the solutions available for supporting database
persistence for resources we discovered that the best solution was the
Java Persistence API (JPA).  This approach requires the least demands
on the service developer while providing a highly performant, standard
solution that is acceptable under the apache license.  However, JPA
requires java 5 because it is based on annotations.  As a result, we
started to consider the costs and benefits of moving the java ws core
to Java 5.  This email should outline these costs and benefits and,
hopefully, justify moving the java ws core to Java 5.  Let's start
with the costs of migrating to Java 5.

Cost:
- Upgrade to JDK 1.5. A version available for all platforms supported by
Globus
- Changes to language specification. Developers need to change use of enum
as variable name.

Benefits:
- Allow use of JPA
- Annotations and -javaagent may be leveraged by Java WS Core to improve
service development usability through bytecode enhancement
- Other features useful for cleaner code: Generics,
java.util.concurrency, JAXP improvements, static imports, enhanced for
loop

A more in depth discussion of the costs and benefits is available
here: http://www-unix.mcs.anl.gov/~ranantha/java5Upgrade.txt.

Finally, since Java 6 has been out for quite a while and Java 7 is in
the works, this seems like an appropriate time to upgrade to Java 5.
It has been well tested and supported.  It could make developing
services for the Java WS-Core a more pleasant experience.

Please provide comments, concerns and questions.

Thanks,
Tom


---------------------------------
 Johan Tordsson
 Department of Computing Science
 Umea University
 SE-901 87 Umea
 tordsson_at_cs.umu.se

Reply via email to