@Test
    public void splitAndJoinBuffersWithZeroEbcKeys() throws Exception {
        b1.init(Buffer.PAGE_TYPE_DATA);
        b2.init(Buffer.PAGE_TYPE_DATA);
        setUpValue(true, b1.getBufferSize() / 100);

        int a;
        for (a = 1;; a++) {
            setUpShallowKey(a);
            if (b1.putValue(ex.getKey(), vw) == -1) {
                break;
            }
        }
        setUpShallowKey(a / 2);
        ex.getKey().getEncodedBytes()[6] = 0x7F;
        ex.getKey().setEncodedSize(7);
        int foundAt = b1.findKey(ex.getKey());
        int splitAt = b1.split(b2, ex.getKey(), vw, foundAt, ex.getAuxiliaryKey1(), Exchange.Sequence.NONE,
                SplitPolicy.EVEN_BIAS);

        assertTrue("Split failed", splitAt != -1);
        assertTrue("Verify failed", b1.verify(null, null) == null);
        assertTrue("Verify failed", b2.verify(null, null) == null);
        
        for (int b = 1; b < a; b++) {
            setUpShallowKey(b);
            if (b <= a / 2) {
                b1.fetch(b1.findKey(ex.getKey()), ex.getValue());
            } else {
                b2.fetch(b2.findKey(ex.getKey()), ex.getValue());
            }
            assertTrue("Value should be defined", ex.getValue().isDefined());
        }
        
        setUpShallowKey(a / 2);
        ex.getKey().getEncodedBytes()[6] = 0x7F;
        ex.getKey().setEncodedSize(7);
        int foundAt1 = b1.findKey(ex.getKey());
        int foundAt2 = b2.findKey(ex.getKey());
        assertTrue("Should have found exact match", (foundAt2 & EXACT_MASK) > 0);
        foundAt2 = b2.nextKeyBlock(foundAt2);
        boolean rebalanced = b1.join(b2, foundAt1, foundAt2, ex.getKey(), ex.getAuxiliaryKey1(), JoinPolicy.EVEN_BIAS);
        assertTrue("Should have joined pages", !rebalanced);
        assertTrue("Verify failed", b1.verify(null, null) == null);
        assertTrue("Verify failed", b2.verify(null, null) == null);
    }