Skip to content

Commit e90e73f

Browse files
Fix NPE for idGetter
1 parent 2d8d1e9 commit e90e73f

File tree

4 files changed

+21
-8
lines changed

4 files changed

+21
-8
lines changed

spring-data-eclipse-store-demo/src/test/java/software/xdev/spring/data/eclipse/store/demo/complex/ComplexDemoApplicationTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ static void clearPreviousData()
3131
@Test
3232
void checkPossibilityToSimplyStartAndRestartApplication()
3333
{
34-
this.configuration.getStorageInstance().clearData();
3534
this.configuration.getStorageInstance().stop();
3635
ComplexDemoApplication.main(new String[]{});
3736
}

spring-data-eclipse-store-demo/src/test/java/software/xdev/spring/data/eclipse/store/demo/simple/SimpleDemoApplicationTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ static void clearPreviousData()
3333
@Test
3434
void checkPossibilityToSimplyStartAndRestartApplication()
3535
{
36-
this.configuration.getStorageInstance().clearData();
3736
this.configuration.getStorageInstance().stop();
3837
SimpleDemoApplication.main(new String[]{});
3938
}

spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/EclipseStoreStorage.java

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -165,10 +165,13 @@ private void initRoot()
165165
{
166166
if(this.root.getCurrentRootData().getEntityData(entityClass) == null)
167167
{
168-
this.root.getCurrentRootData().createNewEntityData(entityClass);
168+
this.createNewEntityData(entityClass, this.root);
169169
entityListMustGetStored = true;
170170
}
171-
this.setIdManagerForEntityData(entityClass, this.root);
171+
else
172+
{
173+
this.setIdManagerForEntityData(entityClass, this.root);
174+
}
172175
}
173176
if(entityListMustGetStored)
174177
{
@@ -184,6 +187,12 @@ private void initRoot()
184187
}
185188
}
186189

190+
private <T, ID> void createNewEntityData(final Class<T> entityClass, final VersionedRoot root)
191+
{
192+
final IdManager<T, ID> idManager = this.ensureIdManager(entityClass);
193+
root.getCurrentRootData().createNewEntityData(entityClass, idManager::getId);
194+
}
195+
187196
private <T, ID> void setIdManagerForEntityData(final Class<T> entityClass, final VersionedRoot root)
188197
{
189198
final IdManager<T, ID> idManager = this.ensureIdManager(entityClass);
@@ -420,10 +429,13 @@ public void setLastId(final Class<?> entityClass, final Object lastId)
420429
final EntityData<?, Object> entityData = this.root.getCurrentRootData().getEntityData(entityClass);
421430
if(entityData == null)
422431
{
423-
this.root.getCurrentRootData().createNewEntityData(entityClass);
424-
this.setIdManagerForEntityData(entityClass, this.root);
432+
this.createNewEntityData(entityClass, this.root);
425433
this.storageManager.store(this.root.getCurrentRootData().getEntityListsToStore());
426434
}
435+
else
436+
{
437+
this.setIdManagerForEntityData(entityClass, this.root);
438+
}
427439
this.root.getCurrentRootData().setLastId(entityClass, lastId);
428440
this.storageManager.store(this.root.getCurrentRootData().getObjectsToStoreAfterNewLastId(entityClass));
429441
}

spring-data-eclipse-store/src/main/java/software/xdev/spring/data/eclipse/store/repository/root/RootDataV2.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import java.util.HashMap;
1919
import java.util.Map;
20+
import java.util.function.Function;
2021

2122

2223
/**
@@ -57,9 +58,11 @@ public <T, ID> EntityData<T, ID> getEntityData(final String entityClassName)
5758
return (EntityData<T, ID>)this.entityLists.get(entityClassName);
5859
}
5960

60-
public <T, ID> void createNewEntityData(final Class<T> entityClass)
61+
public <T, ID> void createNewEntityData(final Class<T> entityClass, final Function<T, ID> idGetter)
6162
{
62-
this.entityLists.put(this.getEntityName(entityClass), new EntityData<>());
63+
final EntityData<T, ID> entityData = new EntityData<>();
64+
entityData.setIdGetter(idGetter);
65+
this.entityLists.put(this.getEntityName(entityClass), entityData);
6366
}
6467

6568
private <T> String getEntityName(final Class<T> classToRegister)

0 commit comments

Comments
 (0)