Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parse NeTEx Resource frame without organisation #5336

Conversation

vpaturet
Copy link
Contributor

Summary

In the Nordic NeTEx Profile, organisations are optional elements in the ResourceFrame.
Currently the graph builder fails with a NullPointerException if a ResourceFrame does not contain any organisations:

An uncaught error occurred inside OTP: java.lang.NullPointerException: Cannot invoke "org.rutebanken.netex.model.OrganisationsInFrame_RelStructure.getOrganisation_()" because "elements" is null
java.lang.RuntimeException: java.lang.NullPointerException: Cannot invoke "org.rutebanken.netex.model.OrganisationsInFrame_RelStructure.getOrganisation_()" because "elements" is null
	at org.opentripplanner.netex.NetexModule.buildGraph(NetexModule.java:107)
	at org.opentripplanner.graph_builder.GraphBuilder.run(GraphBuilder.java:175)
	at org.opentripplanner.standalone.OTPMain.startOTPServer(OTPMain.java:141)
	at org.opentripplanner.standalone.OTPMain.main(OTPMain.java:55)
Caused by: java.lang.NullPointerException: Cannot invoke "org.rutebanken.netex.model.OrganisationsInFrame_RelStructure.getOrganisation_()" because "elements" is null
	at org.opentripplanner.netex.loader.parser.ResourceFrameParser.parseOrganization(ResourceFrameParser.java:60)
	at org.opentripplanner.netex.loader.parser.ResourceFrameParser.parse(ResourceFrameParser.java:27)
	at org.opentripplanner.netex.loader.parser.ResourceFrameParser.parse(ResourceFrameParser.java:17)
	at org.opentripplanner.netex.loader.parser.NetexDocumentParser.parse(NetexDocumentParser.java:107)
	at org.opentripplanner.netex.loader.parser.NetexDocumentParser.parseCommonFrame(NetexDocumentParser.java:69)
	at org.opentripplanner.netex.loader.parser.NetexDocumentParser.parseFrameList(NetexDocumentParser.java:63)
	at org.opentripplanner.netex.loader.parser.NetexDocumentParser.parse(NetexDocumentParser.java:58)
	at org.opentripplanner.netex.loader.parser.NetexDocumentParser.parseAndPopulateIndex(NetexDocumentParser.java:49)
	at org.opentripplanner.netex.NetexBundle.loadSingeFileEntry(NetexBundle.java:182)
	at org.opentripplanner.netex.NetexBundle.loadFilesThenMapToOtpTransitModel(NetexBundle.java:166)
	at org.opentripplanner.netex.NetexBundle.loadFileEntries(NetexBundle.java:121)
	at org.opentripplanner.netex.NetexBundle.loadBundle(NetexBundle.java:100)
	at org.opentripplanner.netex.NetexModule.buildGraph(NetexModule.java:66)

This PR ensures that the graph builder can parse a ResourceFrame without organisation.

Issue

No

Unit tests

Added unit test

Documentation

No

@codecov
Copy link

codecov bot commented Aug 30, 2023

Codecov Report

Patch coverage: 87.50% and project coverage change: -0.01% ⚠️

Comparison is base (36edab0) 66.38% compared to head (f26866e) 66.38%.

Additional details and impacted files
@@              Coverage Diff              @@
##             dev-2.x    #5336      +/-   ##
=============================================
- Coverage      66.38%   66.38%   -0.01%     
- Complexity     15176    15178       +2     
=============================================
  Files           1785     1785              
  Lines          69163    69164       +1     
  Branches        7334     7335       +1     
=============================================
  Hits           45914    45914              
- Misses         20767    20768       +1     
  Partials        2482     2482              
Files Changed Coverage Δ
...anner/netex/loader/parser/ResourceFrameParser.java 77.55% <87.50%> (+0.46%) ⬆️

... and 3 files with indirect coverage changes

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@vpaturet vpaturet force-pushed the parse_netex_resource_frame_without_organisation branch from 3321053 to f26866e Compare August 30, 2023 12:45
@vpaturet vpaturet marked this pull request as ready for review August 30, 2023 12:46
@vpaturet vpaturet requested a review from a team as a code owner August 30, 2023 12:46
@vpaturet vpaturet added the Entur Test This is currently being tested at Entur label Aug 30, 2023
@vpaturet vpaturet merged commit 809caba into opentripplanner:dev-2.x Aug 30, 2023
@leonardehrenfried leonardehrenfried added this to the 2.4 (next release) milestone Aug 31, 2023
@vpaturet vpaturet deleted the parse_netex_resource_frame_without_organisation branch August 31, 2023 14:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Entur Test This is currently being tested at Entur Skip Changelog
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants