private void readMixedObjectSetObjects() throws IOException, NoSuchVersionException {

		System.out.println("==== Block mit aktuellen und zukünftigen Objekten ====");

		final long startingPosition;

		startingPosition = (_configFileHeaderInfo.getStartMixedSet() + _configFileHeaderInfo.getHeaderEnd());


		// Datei öffnen
		final RandomAccessFile file = new RandomAccessFile(_configAreaFile, "r");

		try {

			// Datei auf den Anfang der Mischmenge postieren
			file.seek(startingPosition);

			// Wie gross ist die Datei
			final long fileSize = file.length();

			// Wird true, wenn das Objekt, das den Konfigurationsbereich wiederspiegelt, gefunden wurde
			while(file.getFilePointer() < fileSize) {

				// speichert die Dateiposition des Objekts. Diese Position wird später
				// am Objekt gespeichert
				final long pos = file.getFilePointer();

				// Länge des Blocks einlesen
				final int sizeOfObject = file.readInt();

				// Id des Objekts einlesen
				final long objectId = file.readLong();

				if(objectId > 0) {
					// Es ist ein Objekt und keine Lücke

					_positionsPerId.add(objectId, pos);

					final int pidHashCode = file.readInt();

					final long typeId = file.readLong();

					// 0 = Konfobjekt, 1 = dyn Objekt
					final byte objectType = file.readByte();

					// Das kann entweder ein Zeitpunkt oder eine Version sein
					final long firstInvalid;
					final long firstValid;

					if(objectType == 0) {
						firstInvalid = file.readShort();
						firstValid = file.readShort();
					}
					else {
						firstInvalid = file.readLong();
						firstValid = file.readLong();
					}

					System.out.println("Position:            " + pos);
					System.out.println("Länge:               " + sizeOfObject);
					System.out.println("Id:                  " + objectId);
					System.out.println("PidHashCode:         " + pidHashCode);
					System.out.println("Objekttyp-Id:        " + typeId);
					System.out.println(
							"Objekttyp:           " + (objectType == 0
									? "Konfigurationsobjekt"
									: objectType == 1 ? "Dynamisches Objekt" : "Unbekannter Objekttyp: " + objectType)
					);
					System.out.println("Gültige Version:     " + firstValid);
					System.out.println("Ungültige Version:   " + firstInvalid);
					readObjectFromFile(
							sizeOfObject, objectType, file
					);
					System.out.println();
				}
				else {
					System.out.println("Gelöschtes Objekt:   " + sizeOfObject + " bytes");
					if(!SHOW_GAP_INFO) {
						// Eine Lücke, der filePointer muss verschoben werden.
						// Die Länge bezieht sich auf das gesamte Objekt, ohne die Länge selber.
						// Also ist die nächste Länge bei "aktuelle Position + Länge - 8.
						// - 8, weil die Id bereits gelesen wurde und das ist ein Long.
						file.seek(file.getFilePointer() + sizeOfObject - 8);
					}
					else {
						final int pidHashCode = file.readInt();

						final long typeId = file.readLong();

						// 0 = Konfobjekt, 1 = dyn Objekt
						final byte objectType = file.readByte();

						// Das kann entweder ein Zeitpunkt oder eine Version sein
						final long firstInvalid;
						final long firstValid;

						if(objectType == 0) {
							firstInvalid = file.readShort();
							firstValid = file.readShort();
						}
						else {
							firstInvalid = file.readLong();
							firstValid = file.readLong();
						}
						System.out.println("PidHashCode:         " + pidHashCode);
						System.out.println("Objekttyp-Id:        " + typeId);
						System.out.println(
								"Objekttyp:           " + (objectType == 0
										? "Konfigurationsobjekt"
										: objectType == 1 ? "Dynamisches Objekt" : "Unbekannter Objekttyp: " + objectType)
						);
						System.out.println("Gültige Version:     " + firstValid);
						System.out.println("Ungültige Version:   " + firstInvalid);
						readObjectFromFile(
								sizeOfObject, objectType, file
						);
					}
					System.out.println();
				}
			}// while
		}
		finally {
			file.close();
		}
	}