Sidst i forrige uge blev Java SE 7 frigivet efter næsten fem års ventetid. Det sker, efter at Java SE 7 blev foreløbigt godkendt i juni, som Computerworld tidligere har rapporteret.
Der er en del interessante features i den nye release som det ses i boksen længere nede.
Siden frigivelsen kom der dog også meldinger om, at der er fejl i den såkaldte Hot Spot-optimering i Java Virtual Machine (JVM), som eksekverer java-koden.
Det betyder, at JVM'en kan crashe eller resultere i programfejl i ellers fejlfri java-programmer. Det er altså under selve optimeringen af Java-koden i i program-eksekveringen, at der introduceres fejl.
Der er tale om tre fejl, som er registreret hos Oracle. Det er fejl 7070134, 7044738 og 7068051.
Der er forskellige opfattelser af, hvor alvorlige fejlene er.
Apache-projekt ramt
Apache-projektet Solr var blandt de første, der fik problemer med Hot Spot-optimeringen.
Det fik Apache-projektet til at udsende en advarsel om fejlene.
Uwe Schindler, der udvikler til Solr-projektet, har en detaljeret gennemgang af fejlen på sin blog.
Med til historien hører, at Apache og Oracle er uenige om Javas licenspolitik, hvilket fik Apache til at forlade Java-samarbejdet i december forrige år.
Fejlene fik datalogi-professoren og Java-bogforfatteren Cay Horstmann fra San Jose State University til at sammenligne JVM-fejlene med Intels berygtede Pentium-fejl fra 1994. Chippen kunne regne forkert.
"Så, under visse omstændigheder tager Hotspot angiveligt fejl. Den kan crashe, men det bekymrer mig ikke så meget. Det vil jeg lægge mærke til. Men den kan også give det forkerte resultat, uden at jeg bemærker det. Jeg vil ikke være et forskræmt egern i tilfælde som det her, men jeg må sige, at "sjældent forekommende" fejl på en meget udbredt platform bekymrer mig," skriver Cay Horstmann på sin blog.
Kun storstilet optimering skaber problemer
Ifølge Oracle-udvikleren Markus Eisele er der dog ikke grund til at skabe for megen panik. Blogs med overskrifter som "Don't Use Java 7, For Anything er ikke seriøse og spreder blot FUD, mener Markus Eisele.
I blogindlægget "Don't use Java 7? Are you kidding me?" påpeger han, at det kun er programmer, der anvender optimering i stor stil, der bliver ramt. Ved almindelig brug vil problemerne ikke optræde. Endelig fremhæver Markus Eisele, at Oracle er opmærksom på fejlene og at de vil være fikset i næste eller den følgende service release.
Har du mistanke om, at dine ellers fejlfri og godt kørende Java-programmer er begyndt at fejle under den nye JVM, så kan du prøve at slå loop optimering fra med JVM-argumenterne
-XX:-UseLoopPredicate og -XX:LoopUnrollLimit=1