Nullpointer trotz vorherigem Nullcheck

Gucky

Top Contributor
Hallo liebes Java-Forum,
ich schreibe zur Zeit ein Programm für eine Facharbeit, das eine Datei einlesen soll und die Häufigkeiten der verschiedenen Bytes zählen soll. Dazu habe ich eine Klasse LongContainer geschrieben, die Methoden zum speichern eines Bytes und zählen der Häufigkeit bereitstellt und eine Methode
Code:
getAnzahlZeichen()
, welche die Zeichen oder Bytes einließt und dementsprechend entweder den richtigen LongContainer inkrementiert oder einen neuen in ein Array mit 256 Feldern hinzufügt und diesen inkrementiert.
Das funktioniert auch bis zu einem bestimmten Punkt gut, bis ich plötzlich eine NullPointerException bekomme in einem Codeabschnitt, welcher schon mindestens zwei Male durchlaufen wurde. Und das kurioseste ist, dass ich direkt davor einen Nullcheck eingebaut habe, um gerade das zu verhindern.
Ich hoffe, dass mir jemand helfen kann.
Der NullPointer tritt in Zeile 15 der Methode
Code:
getAnzahlZeichen()
auf.

Hier meine Klasse LongContainer:
Java:
package SchrumpfHuffMan;

import SortierAlgs.Sortierable;

public class LongContainer {
	private long paramLong;
	private byte paramByte;
	
	public LongContainer(){
		this.paramLong = 1;
		this.paramByte = 1;
	}
	
	public void inkrement(){
		paramLong++;
	}
	
	public void setParamByte(byte paramByte){
		this.paramByte = paramByte;
	}
	
	public byte getParamByte(){
		return paramByte;
	}
	
	public long getParamLong(){
		return paramLong;
	}
}

und hier meine Methode
Code:
getAnzahlenZeichen()
+ die Hilfsmethode
Code:
toUnsingedInt()
:

Java:
private LongContainer[] getAnzahlZeichen(File quellDatei) throws IOException{
		FileInputStream fIS = new FileInputStream(quellDatei);
		byte[] bytes;
		long gesamtEingelesen = 0;
		LongContainer[] anzahlenZeichen = new LongContainer[MÖGLICHEBYTES];
		
		if (quellDatei.length() >= MAXANZAHLEINGELESENEBYTES){
			bytes = new byte[MAXANZAHLEINGELESENEBYTES];
			
			for (int i=1;(i*MAXANZAHLEINGELESENEBYTES)<=quellDatei.length();i++){
				fIS.read(bytes);
				gesamtEingelesen += MAXANZAHLEINGELESENEBYTES;
				for (int j=0;j<bytes.length;j++){
					if (anzahlenZeichen[j] != null){
						anzahlenZeichen[toUnsignedInt(bytes[j])].inkrement();
					} else {
						LongContainer tempLongContainer = new LongContainer();
						tempLongContainer.setParamByte(bytes[j]);
						tempLongContainer.inkrement();
						anzahlenZeichen[toUnsignedInt(bytes[j])] = tempLongContainer;
					}
				}
			}
		}
		
		if (gesamtEingelesen == quellDatei.length()){
			fIS.close();
			return beschneide(BubbleSort.sortier(anzahlenZeichen));
		} else {
			bytes = new byte[(int) (quellDatei.length() - gesamtEingelesen)];
			fIS.skip(gesamtEingelesen);
			fIS.read(bytes);
			for (int i=0;i<bytes.length;i++){
				if (anzahlenZeichen[i] != null){
					anzahlenZeichen[bytes[i]].inkrement();
				} else {
					LongContainer tempLongContainer = new LongContainer();
					tempLongContainer.setParamByte(bytes[i]);
					tempLongContainer.inkrement();
					anzahlenZeichen[bytes[i]] = tempLongContainer;
				}
			}
			fIS.close();
			return beschneide(BubbleSort.sortier(anzahlenZeichen));
		}
	}
	
	private int toUnsignedInt(byte paramByte){
		return paramByte & 0xff;
	}
 

Sen-Mithrarin

Gesperrter Benutzer
du prüfst ob anzahlenZeichen[j] != null ist
greifst dann aber auf anzahlenZeichen[toUnsignedInt(bytes[j])] zu
ergo : du musst sicherstellen das an dieser stelle j == toUnsignedInt(bytes[j]) ist
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Kann ich die Nullpointer Exception umgehen Allgemeine Java-Themen 12
D Nullpointer Exception Problem Allgemeine Java-Themen 5
Kirby.exe Nullpointer Exception bei Queue Allgemeine Java-Themen 5
N Compiler-Fehler Warum erhalte ich einen Nullpointer Fehler? Allgemeine Java-Themen 2
M javafx ComboBox- Nullpointer Exception Allgemeine Java-Themen 6
T Nullpointer. :( Allgemeine Java-Themen 31
0 Animiertes Gif anzeigen - NullPointer Exception Allgemeine Java-Themen 19
L Nullpointer Exceptions werden nicht angezeigt Allgemeine Java-Themen 5
W Threads NullPointer: Konstruktor "zu langsam"? Allgemeine Java-Themen 3
I NullPointer während while(){} Allgemeine Java-Themen 4
V Array aus Instanzen, NullPointer Allgemeine Java-Themen 4
E YQL Api Test - NullPointer Allgemeine Java-Themen 9
A Compiler-Fehler Woher kommt der NullPointer? (Collections & Iterator) Allgemeine Java-Themen 7
D Nullpointer abfangen Allgemeine Java-Themen 7
B Nullpointer Exception in Array Allgemeine Java-Themen 15
H NullPointer finde den grund nicht Allgemeine Java-Themen 9
Z NullPointer in einem VO Allgemeine Java-Themen 14
M Nullpointer Exeption bei String Array Allgemeine Java-Themen 9
A NullPointer bei System.getProperty("file.seperator") Allgemeine Java-Themen 4
A NullPointer bei konvertierung von byteArr --> Object Allgemeine Java-Themen 3
medic NullPointer verwirrt mich total. Allgemeine Java-Themen 3
G NullPointer. in einer Datenstruktur Allgemeine Java-Themen 2
H Nullpointer exception, Attribute in Label schreiben? Allgemeine Java-Themen 4
G Nullpointer Exception nach KeyPressed Allgemeine Java-Themen 6
G NullPointer ? wieso? Allgemeine Java-Themen 7
J Erste Schritte Java 8 Tutorials trotz Java 13 Allgemeine Java-Themen 22
T Input/Output Konsole gibt trotz printf keine Umlaute aus Allgemeine Java-Themen 17
V Applet trotz Ausnahme blockiert Allgemeine Java-Themen 0
R Gleiche Objektreferenz trotz clone()? Allgemeine Java-Themen 12
D JSF Primefaces Chatproblem trotz 3.4 Allgemeine Java-Themen 13
S Erste Schritte Exception beendet Schleife nicht - Methode macht trotz throw weiter? Allgemeine Java-Themen 9
T SecurityException trotz signierten JAR? Allgemeine Java-Themen 11
I HashMap key wird nicht erkannt trotz überschriebener equals/hashCode Methode Allgemeine Java-Themen 6
C Schleife mit leerem Anweisungsblock wird trotz erfüllter Bedingung nicht verlassen Allgemeine Java-Themen 9
B Input/Output Datei noch geöffnet trotz Close Allgemeine Java-Themen 4
M Webstart Exception trotz signierten JARs Allgemeine Java-Themen 3
U DLLs werden nicht gefunden trotz Pfad: Allgemeine Java-Themen 4
R java in der konsole nicht gefunden trotz jre,jdk,home und path Allgemeine Java-Themen 4
D Java Heap error trotz anpassungen mit -xmx Allgemeine Java-Themen 4
S Fenster "verschwindet" nicht, trotz setVisible(false); Allgemeine Java-Themen 22
M Radianwert wiederholt sich trotz unterschiedlicher zufälliger Koordinaten Allgemeine Java-Themen 6
P not enough space for object heap - Trotz mehr RAM? Allgemeine Java-Themen 6
J Wie die gleichzeitige Ausführung mehrerer Tasks trotz Multithreading verhindern? Allgemeine Java-Themen 2
B Trotz fat_jar NoClassDefFounError Allgemeine Java-Themen 4
H2SO3- Date "18.11.2002 20:02:33" trotz Locale.GERMAN nic Allgemeine Java-Themen 9
T Security-Exception trotz gegebener Rechte? Allgemeine Java-Themen 3
Saxony Blocked GUI trotz Thread(s) Allgemeine Java-Themen 2
G Leere Datei mit PrintWriter trotz flush und close Allgemeine Java-Themen 8
X Softwareverkauf trotz Lizens Allgemeine Java-Themen 5
G Trotz Generics Cast-Fehler! Allgemeine Java-Themen 5
R ConcurrentModificationException trotz synchronized? Allgemeine Java-Themen 12
H NullPointerException trotz Abfangen von null? Allgemeine Java-Themen 9
P Trotz setModal, der JDialog ist nicht modal ? Allgemeine Java-Themen 18
A Kein finally ausführen trotz verlassen des try blocks? Allgemeine Java-Themen 14
G JFileChooser öffnet sich nicht im Browser ( trotz Signatur ) Allgemeine Java-Themen 10
R Bild wird trotz allem einfach nicht angezeigt. - AHHHHH!!!!! Allgemeine Java-Themen 30
M Bild wird trotz MediaTracker nicht oder nur halb gezeichnet Allgemeine Java-Themen 2

Ähnliche Java Themen


Oben