Toon posts:

[java] Alleen in 1 vm: Illegal field modifiers in class

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb java code gecompileerd met de Eclipse java 1.5 compiler. Deze code maakt gebruik van een interface, waarop ik -alleen- in 1 enkele VM een error krijg:

"Illegal field modifiers in class"

De interface zelf heeft voor zijn methods de modifiers public en abstract staan (ja ik weet het, je kunt deze weglaten, maar Eclipse genereerde dit).

De gecompileerde code draai overal zonder klagen. De VM waar op het fout gaat is de Sun 1.5_04 VM voor AMD64. Het enigste afwijkende 'detail' is dus dat het de 64 bits versie betreft, maar dat veranderd de taal semantiek toch niet?

Hoe kan elke 1.5 VM deze code nou slikken, en een enkele niet?

De interface in kwestie:

Java:
1
2
3
public interface DataSet extends Iterator<Map> {
    public abstract int rowCount();
        // meer van dergelijke functies

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17:52

.oisyn

Moderator Devschuur®

Demotivational Speaker

En dan nog wel een van Sun :X. Maar het klinkt als een ordinaire bug, ik zou even een mailtje sturen :). Helpt het als je die public en abstract weghaalt?

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Bij een interface hoor je die public en abstract er toch idd niet te vermelden. Alle methods die je in een interface defineerd zijn automatisch public en abstract. Wel vreemd dat er idd maar 1 VM over valt.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

rwb schreef op vrijdag 21 oktober 2005 @ 15:42:
Bij een interface hoor je die public en abstract er toch idd niet te vermelden. Alle methods die je in een interface defineerd zijn automatisch public en abstract. Wel vreemd dat er idd maar 1 VM over valt.
Dan nog, je mag deze er wel bij vermelden.
Overigens lijkt het me niet vreemd moest dit een bug zijn. De 64bit versie blijkt nogal wat meer bugs te bevatten.

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
-FoX- schreef op vrijdag 21 oktober 2005 @ 15:43:
[...]

Dan nog, je mag deze er wel bij vermelden.
Ok, ik ben de laatste tijd vooral C# gewend en daarbij mag het ieder geval niet

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Verwijderd

Topicstarter
De 64 bit VM bevat inderdaad meerdere bugs. We hebben hier bijna dagelijks last van (met name in combinatie met Eclipse)

In dit geval was het echter mijn eigen schuld. Het bleek dat er bij de export van de code per-ongeluk een rebuild getriggered was in 1.4 compliance mode. De Eclipse compiler heeft de eigenschap dat het niet afbreekt bij fouten (zoals javac wel doet), maar gewoon doorcompileerd. De 1.5 code in 1.4 mode werd dus gerund op de genoemde VM. De foutmelding was dan wel een beetje vaag.

Sorry voor deze ruis op het forum...

  • misfire
  • Registratie: Maart 2001
  • Laatst online: 12-10-2024
Wellicht dat de allerlaatste Java 5 Update 5 wat stabieler draait op je AMD64?
Pagina: 1