* @throws HeapException
*/
private void split(final NonTerminalPage nonTerminalPage)
throws HeapException {
if (!tryBalance(nonTerminalPage)) {
final INonTerminalPage newNonTerminalPage = nonTerminalPage.split();
final DataRecordIdentifier middleKey = nonTerminalPage
.getAndClearMiddleKey();
// ASSERTX
assert middleKey != null;
btreePlusElementMgr.appendPageRecordable(newNonTerminalPage);
newNonTerminalPage.setValueIsChangedValueToSave();
final NonTerminalPage parent = (NonTerminalPage) nonTerminalPage
.getParentPage();
if (parent == null) {
btreePlusElementMgr.newRootNonTerminalPage(nonTerminalPage,
middleKey, newNonTerminalPage);