private void redoTransactions(Integer[] taIds) {

		BufferedReader reader = null;

		try
		{
			reader = new BufferedReader(new FileReader("TransactionLog"));
			String line = reader.readLine();
			String[] values;

			while (line != null)
			{
				values = line.split("\\|");

				// Go through all Log entries
				if (values.length != 3)
				{
					for (int currentTaId : taIds)
					{
						// find those that are write operations belonging to the
						// winner transactions
						if (currentTaId == Integer.parseInt(values[1].split("\\:")[1]))
						{
							// compare lsn of the write operation to lsn of the
							// page
							if (!compareLSNToPageLSN(Integer.parseInt(values[0].split("\\:")[1]), Integer.parseInt(values[3].split("\\:")[1])))
							{
								// the operation has to be redone
								redoWrite(values);
							}
						}
					}
				}

				line = reader.readLine();
			}

		} catch (Exception e)
		{
			e.printStackTrace();
		} finally
		{
			try
			{
				if (reader != null)
				{
					reader.close();
				}
			} catch (Exception ex)
			{
				ex.printStackTrace();
			}
		}
	}