Exception in thread main java.lang.StackOverflowError

flerair

Mitglied
Ich bekomme die Fehlermeldung

Excpetion in thread main java.lang.StackOverflowError
at java.lang.System.arraycopy(Native Method)
at java.lang.String.getChars(String.java:826)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:416)
at java.lang.StringBuffer.append(StringBuffer.java:237)
at java.lang.StringBuffer.<init>(StringBuffer.java:121)
at AsciImage.setPixel(AsciImage.java:80)
at AsciImage.fill(AsciImage.java:95)
at AsciImage.fill(AsciImage.java:97)
at AsciImage.fill(AsciImage.java:99)
at AsciImage.fill(AsciImage.java:97)
at AsciImage.fill(AsciImage.java:99)
at AsciImage.fill(AsciImage.java:97)
at AsciImage.fill(AsciImage.java:99)
at AsciImage.fill(AsciImage.java:97)
at AsciImage.fill(AsciImage.java:99)
at AsciImage.fill(AsciImage.java:97)
at AsciImage.fill(AsciImage.java:99)
at AsciImage.fill(AsciImage.java:97)
at AsciImage.fill(AsciImage.java:99)

Die 97 und 99 wiederholt sich dann öfter.

Hier ist mein Code:

Java:
public class AsciImage {
	
	private int width;
	private String image;
	AsciImage(int h){
		width = 0;
		image = "";
	}
	
	public boolean addLine(String line){
		if(width == 0){
			if(line.length() < 1){
				return false;
			}else{
				width = line.length();
				image = line;
				return true;

			}
		}else if(width != line.length()){
			return false;
		}else{
			image += line;
			return true;
		}
	}
	public int getWidth(){
		return width;
	}
	public int getHeight(){
		if(width == 0){
			return 0;
		}else{
			return image.length()/width;	
		}
		
	}
	
	public String toString(){
		String flood = "";
		for(int i=0; i< getHeight();i++){
			if(i+1 == getHeight()){
				flood += image.substring(i*width,i* width + width);
			}
			flood += image.substring(i*width,i * width + width) + "\n";
		}
		return flood;
	}
	
	public int getUniqueChars(String image){
		
		String tmpUniqueChars = "";
		for(int i=0;i<image.length();i++){
			if(image.contains("" + image.charAt(i)) && !tmpUniqueChars.contains("" + image.charAt(i))){
				
				tmpUniqueChars += image.charAt(i);
			}
	}
	return tmpUniqueChars.length(); 
		
	}
	
	public void flipV(){
		String tmpFliped ="";
		
		for(int i = getHeight()-1;i>=0;i--){
			tmpFliped += image.substring((i*width),(i*width+width));
		}
		image = tmpFliped;
	}
	
	public void transpose(){
		
	}
	
	private void setPixel(int x, int y, char c){
		if (((0 <= x) && (x <= width)) && ((0 <= y) && (y <= getHeight()))) {

			StringBuffer newPic = new StringBuffer(image);
			newPic.setCharAt(y * width + x, c);
		}
	}
	private  char getPixel(int x, int y){
		char c = ' ';
		
		if( (x>=0 && y>=0) && (x<width && y<getHeight())){
			c = image.charAt(x+y*width);
		}
		return c;
	}
	
	public void fill(int x, int y, char c){
		char oldPicture = getPixel(x,y);
		setPixel(x,y,c);
		if( x-1 >= 0  && getPixel(x-1,y) == oldPicture){
			fill(x-1, y, c);	
		}if(x+1 < width && getPixel(x+1,y) == oldPicture){
			fill(x+1, y, c);
		}if(y-1 >= 0  && getPixel(x,y-1) == oldPicture){
			fill(x, y-1, c);
		}if(y+1 < getHeight() && getPixel(x,y+1) == oldPicture){
			fill(x, y+1, c);
		}else return;
		
	}
}
Java:
import java.util.Scanner;


public class AsciShop {
	
	static AsciImage p;
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int Zeilen = 0;
		boolean flag = true;
		if(sc.hasNext("read")){
			sc.next();
			Zeilen = sc.nextInt();
			p = new AsciImage(Zeilen);
			sc.nextLine();
			
			while(sc.hasNextLine()){
				if(Zeilen == p.getHeight()){
					if(sc.hasNext("transpose")){
						System.out.println("Transposed");
						break;
					}else if(sc.hasNext("flip-v")){
						System.out.println("flip-v");
						break;
					}else if(sc.hasNext("uniqueChars")){
						System.out.println("uniqueChars");
						break;
					}else if(sc.hasNext("fill")){
						p.fill(0,0,'#');
						break;
					}else{
						System.out.println("INPUT MISMATC2H");
						break;
					}
				}else{
					flag = p.addLine(sc.nextLine());
					if(!flag){
						System.out.println("inputmismatchorino2");
						break;
					}
				}
			}
			
		}
		
	}
}


Ich verstehe einfach nicht wieso ich diese Fehlermeldung bekomme.
Jeder Tipp ist hilfreich.
 

kaoZ

Top Contributor
Das sieht in deiner Fill Methode irgendwie nach einer ungewollten schleife aus, die dann dementsprechend den Stack überflutet

ich vermute es liegt an irgendeiner deiner if Anweisungen im block wie es auch schon im Stacktrace steht, hast du diese Methode und deren Anweisungen mal gedebuggt ?

falls ja wie werden die werte der Variablen belegt ? der Stacktrace zeigt ja schon woran es in etwa liegt und durch welche Methoden es sich zieht.
 

flerair

Mitglied
Ja aber ich kann den Fehler nicht erkennen. Ich glaube der Fehler liegt in der setPixel. Wird der neue Pixel auch gesetzt? Ich habe immer noch Probleme mit dem Stringbuilder. Kannst du vielleicht einen Fehler in der setPixel Methode erkennen?
 

flerair

Mitglied
Ich habe den Fehler mitlerweile gefunden


Java:
private void setPixel(int x, int y, char c){
		String helpString = image.substring(0,x+y*getWidth())+c+image.substring(x+1+y*getWidth());
        image=helpString;
	}






Java:
public void fill(int x, int y, char c){
		char oldPicture = getPixel(x,y);
		setPixel(x,y,c);
		if(y+1 < getHeight() && getPixel(x,y+1) == oldPicture){
			fill(x,y+1,c);
		}if(y-1 >= 0 && getPixel(x,y-1) == oldPicture){
			fill(x,y-1,c);
		}if(x+1 < getWidth() && getPixel(x+1,y) == oldPicture){
			fill(x+1, y, c);
		}if(x-1 >= 0 && getPixel(x-1,y) == oldPicture){
			fill(x-1,y,c);
		}
		
	}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
M Exception in thread "main" java.util.NoSuchElementException Java Basics - Anfänger-Themen 2
O Exception in thread "main" java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 4
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
I Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 Java Basics - Anfänger-Themen 3
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
C Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 Java Basics - Anfänger-Themen 3
J Exception in thread "main" Java Basics - Anfänger-Themen 1
L Fehler: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
N Threads Exception in thread "main"... Feher bei dem Versuch ein Radius zu berechnen Java Basics - Anfänger-Themen 4
A Code läuft nicht, Fehlermeldung Exception in thread "main" java.lang.Error: Unresolved compilation " Java Basics - Anfänger-Themen 11
P Exception in thread "main" java.lang.NoClassDefFoundError: Java Basics - Anfänger-Themen 1
K Exception in thread "main" Java Basics - Anfänger-Themen 7
L Compiler-Fehler Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 2
A Compiler-Fehler Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 7
T Problem mit Eclipse? Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 4
M Exception in thread "main" java.lang.NoClassDefFoundError: MeineKlasse Java Basics - Anfänger-Themen 12
S Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 11
S Umgebungsvariable Exception in thread "main" java.lang.UnsatisfiedLinkError: no J3D in java.librar y.path Java Basics - Anfänger-Themen 15
M Klassen Exception in thread "main" java.lang.NoClassDefFoundError: Java Basics - Anfänger-Themen 2
D Exception in thread "main" Java Basics - Anfänger-Themen 8
A Exception in thread "main" Java Basics - Anfänger-Themen 7
S Exception in thread "main" Java Basics - Anfänger-Themen 3
B Exception in thread "main" java.lang.NullPointerException Fehler Hilfe! Java Basics - Anfänger-Themen 4
L Bubblesort: Exception in Thread "main" Java Basics - Anfänger-Themen 5
A Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 16
A GELÖST -- Exception in thread "main" Java Basics - Anfänger-Themen 3
B Fehlermeldung - Exception in thread "main" java.lang.Error: Unresolved compilation pr Java Basics - Anfänger-Themen 16
E Fehler: "Exception in thread "main" java.lang.NoSuchMethodError" Java Basics - Anfänger-Themen 15
G Fehler: Exception in thread main java.lang.noClassDefFound Java Basics - Anfänger-Themen 7
L Exception in thread "main" java.util.NoSuchElement Java Basics - Anfänger-Themen 4
A Do/While Problem (Exception in thread "main" java. Java Basics - Anfänger-Themen 4
M "exception in thread "main" java.lang.NullPoi Java Basics - Anfänger-Themen 2
S Exception in thread "main" java.lang.UnsupportedCl Java Basics - Anfänger-Themen 4
P Exception in thread "main" Java Basics - Anfänger-Themen 4
V Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 21
S Exception in thread "main" java.lang.NoSuchMethodE Java Basics - Anfänger-Themen 3
NightmareVirus Exception in thread "main" java.lang.NoSuchMethodE Java Basics - Anfänger-Themen 8
A "Exception in thread "main" java.lang.NoCLass Java Basics - Anfänger-Themen 10
N exception in thread main . Java Basics - Anfänger-Themen 3
C Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 9
vogella Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 4
R Exception in thread "main" java.lang.NoSuchMethodE Java Basics - Anfänger-Themen 6
C exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 7
A Fehlermeldung: Exception in thread "main" java.lan Java Basics - Anfänger-Themen 3
H Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 3
R Exception in Thread "main" . Kommandozeile/Netbean Java Basics - Anfänger-Themen 8
L Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 4
R Exception in thread "main" java.lang.NullPointerEx Java Basics - Anfänger-Themen 10
B Exception in thread "main"... Java Basics - Anfänger-Themen 3
L Exception in thread "main" java.lang.NoSuchMethodE Java Basics - Anfänger-Themen 3
K Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 8
J Exception in thread "main" java.langClassNoFoundEr Java Basics - Anfänger-Themen 2
H Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 5
B Fehler: Exception in Thread "main" java.lang.NoCla Java Basics - Anfänger-Themen 2
G Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 2
B Compiler-Fehler Fehlermeldung Exception in thread, falsche Eingabewert Java Basics - Anfänger-Themen 2
S Kriege Fehler "Exception in thread" beim Benutzen von SubStrings. Java Basics - Anfänger-Themen 2
B Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException Java Basics - Anfänger-Themen 8
S Java memory fehler: Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap spa Java Basics - Anfänger-Themen 5
V Threads Exception in Thread behandeln Java Basics - Anfänger-Themen 3
D Exception in thread "AWT-EventQueue-0" Java Basics - Anfänger-Themen 8
C Exception in thread "AWT-EventQueue-0 Java Basics - Anfänger-Themen 15
M Exception in thread "AWT-EventQueue-0" Java Basics - Anfänger-Themen 7
1 Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException Java Basics - Anfänger-Themen 5
A Exception aus Thread werfen Java Basics - Anfänger-Themen 14
J Datentypen Exception in thread "AWT-EventQueue-0"?? Java Basics - Anfänger-Themen 4
T Thread 2x starten verursacht Exception Java Basics - Anfänger-Themen 3
Y Exception in thread Java Basics - Anfänger-Themen 11
Spin Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: data must Java Basics - Anfänger-Themen 10
O java.lang.NoClassDefFoundError Exception in thread "mai Java Basics - Anfänger-Themen 5
S Exception in thread Java Basics - Anfänger-Themen 7
A Exception in thread "Thread-33" java.lang.NoClassD Java Basics - Anfänger-Themen 10
F Fehlermeldung: Exception in thread. Java Basics - Anfänger-Themen 17
G Exception in thread Java Basics - Anfänger-Themen 9
H exception in thread mainjava.lang.noclass ... Java Basics - Anfänger-Themen 3
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
W Null-Pointer Exception beim Programmstart Java Basics - Anfänger-Themen 8
Ostkreuz String Exception Java Basics - Anfänger-Themen 8
Fiedelbambu Exception in Application constructor Java Basics - Anfänger-Themen 3
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
U Warum kriege ich hier eine nullpointer exception, sehe den Fehler nicht (swing) Java Basics - Anfänger-Themen 1
N Exception beim Verwenden von Arraylist? Java Basics - Anfänger-Themen 10
S JavaKara Null Exception Error Java Basics - Anfänger-Themen 4
T Eigene Exception - ohne werfen abfangen Java Basics - Anfänger-Themen 2
LiFunk Exception: es dürfen nur Nummern eingelesen werden Java Basics - Anfänger-Themen 6
low_in_the_head Eigene Exception nutzen Java Basics - Anfänger-Themen 4
1 Exception Java Basics - Anfänger-Themen 2
I JAX-RS Exception Handling Java Basics - Anfänger-Themen 4
L Meine erste eigene Exception Klasse Java Basics - Anfänger-Themen 10
J null exception Array Java Basics - Anfänger-Themen 5
H Frage zu Throw Exception Java Basics - Anfänger-Themen 2
M Wie kann ich bei int-Variablen im exception handler auf bestimmte Strings reagieren? Java Basics - Anfänger-Themen 5
C Exception-Frage Java Basics - Anfänger-Themen 3
I Exception bei Button mit wait() und notifyAll() Java Basics - Anfänger-Themen 3
N Wie teste ich eine geworfene Exception? Java Basics - Anfänger-Themen 8
R Methoden ArrayList clonen wirft exception Java Basics - Anfänger-Themen 3
D Scanner- Exception NoSuchElementException Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben