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

core: hotfix for sqlite transport swallowing exception when failing t… #2796

Merged
merged 2 commits into from
Jul 27, 2023

Conversation

JR-Morgan
Copy link
Member

@JR-Morgan JR-Morgan commented Jul 21, 2023

This PR contains a small subset of the changes already merged in dev for 2.16 regarding transport exception handling - #2700

The problem with the SQLite transport, is if it fails to initialize a connection to the DB, it "calls" OnErrorAction. However, there is no way for OnErrorAction to be assigned, since this is performed in the constructor.

So in effect, this is a silent swallow of any exceptions that occur when initializing a connection to the DB.

This leaves the transport in an invalid state such that calls to its members will fail with no-descript error messages.

This PR replaces the false call to OnErrorAction with a throw - as per the changes already made in dev. This way callers are aware of their failed sqlite connection

@JR-Morgan JR-Morgan added core issues related to the .net sdk. hotfix labels Jul 21, 2023
@JR-Morgan JR-Morgan added this to the 2.15 milestone Jul 21, 2023
@JR-Morgan JR-Morgan marked this pull request as ready for review July 21, 2023 17:01
@JR-Morgan
Copy link
Member Author

JR-Morgan commented Jul 25, 2023

As @tsvilans is no longer blocked by this, we might not bother hot fixing this for 2.15.

The functional change is already in 2.16 dev branch.

I'll leave it up to @didimitrie, feel free to either merge or close this pr.

@didimitrie
Copy link
Member

Happy with it, my only fears were re release. Merge away!

@AlanRynne
Copy link
Member

So is this to be merged?

The functional change is already in 2.16 dev branch.

I can't find any commit in the dev branch that has this,

@AlanRynne AlanRynne closed this Jul 27, 2023
@AlanRynne AlanRynne reopened this Jul 27, 2023
@AlanRynne
Copy link
Member

Sorry, closed PR by mistake while writing a comment 🙇🏼‍♂️

@JR-Morgan JR-Morgan merged commit 6a338ab into main Jul 27, 2023
30 checks passed
@JR-Morgan JR-Morgan deleted the jrm/core/sqlite-init-hotfix branch July 27, 2023 13:06
@JR-Morgan
Copy link
Member Author

The exact commit is not on dev, but the change is

throw new TransportException(this, "Failed to initialize DB connection", ex);

I've merged now

didimitrie added a commit that referenced this pull request Aug 9, 2023
* Sending database profile row

* Not sending System.DBNull

* Not sending DBNull

* Creating profile section - Angle profile
Refactored Advance Steel Beams

* Section Profile Circular and ISection

* Advance Steel speckle classes name refactored

* User attribute in base class
Adjustments in Asteel beam and section profile

* Profile C and T

* Variables name changed

* Using IAsteelObject interface instead of AsteelObject

* Slab

AsteelSlab speckle created
Refactored remaining steel objects

* Civil2023 and AdvanceSteel2023 Converter projects added into solution filter
Xcopy of Triangle.NET changed from ConverterAdvanceSteel2023

* Revert "Civil2023 and AdvanceSteel2023 Converter projects added into solution filter"

This reverts commit b8e819e.

* Revert "Revert "Civil2023 and AdvanceSteel2023 Converter projects added into solution filter""

This reverts commit 7ac8a04.

* Adjustments for copying to Kit folder

* New solution filter for AS
Others Adjustments in Autocad filter

* x64 Platform

* Load fixed

* Autocad 2023 projects added in filter

Autocad 2023 projects were added in AS filter to help the development between directives

* Merge with AS Filters branchs

* Autocad Properties in IAsteelObject

* asteelProps in speckle base

* Cache properties class for Advance Steel object type

* Removed type from ASTypeData
Lower case in properties description

* Balance point

* New ASTypeData - Beam
Few adjustments

* Polybeam, beam and AtomicElement properties are working ok!

* Scale distance unit

* mainalias

* Scaling is working

* Only 1 weight

* Static in some functions

* CSProj backups removed
Removed unused usings

* Revert "Merge branch 'dev' into asAllProperties"

This reverts commit 3e5fb6c5dd498b45c28191acc08b047f42a25a08, reversing
changes made to 85e771c.

* After code cleanup

* Revert "After code cleanup"

This reverts commit d157c9a.

* Namespace formater

* After cleanup

* Revert "After cleanup"

This reverts commit d3e32e0.

* TriangleNET.dll changed to Triangle.dll

* Bolt pattern properties

* Screw bolt properties

* Filer object and construction properties

* driven connection property in constructionElement

* Volume and Area units added
Adjustments in the scale of some properties

* Formatting Volume, Area and Weight in differents ways

* Digits parameter

* FactorFromNative multiply each point property

* Structure and group

* Cuts number in atomic element

* Slab issue

* Update Converter.AutocadCivil.Utils.cs

* Fix(Revit) : retrieving types for mep elements (#2758)

* fix retrieving types for mep elements

* check for family match if the speckle object has a family prop

---------

Co-authored-by: Connor Ivy <connor@speckle.systems>

* Fix(Revit) : retrieving types for mep elements (#2758) (#2768)

* fix retrieving types for mep elements

* check for family match if the speckle object has a family prop

---------

Co-authored-by: connorivy <43247197+connorivy@users.noreply.github.com>
Co-authored-by: Connor Ivy <connor@speckle.systems>

* fix(Archicad): build readme update (#2756)

* Archicad Readme update

* fix

---------

Co-authored-by: József L. Kiss <>

* fix(rhino): mapping constraints on polylines and facewalls (#2769)

removes polyline assignment and constrains facewall to basic wall types

* Fix(Revit): disable preview receive (#2772)

disable preview receive

Co-authored-by: Connor Ivy <connor@speckle.systems>

* Fix(Revit): Better reporting of critical errors in Revit (#2771)

* better error reporting

* remove unused code

* Included exception in logs + ensured stack trace from error eater

* Added non user facing speckle exception

---------

Co-authored-by: Connor Ivy <connor@speckle.systems>
Co-authored-by: Jedd Morgan <45512892+JR-Morgan@users.noreply.github.com>

* feat(objects): only load converters matching the version of the Objects dll (#2761)

* Fix (Revit): fix for nested geometry instances (#2760)

* Fix(Revit) : retrieving types for mep elements (#2758)

* fix retrieving types for mep elements

* check for family match if the speckle object has a family prop

---------

Co-authored-by: Connor Ivy <connor@speckle.systems>

* fix(Archicad): build readme update (#2756)

* Archicad Readme update

* fix

---------

Co-authored-by: József L. Kiss <>

* use symbol geom

* fix geom call

* add logging to element mesh retrieval

* Revert "Merge branch 'dev' into revit/connor/use-symbol-geometry"

This reverts commit f0f2616.

* Update README.md

* fix logging names

---------

Co-authored-by: Connor Ivy <connor@speckle.systems>
Co-authored-by: József L. Kiss <50739844+jozseflkiss@users.noreply.github.com>
Co-authored-by: Claire Kuang <kuang.claire@gmail.com>

* Feat(Tekla) : receive instances in Tekla (#2774)

receive instances in Tekla

Co-authored-by: Connor Ivy <connor@speckle.systems>

* fix(Archicad): Receive cancellation behaviour (#2776)

Receive cancellation behaviour

Co-authored-by: József L. Kiss <>

* feat(revit): add revit air terminal category (#2721)

add revit air terminal category

* Fix(Revit) : Don't show every mapped value for each receive operation (#2775)

* implement a second type map for the current operation only

* simplify method signatures

---------

Co-authored-by: Connor Ivy <connor@speckle.systems>

* fix(Navisworks): Closing 2.15 UX/UI papercuts (#2766)

* Update progress bar with a maximum value of 1.0 and fix fractionDone calculation

- Update progress bar to use a maximum value of 1.0
- Fix calculation for fractionDone to ensure it does not exceed 1

* progress bar increments and update sub-operation descriptions

- Refactored the progress bar increments in the `SelectionHandler` class to improve accuracy.
- Updated the sub-operation descriptions in the progress bar for better clarity and user experience.

* descendant traversal logic and add progress bar cancellation handling

- descendant traversal logic in the `SelectionHandler` class to improve readability and maintainability.
- Added handling for progress bar cancellation by checking if it is cancelled and cancelling the associated token source.
- Updated progress bar update logic to only update when reaching a new percentile, improving efficiency.

* Update progress bar percentages and descriptions in ConnectorNavisworksBindings.Send.cs

- Changed progress bar percentage from 0.55 to 0.35 and updated description
- Changed progress bar percentage from 0.66 to 0.2 and updated description
- Changed progress bar percentage from 0.75 to 0.1 and updated description
- Changed progress bar percentage from 1 to 0.1 and updated description
- Changed progress bar percentage from 0.7 to 0.35 and updated description

* Fix progress bar bug and improve cancellation handling

The progress bar bug was fixed by adding the missing `_progressBar.EndSubOperation()` call. Additionally, cancellation handling was improved by checking for cancellation before each model item conversion and throwing an exception if cancelled.

* Add null handling

- Add null check for baseNode variable before accessing its type
- Add continue statement to skip iteration if baseNode is null

* Reword error message for unhidden objects with geometry

The error message for when zero objects remain unhidden in the selection has been updated to provide more specific information. Instead of "Zero objects remain unhidden in selection. Send stopped.", it now says "Zero objects with Geometry are unhidden in selection. Send stopped." This change improves the clarity of the error message and helps users understand why the send operation was stopped.

There maybe in IFC aggregations nodes or even entire hierarchies where no geometry exists, hidden or not.

* Fix(Revit) : retrieving types for mep elements (#2758)

* fix retrieving types for mep elements

* check for family match if the speckle object has a family prop

---------

Co-authored-by: Connor Ivy <connor@speckle.systems>

* Clearer error message for no visible geometry objects

---------

Co-authored-by: connorivy <43247197+connorivy@users.noreply.github.com>
Co-authored-by: Connor Ivy <connor@speckle.systems>

* Nullability Syntax and error handling in Core (#2700)

* fix(core): Fixed issue with invalid auth tokens

* fixed incorrect gql auth headers

* Added nullabilty syntax to transports

* fix(tests): removed memory transport from concurrency test

* Cleanup of warnings round 2

* Round 3 clean ups

* Fixed tests

* Lowered accessibility of Client's empty constructor to avoid invalid construction of clients

* Added unit tests for local transports.

* Exception Testing

* Transport tests

* fix(Navisworks): Handles lack of One-click-send implementation causing host app to be unresponsive (#2759)

* Amend GetFileName method to handle exceptions and improve error handling

- Added checks for active document and models in the active document.
- If no active document is found, a FileNotFoundException is thrown with an appropriate message.
- If no models are found in the active document, a FileNotFoundException is thrown with an appropriate message.

* Add validation checks before sending data

- Added validation checks to ensure data integrity before sending
- Validation checks will throw an exception if something is wrong

* Refactor file and model validation logic

- Removed unnecessary using statements
- Extracted file and model validation logic into a separate method
- Updated GetFileName() method to use the extracted method for validation

* - Add check for "Sent everything" commit message in state filter

- Add check for "Sent everything" commit message in state filter

* Signature Comments

* feat: Add file and model presence check

This commit adds a new method `IsFileAndModelsPresent()` to both `ConnectorNavisworksBindings.File.cs` and `ConnectorNavisworksBindings.Selections.cs`. This method checks if there is an active document and if any models are appended. If not, it throws a `FileNotFoundException` with the appropriate error message.

* feat(AdvanceSteel): Mechanism to get main properties of native objects (#2444)

* Sending database profile row

* Not sending System.DBNull

* Not sending DBNull

* Creating profile section - Angle profile
Refactored Advance Steel Beams

* Section Profile Circular and ISection

* Advance Steel speckle classes name refactored

* User attribute in base class
Adjustments in Asteel beam and section profile

* Profile C and T

* Variables name changed

* Using IAsteelObject interface instead of AsteelObject

* Slab

AsteelSlab speckle created
Refactored remaining steel objects

* Civil2023 and AdvanceSteel2023 Converter projects added into solution filter
Xcopy of Triangle.NET changed from ConverterAdvanceSteel2023

* Revert "Civil2023 and AdvanceSteel2023 Converter projects added into solution filter"

This reverts commit b8e819e.

* Revert "Revert "Civil2023 and AdvanceSteel2023 Converter projects added into solution filter""

This reverts commit 7ac8a04.

* Adjustments for copying to Kit folder

* New solution filter for AS
Others Adjustments in Autocad filter

* x64 Platform

* Load fixed

* Autocad 2023 projects added in filter

Autocad 2023 projects were added in AS filter to help the development between directives

* Merge with AS Filters branchs

* Autocad Properties in IAsteelObject

* asteelProps in speckle base

* Cache properties class for Advance Steel object type

* Removed type from ASTypeData
Lower case in properties description

* Balance point

* New ASTypeData - Beam
Few adjustments

* Polybeam, beam and AtomicElement properties are working ok!

* Scale distance unit

* mainalias

* Scaling is working

* Only 1 weight

* Static in some functions

* CSProj backups removed
Removed unused usings

* Revert "Merge branch 'dev' into asAllProperties"

This reverts commit 3e5fb6c5dd498b45c28191acc08b047f42a25a08, reversing
changes made to 85e771c.

* After code cleanup

* Revert "After code cleanup"

This reverts commit d157c9a.

* Namespace formater

* After cleanup

* Revert "After cleanup"

This reverts commit d3e32e0.

* TriangleNET.dll changed to Triangle.dll

---------

Co-authored-by: Matteo Cominetti <matteo@speckle.systems>

* log(revit): Added missing exception to log (#2783)

* log(revit): Added missing exception to log

* Added more context

* move test files out of speckle-sharp

* chore(core): use product version instead of file version

* chore: uncomment changes

* feat: fallback on file version if no product version

* fix(core): Fixed issue with blob storage folder being ignored in server transport (#2782)

* fix(core): Fixed issue with blob storage folder being ignored in server transport

* Added blobStorageFolder to clone

* fix(Archicad): Remove unnecessary hotspots from 3D objects (#2781)

hotspot

Co-authored-by: József L. Kiss <>

* fix(autocad): Fixed issue where logger was being used before setup was reporting hostappname and version

* Comment for a workaround

* fix(Archicad): Receive cancellation handling improvement (#2794)

cancellation

Co-authored-by: József L. Kiss <>

* Fix(Revit) : fix element type retrieval for MEP objects (#2792)

* create cache in connector and pass to converter

* fixes to new cache

* correctly handle no parameters

---------

Co-authored-by: Connor Ivy <connor@speckle.systems>

* working network / graph object

* move commit object builder to converter project

* remove unused code

* change everything from networkToSpeckle

* use struct for nestingInstructions

* add more flexible revit commit builder

* get rid of MEP network name

* add MEP to commit builder

* fix(dui2): Fixed issue with unresponsive progress bar

* this semi works on receive

* fittings are working

* added decent logging for creating fittings

* feat(autocadcivil): implements collections (#2797)

* refactors bindings

* Adds collections to send

* added layer to speckle conversion

* adds displaystyle to collection to speckle

* Update ConverterAutocadCivil.cs

* adds collections to receive operation

* Adds collectiontonative to converter

* adds collection the native methods

* fixes objects on default layer and other bugs

* chore(dui2): Deleted nuget config in the hopes that CI get's unstuck by it (#2805)

* fix: Add condition to 2022 Tekla converter post-build event (#2803)

* fix(Navisworks): Civil3D Models failing as geometries containing embedded primitives (#2802)

* feat: Add support for Text primitive type in Navisworks converter

This commit adds support for the Text primitive type in the Navisworks converter. Previously, only Lines, Triangles, and SnapPoints were supported. Now, Text can also be converted to Speckle format.

* error message for hidden or unconvertible geometry objects

The new error message now includes the case where the objects cannot be converted, improving clarity and user experience.

---------

Co-authored-by: Alan Rynne <alan@speckle.systems>

* core: hotfix for sqlite transport swallowing exception when failing t… (#2796)

core: hotfix for sqlite transport swallowing exception when failing to initialize

* add better logging for failures

* renew elements after rollback if necessary

* I actually don't need the graph object... oops

* delete unused imports

* Feat(Revit) : more flexible commit builder (#2798)

* add more flexible revit commit builder

* get rid of MEP network name

---------

Co-authored-by: Connor Ivy <connor@speckle.systems>

* remove unused props on class

* adjust commitObject Builder

* add connector conversion to other object conversions

* add more props to the connector object

* get rid of old network class

* add obsolete tag to all network constructors

* fix(revit): Blender instances receive (#2801)

Co-authored-by: Alan Rynne <alan@speckle.systems>

* add convertNetwork back to project

* view specific design option fix

* CIVIL2024 re-inserted

* fix mesh gathering performance

* chore: track if the user accepts the mapping dialog or not

(cherry picked from commit 5ceda75)

* Fix: Adds material quantities to MEP elements (#2655)

* Materials extracted for MEPCurves

* error with null-operator solved

---------

Co-authored-by: Kilian Speiser <kilsp@dtu.dk>
Co-authored-by: connorivy <43247197+connorivy@users.noreply.github.com>

* fix(revit): prevents linked model error with views filter (does not solve it yet) #2829

* feat(revit): replaces hardcoded list of categoris with a check by CategoryType (#2833)

* fix(revit): replaces the hardcoded list of categories with a check by categoryType

* feat(revit): adds internal categoryType

* docs

* feat: adds support for grids

* fix(revit): extension method

* Fix(Revit) : add curves for mep fitting (#2837)

get curve for mep fittings

Co-authored-by: Connor Ivy <connor@speckle.systems>

* Fix(Revit) : fix incorrect instance assumptions (#2830)

* best guess for possible mesh fixes

* elements can have no mesh, thats fine (I think)

* remove commented code

---------

Co-authored-by: Connor Ivy <connor@speckle.systems>

* Feat(csi) : add element2d openings on receive (#2838)

* think this should work?

* it's making openings I think?

* try catch the set area method

---------

Co-authored-by: Connor Ivy <connor@speckle.systems>

* fix(gh): null check on CSI node (#2836)

---------

Co-authored-by: Pedro Henrique Liberato <phliberato@gmail.com>
Co-authored-by: connorivy <43247197+connorivy@users.noreply.github.com>
Co-authored-by: Connor Ivy <connor@speckle.systems>
Co-authored-by: Matteo Cominetti <matteo@speckle.systems>
Co-authored-by: József L. Kiss <50739844+jozseflkiss@users.noreply.github.com>
Co-authored-by: Claire Kuang <kuang.claire@gmail.com>
Co-authored-by: Jedd Morgan <45512892+JR-Morgan@users.noreply.github.com>
Co-authored-by: dtnaughton <77862637+dtnaughton@users.noreply.github.com>
Co-authored-by: Jonathon Broughton <jonathon@stardotbmp.com>
Co-authored-by: Alan Rynne <alan@speckle.systems>
Co-authored-by: Kilian <86473259+ks-cph@users.noreply.github.com>
Co-authored-by: Kilian Speiser <kilsp@dtu.dk>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core issues related to the .net sdk. hotfix
Projects
No open projects
Status: 🧪 Merged (Test)
Development

Successfully merging this pull request may close these issues.

None yet

3 participants