diff --git a/src/org/zoodb/internal/DataDeSerializerNoClass.java b/src/org/zoodb/internal/DataDeSerializerNoClass.java index d0e8933d..4255d90f 100644 --- a/src/org/zoodb/internal/DataDeSerializerNoClass.java +++ b/src/org/zoodb/internal/DataDeSerializerNoClass.java @@ -65,7 +65,6 @@ private int readHeader(ZooClassDef clsDef, boolean allowSchemaMismatch) { //read class info: clsOid = in.getHeaderClassOID(); if (!allowSchemaMismatch && clsOid != clsDef.getOid()) { - System.err.println(); throw new UnsupportedOperationException("Schema evolution not yet supported: " + clsDef.getClassName() + ": " + Util.oidToString(clsDef.getOid()) + " to " + Util.oidToString(clsOid)); @@ -79,6 +78,13 @@ private int readHeader(ZooClassDef clsDef, boolean allowSchemaMismatch) { //instantiated object, only pages or possibly byte arrays. } + public static long getClassOid(StorageChannelInput in) { + //skip OID + in.readLong(); + //read class info: + return in.getHeaderClassOID(); + } + public long getClassOid() { //readHeader(clsDef) //Read OID diff --git a/src/org/zoodb/internal/SerialInput.java b/src/org/zoodb/internal/SerialInput.java index 84804ed2..9b8d1b22 100644 --- a/src/org/zoodb/internal/SerialInput.java +++ b/src/org/zoodb/internal/SerialInput.java @@ -57,14 +57,6 @@ public interface SerialInput { public void skipRead(int nBytes); -// /** -// * Assumes autopaging=true. -// * @param pos -// */ -// public void seekPosAP(DATA_TYPE type, long pos); -// -// public void seekPage(DATA_TYPE type, int page, int offs); - public long getHeaderClassOID(); public long getHeaderTimestamp(); diff --git a/src/org/zoodb/internal/ZooClassDef.java b/src/org/zoodb/internal/ZooClassDef.java index 622f4372..e9e41e82 100644 --- a/src/org/zoodb/internal/ZooClassDef.java +++ b/src/org/zoodb/internal/ZooClassDef.java @@ -545,7 +545,7 @@ public void associateSuperDef(ZooClassDef superDef) { } public void associateFields() { - ArrayList allFields = new ArrayList(); + ArrayList allFields = new ArrayList<>(); //For PersistenceCapableImpl _super may be null: ZooClassDef sup = superDef; @@ -582,7 +582,7 @@ public ZooFieldDef getField(String attrName) { public Map getAllFieldsAsMap() { if (fieldBuffer == null) { - fieldBuffer = new HashMap(); + fieldBuffer = new HashMap<>(); for (ZooFieldDef def: getAllFields()) { fieldBuffer.put(def.getName(), def); } diff --git a/src/org/zoodb/internal/ZooFieldDef.java b/src/org/zoodb/internal/ZooFieldDef.java index 1499a1cb..647a4b1a 100644 --- a/src/org/zoodb/internal/ZooFieldDef.java +++ b/src/org/zoodb/internal/ZooFieldDef.java @@ -33,9 +33,11 @@ public class ZooFieldDef { - public static final int OFS_INIITIAL = 8; //OID + public static final int BYTES_OF_OID = 8; //length of OID + public static final int BYTES_OF_SCHEMA_OID = 8; //lengths of Schema-OID + public static final int OFS_INIITIAL = BYTES_OF_OID + BYTES_OF_SCHEMA_OID; //OID + Schema-OID - public static enum JdoType { + public enum JdoType { PRIMITIVE(-1, true), //Numbers are like SCOs. They cannot be indexable, because they can be 'null'! //Furthermore, if the type is Number, then it could be everything from boolean to double. diff --git a/src/org/zoodb/internal/server/DiskAccessOneFile.java b/src/org/zoodb/internal/server/DiskAccessOneFile.java index d732d7e0..f83500e5 100644 --- a/src/org/zoodb/internal/server/DiskAccessOneFile.java +++ b/src/org/zoodb/internal/server/DiskAccessOneFile.java @@ -663,9 +663,8 @@ public long getObjectClass(long oid) { } try { - //TODO use ObjectReader!?!?! fileInAP.seekPage(PAGE_TYPE.DATA, oie.getPage(), oie.getOffs()); - return new DataDeSerializerNoClass(fileInAP).getClassOid(); + return DataDeSerializerNoClass.getClassOid(fileInAP); } catch (Exception e) { throw DBLogger.newObjectNotFoundException( "ERROR reading object: " + Util.oidToString(oid)); diff --git a/src/org/zoodb/internal/server/StorageChannel.java b/src/org/zoodb/internal/server/StorageChannel.java index 958aff24..326dd364 100644 --- a/src/org/zoodb/internal/server/StorageChannel.java +++ b/src/org/zoodb/internal/server/StorageChannel.java @@ -36,8 +36,6 @@ public interface StorageChannel { void close(); - void flush(); - void write(ByteBuffer buf, long currentPage); void readPage(ByteBuffer buf, long pageId); diff --git a/src/org/zoodb/jdo/impl/QueryImpl.java b/src/org/zoodb/jdo/impl/QueryImpl.java index 8db0cfe3..6b988305 100644 --- a/src/org/zoodb/jdo/impl/QueryImpl.java +++ b/src/org/zoodb/jdo/impl/QueryImpl.java @@ -517,7 +517,7 @@ private void applyQueryOnExtent(List ret, QueryAdvice qa) { } } } else { - DBLogger.LOGGER.warn("query.execute() uses extent without index"); + DBLogger.LOGGER.warn("query.execute() found no index to use"); if (DBStatistics.isEnabled()) { pm.getSession().statsInc(STATS.QU_EXECUTED_WITHOUT_INDEX); if (!ordering.isEmpty()) {