U
User33880213
Gast
Hallo zusammen,
ich bin gerade auf einen komischen Fehler gestoßen. Versuche eine Datei zu kompilieren welche aus einer WSDL generiert wurde. Diese beinhaltet ca. 7000 Zeilen nur if (...) { return ...; } else { ... usw.
Jetzt bekomme ich immer einen StackOverflowError.
Hier mein Aufruf (gekürzt):
Die Klasse QuantityQualifierCode sieht in ungefähr so aus (auch gekürzt):
Die Fehlermeldung beim kompilieren sieht dann so aus:
Ok sieht aus wie ein Recursiver Aufruf, tja ist es ja aber leider nicht.
Als Info:
- Ich habe bereits sämtliche Optionen mit -Xss -Xoos, Xmm und wie sie alle heissen durchprobiert => Interresiert nicht
- Ich habe unterschiedliche Kompiler (JDeveloper, Eclipse, Sun) genommen => Sche... egal
- Mit JDeveloper bspw. lässt die Datei sich kompilieren, der Aufruf ist jedoch absolut exakt zu meinem!!?!
- Wenn man von den 1267 Zeilen if-else Statements bis zu dem Eintrag mit dem Wert 741 löscht, dann kann der kompiler es!
Kann mir bitte irgend jemand helfen? Wäre wirklich wichtig für meine Studienarbeit.
Vielen Danke
ich bin gerade auf einen komischen Fehler gestoßen. Versuche eine Datei zu kompilieren welche aus einer WSDL generiert wurde. Diese beinhaltet ca. 7000 Zeilen nur if (...) { return ...; } else { ... usw.
Jetzt bekomme ich immer einen StackOverflowError.
Hier mein Aufruf (gekürzt):
Code:
javac.exe -source 1.5 -target 1.5 -verbose -deprecation -encoding Cp1252 -g -classpath ... -sourcepath "...\src" -d "...\classes" QuantityQualifierCode.java
Die Klasse QuantityQualifierCode sieht in ungefähr so aus (auch gekürzt):
Code:
public class QuantityQualifierCode implements java.io.Serializable {
private java.lang.String value;
private static final String _value1String = "Other";
private static final String _value2String = "AcceptableUnserviceableQuantity";
private static final String _value3String = "Accidents";
private static final String _value4String = "Accounts";
private static final String _value5String = "AccountsPayableAverageOverdueDays";
...
public static final java.lang.String _value1 = new java.lang.String(_value1String);
public static final java.lang.String _value2 = new java.lang.String(_value2String);
public static final java.lang.String _value3 = new java.lang.String(_value3String);
public static final java.lang.String _value4 = new java.lang.String(_value4String);
public static final java.lang.String _value5 = new java.lang.String(_value5String);
...
public static final QuantityQualifierCode value1 = new QuantityQualifierCode(_value1);
public static final QuantityQualifierCode value2 = new QuantityQualifierCode(_value2);
public static final QuantityQualifierCode value3 = new QuantityQualifierCode(_value3);
public static final QuantityQualifierCode value4 = new QuantityQualifierCode(_value4);
public static final QuantityQualifierCode value5 = new QuantityQualifierCode(_value5);
...
protected QuantityQualifierCode(java.lang.String value) {
this.value = value;
}
public java.lang.String getValue() {
return value;
}
public static QuantityQualifierCode fromValue(java.lang.String value)
throws java.lang.IllegalStateException {
if (value1.value.equals(value)) {
return value1;
} else if (value2.value.equals(value)) {
return value2;
} else if (value3.value.equals(value)) {
return value3;
} else if (value4.value.equals(value)) {
return value4;
} else if (value5.value.equals(value)) {
return value5;
} else if (value6.value.equals(value)) {
...
} else if (value1267.value.equals(value)) {
return value1267;
}
throw new IllegalArgumentException();
}
public String toString() {
return value.toString();
}
public boolean equals(java.lang.Object obj) {
if (!(obj instanceof QuantityQualifierCode)) {
return false;
}
return ((QuantityQualifierCode)obj).value.equals(value);
}
public int hashCode() {
return value.hashCode();
}
}
Die Fehlermeldung beim kompilieren sieht dann so aus:
Code:
The system is out of resources.
Consult the following stack trace for details.
java.lang.StackOverflowError
at com.sun.tools.javac.jvm.Code.resolve(Code.java:1298)
at com.sun.tools.javac.jvm.Code.resolvePending(Code.java:1320)
at com.sun.tools.javac.jvm.Code.emitop(Code.java:307)
at com.sun.tools.javac.jvm.Code.emitop2(Code.java:913)
at com.sun.tools.javac.jvm.Items$StaticItem.load(Items.java:427)
at com.sun.tools.javac.jvm.Gen.visitSelect(Gen.java:2089)
at com.sun.tools.javac.tree.Tree$Select.accept(Tree.java:987)
at com.sun.tools.javac.jvm.Gen.genExpr(Gen.java:806)
at com.sun.tools.javac.jvm.Gen.visitSelect(Gen.java:2063)
at com.sun.tools.javac.tree.Tree$Select.accept(Tree.java:987)
at com.sun.tools.javac.jvm.Gen.genExpr(Gen.java:806)
at com.sun.tools.javac.jvm.Gen.visitApply(Gen.java:1604)
at com.sun.tools.javac.tree.Tree$Apply.accept(Tree.java:813)
at com.sun.tools.javac.jvm.Gen.genExpr(Gen.java:806)
at com.sun.tools.javac.jvm.Gen.genCond(Gen.java:786)
at com.sun.tools.javac.jvm.Gen.genCond(Gen.java:739)
at com.sun.tools.javac.jvm.Gen.visitIf(Gen.java:1535)
at com.sun.tools.javac.tree.Tree$If.accept(Tree.java:715)
at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:653)
at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:688)
at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:674)
at com.sun.tools.javac.jvm.Gen.visitIf(Gen.java:1546)
at com.sun.tools.javac.tree.Tree$If.accept(Tree.java:715)
at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:653)
at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:688)
at com.sun.tools.javac.jvm.Gen.genStat(Gen.java:674)
at com.sun.tools.javac.jvm.Gen.visitIf(Gen.java:1546)
at com.sun.tools.javac.tree.Tree$If.accept(Tree.java:715)
at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:653)
Ok sieht aus wie ein Recursiver Aufruf, tja ist es ja aber leider nicht.
Als Info:
- Ich habe bereits sämtliche Optionen mit -Xss -Xoos, Xmm und wie sie alle heissen durchprobiert => Interresiert nicht
- Ich habe unterschiedliche Kompiler (JDeveloper, Eclipse, Sun) genommen => Sche... egal
- Mit JDeveloper bspw. lässt die Datei sich kompilieren, der Aufruf ist jedoch absolut exakt zu meinem!!?!
- Wenn man von den 1267 Zeilen if-else Statements bis zu dem Eintrag mit dem Wert 741 löscht, dann kann der kompiler es!
Kann mir bitte irgend jemand helfen? Wäre wirklich wichtig für meine Studienarbeit.
Vielen Danke