@@ -64,18 +64,22 @@ static ModelFile load(
64
64
String filename ,
65
65
Supplier <InputStream > contentSupplier
66
66
) {
67
- if (filename .endsWith (".json" )) {
68
- return loadParsedNode (traitFactory , Node .parse (contentSupplier .get (), filename ));
69
- } else if (filename .endsWith (".smithy" )) {
70
- String contents = IoUtils .toUtf8String (contentSupplier .get ());
71
- return new IdlModelParser (traitFactory , filename , contents ).parse ();
72
- } else if (filename .endsWith (".jar" )) {
73
- return loadJar (traitFactory , properties , filename );
74
- } else if (filename .equals (SourceLocation .NONE .getFilename ())) {
75
- // Assume it's JSON if there's a N/A filename.
76
- return loadParsedNode (traitFactory , Node .parse (contentSupplier .get (), filename ));
77
- } else {
78
- return null ;
67
+ try (InputStream inputStream = contentSupplier .get ()) {
68
+ if (filename .endsWith (".json" )) {
69
+ return loadParsedNode (traitFactory , Node .parse (inputStream , filename ));
70
+ } else if (filename .endsWith (".smithy" )) {
71
+ String contents = IoUtils .toUtf8String (inputStream );
72
+ return new IdlModelParser (traitFactory , filename , contents ).parse ();
73
+ } else if (filename .endsWith (".jar" )) {
74
+ return loadJar (traitFactory , properties , filename );
75
+ } else if (filename .equals (SourceLocation .NONE .getFilename ())) {
76
+ // Assume it's JSON if there's a N/A filename.
77
+ return loadParsedNode (traitFactory , Node .parse (inputStream , filename ));
78
+ } else {
79
+ return null ;
80
+ }
81
+ } catch (IOException e ) {
82
+ throw new ModelImportException ("Error loading " + filename + ": " + e .getMessage (), e );
79
83
}
80
84
}
81
85
0 commit comments