Win a copy of The Java Performance Companion this week in the Performance forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

JVM 1.3.1_03 vs 1.4.0_01

 
achana chan
Ranch Hand
Posts: 277
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi
I asked an admin person to upgrade from his current 1.3.1_03 to 1.4.0_01
He said that's not possible because a lot of things running in 1.3.1 won't run when upgraded to 1.4.0.
Can this be true because I find it a bit difficult to understand why something running in 1.3 won;t run anymore in 1.4 ???
 
Thomas Paul
mister krabs
Ranch Hand
Posts: 13974
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
He is mistaken.
 
Peter den Haan
author
Ranch Hand
Posts: 3252
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
... but not completely mistaken. There is software that runs in 1.3 but not in 1.4, and not necessarily because it's badly written. "A lot" is a gross exaggeration, and that is where he is mistaken, but it's there.
A project I was involved in half a year ago used 1.3.1 because (a) Apache Batik didn't run under 1.4.1 at the time and (b) we had no end of trouble with the version of Xerces in 1.4.1.
Certainly if there's quite a bit of Java software running, the admin is completely justified in his refusal to move to 1.4 without a compatibility test of the important software.
YMMV, but don't count on it.
- Peter
[ January 07, 2003: Message edited by: Peter den Haan ]
 
Ilja Preuss
author
Sheriff
Posts: 14112
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
We had in fact some problems moving our projects from 1.3 to 1.4. The biggest one was a class extending java.util.Vector and overwriting one of its methods in a way that on 1.4 an endless recursion occured (IIRC). But that was a very bad design decision anyway... :roll:
 
Sam Dalton
Author
Ranch Hand
Posts: 170
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Ilja Preuss:
We had in fact some problems moving our projects from 1.3 to 1.4. The biggest one was a class extending java.util.Vector and overwriting one of its methods in a way that on 1.4 an endless recursion occured (IIRC). But that was a very bad design decision anyway... :roll:

Another potential problem relates to the new assert keyword in 1.4. If you simply run the 1.4 VM on code containing variables or methods named assert without specifying that 1.4 asserts should not be used, you will run into BIG problems.
Cheers
Sam
 
Gregg Bolinger
GenRocket Founder
Ranch Hand
Posts: 15302
6
Chrome IntelliJ IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Another problem is the way image files (among others) are loaded from JAR files. I had a heck of a time with that when I converted trying to find the cause.
 
Peter den Haan
author
Ranch Hand
Posts: 3252
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Sam, is that true? My understanding is that the addition of the assert keyword (obviously) impacts source compatibility, but does not affect binary compatibility. On the JVM level I think it is legal for methods and variables to have names corresponding to reserved words. In fact, I'm using a Java bytecode obfuscator that works by, among other things, giving non-public variables and methods reserved names.
- Peter
 
Dirk Schreckmann
Sheriff
Posts: 7023
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The AWT focus model changed with 1.4. Some programs written for pre-1.4 JVMs won't behave correctly with the new model.
More information:
  • The AWT Focus Subsystem - Sun
  • Java 2 gets a new focus subsystem - IBM developerWorks
  • Focus on Focus: A Tutorial on the New API - Sun
  • The Focus Puller - an article by James W. Cooper

  • [ January 08, 2003: Message edited by: Dirk Schreckmann ]
     
    Sam Dalton
    Author
    Ranch Hand
    Posts: 170
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Originally posted by Peter den Haan:
    Sam, is that true? My understanding is that the addition of the assert keyword (obviously) impacts source compatibility, but does not affect binary compatibility. On the JVM level I think it is legal for methods and variables to have names corresponding to reserved words. In fact, I'm using a Java bytecode obfuscator that works by, among other things, giving non-public variables and methods reserved names.
    - Peter

    Peter,
    Sorry you are correct, I meant to say that you would be unable to compile hte classes with a 1.4 compiler.
    Cheers
    Sam
     
    • Post Reply
    • Bookmark Topic Watch Topic
    • New Topic