Stackoverflowerror beheben

frani100

Mitglied
Hallo,

Ich habe ein Java –Programm, das ganz viele XML-Dateien gegen ein Schema validiert. Es funktioniert auch alles, aber immer wieder wird ein StackOverflowError ausgelöst.

Hier ein kurzer Ausschnitt aus meinem Programm:
Java:
 public static void schemaPruefen() throws Exception {

Thread myThread = new Thread() {
String zeile = "";
public void run() { 
try {
BufferedReader in = new BufferedReader(new FileReader(new File(pfadliste)));
			int anzwhile =0;
			while ((zeile = in.readLine()) != null) {
				anzwhile++;
				try {						
					Validierung(zeile);
				} catch (Exception e) {
					e.printStackTrace();
				}				
			}
		} catch (IOException e) {
			e.printStackTrace();				
		}catch (Exception e) {
			e.printStackTrace();
		}
};
myThread.start();
}

public static void Validierung(String xml) throws Exception {
	SchemaErrorHandler seh=new SchemaErrorHandler(new String(xml));
	DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
	factory.setValidating(true);
	factory.setNamespaceAware(true);
	try {
		DocumentBuilder builder = factory.newDocumentBuilder();
		builder.setErrorHandler(seh); 

		Document doc = builder.parse(new File(xml));
			
		Validator validator = schema.newValidator();	
		validator.validate(new DOMSource(doc));
			
		System.out.println(xml + " ist valide.\r\n");
		anzalle++;
		anzok++;
	} catch(StackOverflowError e) {
		System.out.println(“Stackoverflowerror:“ + xml);
	}
}

In der Methode Validierung, im try-catch Block wir der Stackoverflowerror ausgelöst. Immer an einer anderen XML-Datei. Ich schätze auch, weil diese unterschiedlich groß sind.

Der Aufruf java -Xms6m programm kommt bei mir nicht in Frage, weil ich das Programm eine GUI hat und über ein jar-Packet gestartet wird.

Hat da einer ne Idee und kann mir helfen?
 
M

maki

Gast
Der Aufruf java -Xms6m programm kommt bei mir nicht in Frage, weil ich das Programm eine GUI hat und über ein jar-Packet gestartet wird.
Ohne jetzt auf ein mögliches Problem im Quelltext einzugehen:
Es ist absolut üblich eine Java Anwendung, welche als Jar vorliegt, über shell scripte (.bat, .cmd, bash etc) zu starten, denn nur so kann man Speicherwerte (Stack, Heap, etc) tunen.
 

Empire Phoenix

Top Contributor
Anenommen es liegt nicht an design schwächen, kannst du es per batch datei die parameter übergeben oder es mithilfe eines wrappers in eine ausfürbare datei packen, die sich dann darum kümmert, musste wenn mal bei google gucken gibt es dutzende projecte für.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Zeppi Rekursion StackOverflowError Allgemeine Java-Themen 4
S Stackoverflowerror Allgemeine Java-Themen 2
javaerd Binomialkoeffizient ausrechnen, Exception in thread "main" java.lang.StackOverflowError Allgemeine Java-Themen 6
Androbin Interpreter-Fehler Probleme mit Rekursion - StackOverflowError Allgemeine Java-Themen 8
G StackoverflowError beim laden einer FXMML Datei Allgemeine Java-Themen 1
G maven 3.1.1 StackOverflowError Allgemeine Java-Themen 3
A Binäre Suche im Array mit StackOverflowError Allgemeine Java-Themen 3
H StackOverflowError erst ab 87 Array Elementen Allgemeine Java-Themen 4
E Interpreter-Fehler StackOverflowError Allgemeine Java-Themen 3
M StackOverflowError Allgemeine Java-Themen 9
E StackOverflowError Allgemeine Java-Themen 8
Schandro StackOverflowError bei Rekursion verhindern Allgemeine Java-Themen 14
U Kompilieren einer großen Datei if-else = StackOverflowError Allgemeine Java-Themen 4
J java.lang.StackOverflowError Debugging? Allgemeine Java-Themen 51
S StackOverflowError - Brett vor'm Kopf Allgemeine Java-Themen 6
T Profifrage: java.lang.StackOverflowError bei BigInteger Allgemeine Java-Themen 27
G StackOverflowError Allgemeine Java-Themen 6
F Warum StackOverFlowError? Allgemeine Java-Themen 6
N Fehlermeldung beheben Allgemeine Java-Themen 6
S Warnings beheben oder Abwärtskompatibilität waren Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben