mirror of
https://github.com/OpenHFT/Chronicle-Map.git
synced 2021-09-13 01:26:12 +00:00
Inner classes couldn't extend marshallers because cannot be Serializable
This commit is contained in:
+5
-4
@@ -63,10 +63,11 @@ public abstract class InstanceCreatingMarshaller<T> implements Serializable {
|
||||
tClass + " by default, delegates to \n" +
|
||||
this.getClass().getName() + " which assumes the type has a public no-arg\n" +
|
||||
"constructor. If this is not true, you should either extend the marshaller,\n" +
|
||||
"overriding createInstance() and copy() (if defined), or write and\n" +
|
||||
"configure your own marshaller for " + tClass + " type from scratch, and\n" +
|
||||
"configure for the Chronicle Map via keyMarshaller[s]() or\n" +
|
||||
"valueMarshaller[s]() methods", e);
|
||||
"overriding createInstance() and copy() (if defined), and the extending\n" +
|
||||
"class shouldn't be inner, because such classes couldn't be Serializable\n" +
|
||||
"that is a requirement for marshaller classes, or write and configure your\n" +
|
||||
"own marshaller for " + tClass + " type from scratch, and configure for the\n" +
|
||||
"Chronicle Map via keyMarshaller[s]() or valueMarshaller[s]() methods", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2638,16 +2638,10 @@ public class CHMUseCasesTest {
|
||||
|
||||
@Test
|
||||
public void testBytesMarshallable2() throws IOException {
|
||||
BytesMarshallableReader<Data> dataReader = new BytesMarshallableReader<Data>(Data.class) {
|
||||
@Override
|
||||
protected Data createInstance() {
|
||||
return new Data();
|
||||
}
|
||||
};
|
||||
ChronicleMapBuilder<Data, Data> builder = ChronicleMapBuilder
|
||||
.of(Data.class, Data.class)
|
||||
.keyReaderAndDataAccess(dataReader, new DataDataAccess())
|
||||
.valueReaderAndDataAccess(dataReader, new DataDataAccess())
|
||||
.keyReaderAndDataAccess(new DataReader(), new DataDataAccess())
|
||||
.valueReaderAndDataAccess(new DataReader(), new DataDataAccess())
|
||||
.actualChunkSize(64)
|
||||
.entries(1000);
|
||||
try (ChronicleMap<Data, Data> map = newInstance(builder)) {
|
||||
@@ -2680,6 +2674,17 @@ public class CHMUseCasesTest {
|
||||
return new DataDataAccess();
|
||||
}
|
||||
}
|
||||
|
||||
private static class DataReader extends BytesMarshallableReader<Data> {
|
||||
public DataReader() {
|
||||
super(Data.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Data createInstance() {
|
||||
return new Data();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
interface IData extends BytesMarshallable {
|
||||
|
||||
@@ -89,13 +89,8 @@ public class ConstantSizeBySampleTest {
|
||||
public void testUnexpectedlyLongConstantExternalizableValues() throws IOException {
|
||||
try ( ChronicleMap<Long, ExternalizableData> map =
|
||||
ChronicleMapBuilder.of(Long.class, ExternalizableData.class)
|
||||
.valueReaderAndDataAccess(new ExternalizableReader<ExternalizableData>(
|
||||
ExternalizableData.class) {
|
||||
@Override
|
||||
protected ExternalizableData createInstance() {
|
||||
return new ExternalizableData();
|
||||
}
|
||||
}, new ExternalizableDataDataAccess())
|
||||
.valueReaderAndDataAccess(new ExternalizableDataReader(),
|
||||
new ExternalizableDataDataAccess())
|
||||
.constantValueSizeBySample(new ExternalizableData())
|
||||
.entries(100)
|
||||
.actualSegments(1)
|
||||
@@ -134,7 +129,7 @@ public class ConstantSizeBySampleTest {
|
||||
}
|
||||
|
||||
private static class ExternalizableDataDataAccess
|
||||
extends ExternalizableDataAccess<ExternalizableData> {
|
||||
extends ExternalizableDataAccess<ExternalizableData> implements Serializable {
|
||||
public ExternalizableDataDataAccess() {
|
||||
super(ExternalizableData.class);
|
||||
}
|
||||
@@ -149,4 +144,15 @@ public class ConstantSizeBySampleTest {
|
||||
return new ExternalizableDataDataAccess();
|
||||
}
|
||||
}
|
||||
|
||||
private static class ExternalizableDataReader extends ExternalizableReader<ExternalizableData> {
|
||||
public ExternalizableDataReader() {
|
||||
super(ExternalizableData.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ExternalizableData createInstance() {
|
||||
return new ExternalizableData();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user