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

Downscaling is throwing exceptions! #16

Closed
siblount opened this issue Aug 28, 2022 · 2 comments · Fixed by #22
Closed

Downscaling is throwing exceptions! #16

siblount opened this issue Aug 28, 2022 · 2 comments · Fixed by #22
Assignees
Labels
bug Something isn't working

Comments

@siblount
Copy link
Owner

  1. Downscaling function in DPNetwork threw an exception because the file handle for the image was still maintained.

We need to let go of the file handle once we are done with it.

  1. Getting GDI+ exceptions with no additional feedback, need to investigate why later.
@siblount siblount added the bug Something isn't working label Aug 28, 2022
@siblount siblount self-assigned this Aug 28, 2022
@siblount
Copy link
Owner Author

Point one of this issue has been resolved. I haven't been able to get the second point/error to come up yet, weird. Will breakpoint this and if I don't run into this issue after processing tons of products, then I'll deem it as successfully fixed and close this.

@siblount
Copy link
Owner Author

siblount commented Sep 6, 2022

Wasn't able to reproduce point 2, closing this.

@siblount siblount closed this as completed Sep 6, 2022
siblount added a commit that referenced this issue Jan 3, 2023
* Minor update to DatabaseView designer.

* Fixed #15

Cause for app hang was due to a deadlock while creating connections (ex: waiting for Initialization when called by the Init func).

Added new CreateInitialConnection which does not check if the database was initialized and InsertDefaultTables uses the connection instead of null.

* Fixed #16 first point - release image handle when done

* Clear DPFiles at start & fix file handle leak

Fixed the issue where the zip archive file handle was not released even when done; call ReleaseArchiveHandles() at the end of ProcessArchive.

Updated 7zArchive to kill the 7z process tree if it still exists.

* try..catch..me...if..you..can for all archives

try catch ReadMetaFiles, ReadContentFiles and others.

* Added sorting combo & functionality.

* Order by product name not case sensitive, update limit offset for library queries.

* added some remove right click action for library items.

* updated remove actions for product record form

remove now ask for confirmation
remove product is implemented and more advanced than the one on library item.

* fix compiler error

* fixed noImageFound replaced with random image

* Changed logo & app appearance and implemented minor UI perf increase.

* Update nuget packages

* Added new UpdateProductRecord() & UpdateExtractionRecord() along with helper funcs and proprogating changes across DPDatabase

* added delegate w/ 5 args

* Added functionality to modify product records in the product record form.

Note: Doesn't successfully save.

* i have no idea what this is.

* added new RestoreTriggers() and TempDeleteTriggers()

* fixed RemoveValuesWithCondition(), removed transaction?.Dispose() from finally, typo fixes

* removed additional update invocations

TableUpdated and ProductRecordModified() already invokes the event, no need for it twice.

* Updated UpdateRecordQ()

* Fixed #19 - explictly unregister form when closed

* Added new properties for DPAbstractFile

Also removed FileName for DPAbstractArchive since it will be covered by DPAbstractFile.

* Addressed #18, still needs work as content folders are being targetted to DAZ directory root folder.

Added new CalculateChildRelativePath() and CalculateChildRelativeTargetPath() funcs for DPFolder.

Added GetTargetPath() and propogated changes from DPFolder onto here for DPProcessor.

* Remove Queue tab temporarily; still in designer.

* fixed missing mutex for app

* Minor UI adjustment to DB viewer

Anchored button and combobox to the right.

* Removed tool strip and other unused UI elements.

* Added about form, logo links to about form

* slight fix for out of bounds exception thrown here

* Added new settings

* Settings is now using JSON.Net & using serialization

* fixed NoImageFound property returning null

* Addresses #21 - tags, etc now have char limits

Tags, Product Name, Author, SKU, Folders, Files, errored files, now have char limits.

* minor ui change - modified text anchor

* fixed settings invalid messasge always showing up

* fixed length of n + 1 instead of n

* Prevent >70 char limit for tags

* Disable thumbnail strip if no image is shown.

* update version
siblount added a commit that referenced this issue Jan 14, 2024
* Minor update to DatabaseView designer.

* Fixed #15

Cause for app hang was due to a deadlock while creating connections (ex: waiting for Initialization when called by the Init func).

Added new CreateInitialConnection which does not check if the database was initialized and InsertDefaultTables uses the connection instead of null.

* Fixed #16 first point - release image handle when done

* Clear DPFiles at start & fix file handle leak

Fixed the issue where the zip archive file handle was not released even when done; call ReleaseArchiveHandles() at the end of ProcessArchive.

Updated 7zArchive to kill the 7z process tree if it still exists.

* try..catch..me...if..you..can for all archives

try catch ReadMetaFiles, ReadContentFiles and others.

* Added sorting combo & functionality.

* Order by product name not case sensitive, update limit offset for library queries.

* added some remove right click action for library items.

* updated remove actions for product record form

remove now ask for confirmation
remove product is implemented and more advanced than the one on library item.

* fix compiler error

* fixed noImageFound replaced with random image

* Changed logo & app appearance and implemented minor UI perf increase.

* Update nuget packages

* Added new UpdateProductRecord() & UpdateExtractionRecord() along with helper funcs and proprogating changes across DPDatabase

* added delegate w/ 5 args

* Added functionality to modify product records in the product record form.

Note: Doesn't successfully save.

* i have no idea what this is.

* added new RestoreTriggers() and TempDeleteTriggers()

* fixed RemoveValuesWithCondition(), removed transaction?.Dispose() from finally, typo fixes

* removed additional update invocations

TableUpdated and ProductRecordModified() already invokes the event, no need for it twice.

* Updated UpdateRecordQ()

* Fixed #19 - explictly unregister form when closed

* Added new properties for DPAbstractFile

Also removed FileName for DPAbstractArchive since it will be covered by DPAbstractFile.

* Addressed #18, still needs work as content folders are being targetted to DAZ directory root folder.

Added new CalculateChildRelativePath() and CalculateChildRelativeTargetPath() funcs for DPFolder.

Added GetTargetPath() and propogated changes from DPFolder onto here for DPProcessor.

* Remove Queue tab temporarily; still in designer.

* fixed missing mutex for app

* Minor UI adjustment to DB viewer

Anchored button and combobox to the right.

* Removed tool strip and other unused UI elements.

* Added about form, logo links to about form

* slight fix for out of bounds exception thrown here

* Added new settings

* Settings is now using JSON.Net & using serialization

* fixed NoImageFound property returning null

* Addresses #21 - tags, etc now have char limits

Tags, Product Name, Author, SKU, Folders, Files, errored files, now have char limits.

* minor ui change - modified text anchor

* fixed settings invalid messasge always showing up

* fixed length of n + 1 instead of n

* Prevent >70 char limit for tags

* Disable thumbnail strip if no image is shown.

* update version

* remove invalid folder

* Split up project into multiple

NOTE: You will not be able to build at this commit.

* rename namespaces, setup dependencies, and more

NOTE: You will not be able to build at this commit.

* Split up UsefulFuncs.cs, removed ArrayHelper, Up in PathHelper

* moved namespace to DAZ_Installer.Core

* moved namespace to DAZ_Installer.Core.External

* added some vars from DPCommon into Program

* prepared for removal of associations from DPAbstractFile

- Flipped dictionary keys and valeus
- Now use nodes and listviewitem tags.
- Added additional condition for 'Select in hierachy' visibility for list view.
- Added select in file list view action.

* Added new DPProcessSettings

* fuck it just upload everything

* Addressed destination not enough space infinite loop when cancelled.

* Added new properties to MockedDPIOContext due to some weird NSubstitute errors

* Updated ProcessArchiveTest_OutOfStorage to now pass.

* Replace NSubstitute with Moq and proprogate changes.

Moved Fakes to Test projects instead.

* Splitting up DPProcessor - added tag provider module

Created new AbstractTagProvider and it's default implementation DPTagProvider.
Propogated changes to DPProcessor.

* Splitting up DPProcessor - added destination determiner

Created an abstract destination determiner to determine which files get extracted and to where.
Created it's default implentation at DPDestinationDeterminer.
Propogated changes.

* got rid of some ugly try-catch blocks

* Minor logging update to DPProcessor.

* Update SetupProcessor to provide fake DestinationDeterminer and TagProvider

* Try-Catch everything in processArchievInternal.

* add documentation to (Destination/Temp)HasEnoguhSpace functions

* Relay extractor extract progress event

* Add testing for processing archive after process.

* ._.

* Create dotnet-test.yml

* delete extra iotests.

* cancellation token update (not working atm)

* Remove unused variables.

* Made adjustments to DPProcessorErrorArgs for clarity.

* Clarity for DPArchiveEnterArgs

* Added func to skip archives

* Update to make extractors cancelable.

* Removed redundant CancellationToken.

* Process archives iteratively (vs recursively)

* Add support for cancelling archive and processing entirely.

* Remove skip variable

* Add CancellationToken

* Make interface for DPDatabase.

* Update database to be more async friendly.

* Remove unnecessary parameter for ProductRecordAdded

* Added locks to DPTaskManager

* Return task for RemoveProductRecord.

* Update IDPDatabase documentation

* Add task execute sequentially helper method.

* Add DPDatabase tests.

* Fix compile errors.

* Fix StringWriter import error.

* Update app name to Product Manager for DAZ Studio

to avoid trademark and other legal issues :)

* fix unintentional hiding for Scope

* Search for normalized path of current rar file.

* Add test subjects for integration testing.

* Fix RAR not extracting files split in multi-volume.

* Update test subjects

* Skip testing files that are directories.

* Always copy test subjects to output directory.

* Upload integration tests for RAR Extractor

* Check for cancellation at start of readheader loop.

This is needed to pass the "PeekTest_CancelledDuringOp" test. But also, it's just better to check for cancellation first thing.

* Delete src.rar

* Add support for Git LFS in dotnet-test.yml

* Cache Nuget Packages, change dotnet version, cd to dir

* Cache Nuget Packages, cd to dir before test run

* figure out this github action weirdness

* Remove action, remove warnings, and update verbosity.

* Add logging to figure out github actions weridness

* fix dotnet cmd

* fix dotnet cmd

* add logging to solve this mystery

* change verbosity again.

* update dotnet-test

* Add support for Git LFS in dotnet-test.yml

* Update to copy always

* Addresses #24 - NormalizePath doesnt trim drive letters

* Fix #24 - updated path calculation logic.

* Remove duplicate WinApp project.

* Update README.md

* Rename app

* get rid of comment

* Fix creating incorrect directory

* Implement 7z extractor integration tests

* Remove unnecessary test.

* Implement zip archive integration tests

* More reliable Peek, Extract, and Move events.

* Moved stream test helpers

* Added new GetRootDirectory()

* Fixed relative path issues

* fixed destination determiner + add tests

* Remove DPIDManager class

* Make streams more customizable

* Fix bug, add content type as tag, add tests

* make helper methods private

* Fix this.

* Fix logic bugs

* change security for constants

* Remove extracted check + add comment

* Add integration testing for DPProcessor

* Add testing for DPDazFile

* Add testing for DPDSXFile

* Downgrading NuGet packages

* Make TargetPath setter public.

* Fixed rar extractor extracting incorrectly for select files

Fixed DPRarExtractor from extracting other files instead of the selected files if not all of the files were being extracted.

* Added tests for partial extraction

* Fixed subarchive duplication in destination determiner.

* Fixed RAR extractor throwing archive corrupt errors

Fixed the RAR extractor throwing archive corrupt errors and added tests and updated FakeRAR based on new findings.

If the current mode is Extract, then a Test, Extract, or Skip must be called after calling ReadHeader(), otherwise "Archive is corrupt" will be the exception thrown.

* Extract DSX Files instead of DazFiles

* Fix path is null exception in ExtractedToTarget

* Fix subarchives not being processed + scope fix

Moved adding the subarchives to process at the end instead of beginning.
Removed combining the destination path with the content folder and redirects since the manifest can skip this behavior since the content folders are for when a manifest does not exist.

* fixed subarchives having empty TargetPath + typo

If Automatic was an InstallOption, the filePathPart would always be empty since no overridePath is being provided and RelativeTargetPath is empty since the archive is not in a content folder, but is targeted by the algorithm. The subarchives would have an incorrect path only returning the temp path.

Additionally, in the DetermineViaFileSense the parent archive's TargetPath was accidentially being set to the child's TargetPath which was incomplete. This resulted in the subarchive having an empty TargetPath.

* Created new Testing Suite tool

* Target x64 only

* Setup real data testing for DPProcessor

* Remove logging

* Complete real data testing

* addressed handling encrypted 7z archives

* implement cancel + updated ui responsiveness

* fixed not handling encrypted headers correctly

* adjust xcopy parameters

* fixed success percentage.

* Make processor more responsive to cancellations.

* update dpprocessor logging

* update success method, emit error for bad archive

* add more default redirects

* update documentation

* fix anchor for tabcontrol & cancel not working

* added hopefully a working PostPublish target

* fix issue with xcopy

* remove source files subject to delete action

* update archive names after the extract job finished

* extract ui optimizations + documentation

* use SetProgressBarValue instead

* Invoke on CreateProgressCombo.

* use calc instead of ref.

* remove check if marque is already set

* better RecursivelyGetControls func (might remove)

* remove useless func

* add cancellation support

Replaced DPProgressCombo with an actual UserConrtol ProgressCombo.

* auto switch page on file drag

* ref app info in assembly
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant