Skip to content

Commit 86c1ce0

Browse files
committed
Fix race condition in type setup
1 parent 34e9a03 commit 86c1ce0

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

core/esmf-aspect-meta-model-java/src/main/java/org/eclipse/esmf/aspectmodel/loader/AspectModelLoader.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
import org.eclipse.esmf.aspectmodel.resolver.modelfile.DefaultAspectModelFile;
5252
import org.eclipse.esmf.aspectmodel.resolver.modelfile.MetaModelFile;
5353
import org.eclipse.esmf.aspectmodel.resolver.modelfile.RawAspectModelFile;
54+
import org.eclipse.esmf.aspectmodel.resolver.services.TurtleLoader;
5455
import org.eclipse.esmf.aspectmodel.urn.AspectModelUrn;
5556
import org.eclipse.esmf.aspectmodel.urn.ElementType;
5657
import org.eclipse.esmf.aspectmodel.urn.UrnSyntaxException;
@@ -113,6 +114,7 @@ public AspectModelLoader( final ResolutionStrategy resolutionStrategy ) {
113114
* @param resolutionStrategies the strategies
114115
*/
115116
public AspectModelLoader( final List<ResolutionStrategy> resolutionStrategies ) {
117+
TurtleLoader.init();
116118
if ( resolutionStrategies.size() == 1 ) {
117119
resolutionStrategy = resolutionStrategies.get( 0 );
118120
} else if ( resolutionStrategies.isEmpty() ) {

core/esmf-aspect-meta-model-java/src/main/java/org/eclipse/esmf/aspectmodel/resolver/services/TurtleLoader.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import java.nio.charset.StandardCharsets;
2222
import java.util.Objects;
2323
import java.util.stream.Collectors;
24+
2425
import javax.annotation.Nullable;
2526

2627
import org.eclipse.esmf.aspectmodel.resolver.exceptions.ParserException;
@@ -45,6 +46,11 @@ public final class TurtleLoader {
4546
private TurtleLoader() {
4647
}
4748

49+
public static void init() {
50+
SammXsdType.setupTypeMapping();
51+
registerTurtle();
52+
}
53+
4854
/**
4955
* Loads a Turtle model from an input stream
5056
*
@@ -85,8 +91,7 @@ public static Try<Model> loadTurtle( final URL url ) {
8591
*/
8692
public static Try<Model> loadTurtle( @Nullable final String modelContent ) {
8793
Objects.requireNonNull( modelContent, "Model content must not be null." );
88-
SammXsdType.setupTypeMapping();
89-
registerTurtle();
94+
init();
9095
try ( final InputStream turtleInputStream = new ByteArrayInputStream( modelContent.getBytes( StandardCharsets.UTF_8 ) ) ) {
9196
final Model streamModel = RDFParser.create()
9297
// Make sure to NOT use FactoryRDFCaching because it will return the same objects for nodes appearing

0 commit comments

Comments
 (0)