// Path: src/main/java/org/neo4j/index/impl/lucene/CommitContext.java
// static class DocumentContext
// {
//     final Document document;
//     final boolean exists;
//     final long entityId;
// 
//     DocumentContext( Document document, boolean exists, long entityId )
//     {
//         this.document = document;
//         this.exists = exists;
//         this.entityId = entityId;
//     }
// }


import org.neo4j.kernel.impl.transaction.xaframework.XaCommand;
import org.neo4j.kernel.impl.util.IoPrimitiveUtils;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.ReadableByteChannel;
import java.util.HashMap;
import java.util.Map;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.PropertyContainer;
import org.neo4j.graphdb.Relationship;
import org.neo4j.index.impl.lucene.CommitContext.DocumentContext;
import org.neo4j.kernel.impl.transaction.xaframework.LogBuffer;
            {
                entityType = dataSource != null ? dataSource.relationshipEntityType : null;
            }
            else
            {
                return null;
            }
            
            int indexNameLength = buffer.getInt();
            long entityId = buffer.getLong();
            int keyCharLength = buffer.getInt();
            byte valueType = buffer.get();

            String indexName = IoPrimitiveUtils.readString( channel, buffer, indexNameLength );
            if ( indexName == null )
            {
                return null;
            }
            
            String key = null;
            if ( keyCharLength != -1 )
            {
                key = IoPrimitiveUtils.readString( channel, buffer, keyCharLength );
                if ( key == null )
                {
                    return null;
                }
            }

            Object value = null;
// Path: src/main/java/org/neo4j/index/impl/lucene/CommitContext.java
// static class DocumentContext
// {
//     final Document document;
//     final boolean exists;
//     final long entityId;
// 
//     DocumentContext( Document document, boolean exists, long entityId )
//     {
//         this.document = document;
//         this.exists = exists;
//         this.entityId = entityId;
//     }
// }


// Path: src/main/java/org/neo4j/index/impl/lucene/LuceneCommand.java
import org.neo4j.kernel.impl.transaction.xaframework.XaCommand;
import org.neo4j.kernel.impl.util.IoPrimitiveUtils;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.ReadableByteChannel;
import java.util.HashMap;
import java.util.Map;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.PropertyContainer;
import org.neo4j.graphdb.Relationship;
import org.neo4j.index.impl.lucene.CommitContext.DocumentContext;
import org.neo4j.kernel.impl.transaction.xaframework.LogBuffer;

            {
                entityType = dataSource != null ? dataSource.relationshipEntityType : null;
            }
            else
            {
                return null;
            }
            
            int indexNameLength = buffer.getInt();
            long entityId = buffer.getLong();
            int keyCharLength = buffer.getInt();
            byte valueType = buffer.get();

            String indexName = IoPrimitiveUtils.readString( channel, buffer, indexNameLength );
            if ( indexName == null )
            {
                return null;
            }
            
            String key = null;
            if ( keyCharLength != -1 )
            {
                key = IoPrimitiveUtils.readString( channel, buffer, keyCharLength );
                if ( key == null )
                {
                    return null;
                }
            }

            Object value = null;
            if ( valueType >= VALUE_TYPE_INT && valueType <= VALUE_TYPE_DOUBLE )