-
Notifications
You must be signed in to change notification settings - Fork 34
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Add BinaryHandler for SimpleDateFormat
This could be useful for user.
Sample code:
package test.microstream.various.text;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.nio.file.Path;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import org.eclipse.store.storage.embedded.types.EmbeddedStorage;
import org.eclipse.store.storage.embedded.types.EmbeddedStorageManager;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
public class SimpleDateFormatTest
{
@TempDir
Path tempDir;
@Test
void simpleDateFormatAsFieldInDataClass()
{
SimpleDateFormat fmt = new SimpleDateFormat("HH:mm:ss", Locale.ENGLISH);
Date sample = new Date(1610000000000L);
SdfData root = new SdfData(fmt);
try (EmbeddedStorageManager storageManager = EmbeddedStorage.start(root, tempDir)) {
storageManager.storeRoot();
}
SdfData loadedRoot = new SdfData();
try (EmbeddedStorageManager storageManager = EmbeddedStorage.start(loadedRoot, tempDir)) {
assertEquals(fmt.format(sample), loadedRoot.getFormat().format(sample));
}
}
private static class SdfData
{
private SimpleDateFormat format;
public SdfData(SimpleDateFormat format)
{
this.format = format;
}
public SdfData()
{
}
public SimpleDateFormat getFormat()
{
return format;
}
public void setFormat(SimpleDateFormat format)
{
this.format = format;
}
}
}ends with:
java.lang.NullPointerException: Cannot invoke "sun.util.calendar.BaseCalendar$Date.hit(long)" because "gdate" is null
at java.base/sun.util.calendar.BaseCalendar.getCalendarDateFromFixedDate(BaseCalendar.java:432)
at java.base/java.util.GregorianCalendar.computeFields(GregorianCalendar.java:2378)
at java.base/java.util.GregorianCalendar.computeFields(GregorianCalendar.java:2293)
at java.base/java.util.Calendar.setTimeInMillis(Calendar.java:1832)
at java.base/java.util.Calendar.setTime(Calendar.java:1798)
at java.base/java.text.SimpleDateFormat.format(SimpleDateFormat.java:988)
at java.base/java.text.SimpleDateFormat.format(SimpleDateFormat.java:981)
at java.base/java.text.DateFormat.format(DateFormat.java:402)
at test.microstream.various.text.SimpleDateFormatTest.simpleDateFormatAsFieldInDataClass(SimpleDateFormatTest.java:34)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request