|
8 | 8 |
|
9 | 9 | import java.io.Serializable;
|
10 | 10 | import java.util.ArrayList;
|
11 |
| -import java.util.Iterator; |
12 | 11 | import java.util.List;
|
13 | 12 | import java.util.Locale;
|
14 | 13 | import java.util.function.Consumer;
|
@@ -595,22 +594,22 @@ public void visitFetchables(Consumer<Fetchable> fetchableConsumer, EntityMapping
|
595 | 594 |
|
596 | 595 | @Override
|
597 | 596 | public SelectableMapping getSelectable(int columnIndex) {
|
598 |
| - return selectableMappings.getSelectable( columnIndex ); |
| 597 | + return getSelectableMappings().getSelectable( columnIndex ); |
599 | 598 | }
|
600 | 599 |
|
601 | 600 | @Override
|
602 | 601 | public int getJdbcTypeCount() {
|
603 |
| - return selectableMappings.getJdbcTypeCount(); |
| 602 | + return getSelectableMappings().getJdbcTypeCount(); |
604 | 603 | }
|
605 | 604 |
|
606 | 605 | @Override
|
607 | 606 | public List<JdbcMapping> getJdbcMappings() {
|
608 |
| - return selectableMappings.getJdbcMappings(); |
| 607 | + return getSelectableMappings().getJdbcMappings(); |
609 | 608 | }
|
610 | 609 |
|
611 | 610 | @Override
|
612 | 611 | public int forEachJdbcType(int offset, IndexedConsumer<JdbcMapping> action) {
|
613 |
| - return selectableMappings.forEachSelectable( |
| 612 | + return getSelectableMappings().forEachSelectable( |
614 | 613 | offset,
|
615 | 614 | (index, selectable) -> action.accept( index, selectable.getJdbcMapping() )
|
616 | 615 | );
|
@@ -690,12 +689,24 @@ public int forEachDisassembledJdbcValue(
|
690 | 689 |
|
691 | 690 | @Override
|
692 | 691 | public int forEachSelectable(SelectableConsumer consumer) {
|
693 |
| - return selectableMappings.forEachSelectable( 0, consumer ); |
| 692 | + return getSelectableMappings().forEachSelectable( 0, consumer ); |
694 | 693 | }
|
695 | 694 |
|
696 | 695 | @Override
|
697 | 696 | public int forEachSelectable(int offset, SelectableConsumer consumer) {
|
698 |
| - return selectableMappings.forEachSelectable( offset, consumer ); |
| 697 | + return getSelectableMappings().forEachSelectable( offset, consumer ); |
| 698 | + } |
| 699 | + |
| 700 | + private SelectableMappings getSelectableMappings() { |
| 701 | + if (selectableMappings == null) { |
| 702 | + // This is expected to happen when processing a |
| 703 | + // PostInitCallbackEntry because the callbacks |
| 704 | + // are not ordered. The exception is caught in |
| 705 | + // MappingModelCreationProcess.executePostInitCallbacks() |
| 706 | + // and the callback is re-queued. |
| 707 | + throw new IllegalStateException("not yet ready"); |
| 708 | + } |
| 709 | + return selectableMappings; |
699 | 710 | }
|
700 | 711 |
|
701 | 712 | @Override
|
|
0 commit comments