View Issue Details

IDProjectCategoryView StatusLast Update
00297242.x IDE BugsExporting ProjectsPublic2018-10-30 11:48
ReporterDanAssigned ToAlan Savage 
PriorityVery HighSeverityA - Crash/HangReproducibility100%
Status ClosedResolutionFixed 
Platform-OSWindows 10OS VersionPro x64
Product Version2.1.5 
Target Version2.2.1Fixed in Version2.2.1 
Summary0029724: Exporting Projects: IDE does not bail for exception that source files have path lengths over 260 characters
DescriptionHelpdesk reporter mentioned that he cannot give us a .yyz, as it crashes the IDE. Trying this in 2.1.5 green, I get the IDE locking-up - left it for over 30 mins and it did not recover. As you can see from the progress bar in the screenshot, it locked-up quickly after choosing the save location.

This is because some of the source files exceed the 260 character limit and the IDE is not bailing gracefully, even though we do get a useful log with error message:

[15:39:56:895(51a0)] Exception in YoYoStudio.IDE+<>c__DisplayClass193_0,Void <DoSaveProjectIncremental>b__0(Boolean) : System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
   at System.IO.Path.LegacyNormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.InternalGetDirectoryName(String path)
   at YoYoStudio.Core.Utils.YoYoPath.GetDirectoryName(String _path)
   at YoYoStudio.Plugins.CorePlugins.ProjectLoadSave.ProcessSaveRequest(String _path, SaveRequest _objectToSave)
   at YoYoStudio.Plugins.CorePlugins.ProjectLoadSave.DispatchSaveRequests()
   at YoYoStudio.Plugins.CorePlugins.ProjectLoadSave.SaveProjectFull(String _projectPath, String _previousProjectPath, Boolean _relocateProject)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
   at YoYoStudio.Plugins.Command.execute_object(String _command, Object _focus, Object[] paramaters)
   at YoYoStudio.IDE.<>c__DisplayClass191_0.<DoSaveProject>b__0(Boolean _success)
   at YoYoStudio.IDE.<>c__DisplayClass193_0.<DoSaveProjectIncremental>b__0(Boolean _success)
   at WeakDelegate(Object , Object[] )
   at YoYoStudio.Core.Utils.WeakDelegate`1.Invoke(Object[] _args)

Expected: On receiving the above exception, we abort trying to export the project and show the user a dialog that they have filenames which are too long for Windows, so they need to manually move the project elsewhere or consider renaming files to shorter names.
Steps To Reproduce1. Copy \\yoyo-file01\QA\! High-Profile YYZs\Wandersong (2018-06-28).zip to your PC, extract and open.
2. File > Export, choose a destination.
3. Observe the IDE locks up early in the "Saving..." process.

Repro: 100%
TagsFile, handling, IDE
2.x IDE Found In2.1.5.313
2.x Runtime Found In2.1.5.236
2.x IDE Verified In2.2.1.357
2.x Runtime Verified In2.2.1.269



2018-06-28 16:44


Screenshot_2.png (5,660 bytes)
Screenshot_2.png (5,660 bytes)
ui.log (639,547 bytes)