Skip to content
View in the app

A better way to browse. Learn more.

The AVSIM Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

ThumbnailExporterX Unhandled exception

Featured Replies

Hi Oliver,

I'm trying to write a report in v1.19 with the only checkbox selected being 'Open report when complete'. However, after clicking on 'Write report', I am getting an Unhandled exception "Illegal characters in path".

Any ideas please?


Error details below:

Spoiler

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.ArgumentException: Illegal characters in path.
   at System.IO.Path.LegacyNormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetFullPathInternal(String path)
   at System.IO.FileInfo.Init(String fileName, Boolean checkHost)
   at System.IO.FileInfo..ctor(String fileName)
   at ThumbnailExporterX.Livery.DetermineModelType()
   at ThumbnailExporterX.MainDialog.ScanDirsRecursive(DirectoryInfo startPath, DirectoryInfo targetDir, StreamWriter htmlReportWriter)
   at ThumbnailExporterX.MainDialog.ScanDirsRecursive(DirectoryInfo startPath, DirectoryInfo targetDir, StreamWriter htmlReportWriter)
   at ThumbnailExporterX.MainDialog.buttonProcess_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3163.0 built by: NET472REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
ThumbnailExporterX
    Assembly Version: 1.19.2.0
    Win32 Version: 1.19.2.0
    CodeBase: file:///Z:/P3D%20other/ThumbnailExporterX/ThumbnailExporterX.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3056.0 built by: NET472REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3151.0 built by: NET472REL1LAST_B
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3056.0 built by: NET472REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3056.0 built by: NET472REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3160.0 built by: NET472REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3056.0 built by: NET472REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Microsoft.GeneratedCode
    Assembly Version: 1.0.0.0
    Win32 Version: 4.7.3056.0 built by: NET472REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Accessibility
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.3056.0 built by: NET472REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.


 

AMD Ryzen 5800X3D; MSI RTX 3080 Ti ; 32GB Corsair 3200 MHz; ASUS VG35VQ 35" (3440 x 1440)
Fulcrum One yoke; Thrustmaster TCA Captain Pack Airbus edition; MFG Crosswind rudder pedals; miniCockpit FCU; CPFlight MCP 737; Logitech FIP x3; TrackIR

MSFS; Fenix A320; A2A PA-24; HPG H145; PMDG 737-600; AIG; RealTraffic; PSXTraffic; FSiPanel; REX AccuSeason Adv; FSDT GSX Pro; FS2Crew RAAS Pro; FS-ATC Chatter

  • Commercial Member

Hi, 

this looks like there are characters in one of your aircraft.cfg's liveries, that are not allowed as a Windows file name (required to make a copy of the thumbnail image). This is not a common occurence, so it may be difficult to pinpoint. If you want, please send me an email to lorby-si at outlook.de. I may have to make a special debug version for you to locate the offending string. Please include a screenshot of the app just before you press "write report".

Best regards

LORBY-SI

  • 1 year later...

It's not just illegal characters in the aircraft.cfg's liveries that can cause fatal errors. The following aircraft.cfg line caused a fatal error for me:

model=button   //<<<<<Radar nose.  Should be model=button for button nose, or model=short for short nose.

It took me forever to find it because I was looking only at the "texture=" lines for an error.

FYI

Don

Version: P3Dv5.4, P3Dv6  CPU: Core i7-13700K @ 5.5 GHz with HT on,  GPU: RTX 3080 12GB,  RAM: 32GB DDR-5MONITOR: 32" 4K with G-Sync enabled, OS: Win10 22H2, Target Frame Rate: P3D 120, NCP Max Frame Rate 35.

  • Commercial Member
7 hours ago, DonMuskopf said:

It's not just illegal characters in the aircraft.cfg's liveries that can cause fatal errors. The following aircraft.cfg line caused a fatal error for me:

model=button   //<<<<<Radar nose.  Should be model=button for button nose, or model=short for short nose.

It took me forever to find it because I was looking only at the "texture=" lines for an error.

FYI

Don

Hello Don,

I just tried that line in my devel environment (ThumbNailExporter 1.20 b02) and I didn't get an error. There must be something else going on in the file system? Does the "model.button" folder exist, and what is in it? The app tries to decode the .mdl file to find out what type of model it is, maybe something goes wrong there? 

If you want, please send me an email with more details about the aircraft in question. 

Best regards

LORBY-SI

Hi,

I can consistently reproduce this error. Removing the inline comment after the model=button statement fixes the problem. Adding the comment back results in the error.

This particular aircraft.cfg file is for the CalClassic Convair CV340. The error message is for "Illegal characters in path" and I'm using version 1.20 b02. The model.button folder does indeed exist and it contains two .mdl files and the model.cfg file.

Runtime data: source is P3Dv4. Text Data are title, model type and ui createdby.

I really like this program. I hope this helps.

Don

 

Version: P3Dv5.4, P3Dv6  CPU: Core i7-13700K @ 5.5 GHz with HT on,  GPU: RTX 3080 12GB,  RAM: 32GB DDR-5MONITOR: 32" 4K with G-Sync enabled, OS: Win10 22H2, Target Frame Rate: P3D 120, NCP Max Frame Rate 35.

  • Commercial Member
4 hours ago, DonMuskopf said:

Hi,

I can consistently reproduce this error. Removing the inline comment after the model=button statement fixes the problem. Adding the comment back results in the error.

This particular aircraft.cfg file is for the CalClassic Convair CV340. The error message is for "Illegal characters in path" and I'm using version 1.20 b02. The model.button folder does indeed exist and it contains two .mdl files and the model.cfg file.

Runtime data: source is P3Dv4. Text Data are title, model type and ui createdby.

I really like this program. I hope this helps.

Don

 

Hello Don,

When I add this line to an arbitrary aircraft.cfg, there is no error and no exception. There must be something strange about the cfg file itself. Where can I download the copy of plane that you are using?

The only thing that I could do is to simply catch the exception and continue with the program, but then this aircraft would be missing. I would prefer to find out what exactly is going wrong. Is your stacktrace really the same one that I see in the OP (the part in the "hidden comments")?

Best regards

 

Edited by Lorby_SI

LORBY-SI

I can put the inline comment into different plane's aircraft.cfg file and this will cause the same error for that aircraft, too. This is the inline comment:

//<<<<<Radar nose.  Should be model=button for button nose, or model=short for short nose.

This is the statement as it appears for a different aircraft.

model=       //<<<<<Radar nose.  Should be model=button for button nose, or model=short for short nose.

So this error is reproducible across different aircraft.

Don

The problem appears to be the < character. The statement below will cause the error.

model= //<

Edited by DonMuskopf

Version: P3Dv5.4, P3Dv6  CPU: Core i7-13700K @ 5.5 GHz with HT on,  GPU: RTX 3080 12GB,  RAM: 32GB DDR-5MONITOR: 32" 4K with G-Sync enabled, OS: Win10 22H2, Target Frame Rate: P3D 120, NCP Max Frame Rate 35.

  • Commercial Member
2 hours ago, DonMuskopf said:

I can put the inline comment into different plane's aircraft.cfg file and this will cause the same error for that aircraft, too. This is the inline comment:

//<<<<<Radar nose.  Should be model=button for button nose, or model=short for short nose.

This is the statement as it appears for a different aircraft.

model=       //<<<<<Radar nose.  Should be model=button for button nose, or model=short for short nose.

So this error is reproducible across different aircraft.

Don

The problem appears to be the < character. The statement below will cause the error.

model= //<

Hello Don,

I'm sorry, but I can't reproduce it

//*********************************************************
// CARENADO DO228 HD SERIES FSX/P3D 
// Copyright © Carenado 2016 - All Rights Reserved
//*********************************************************

[fltsim.0]
title=Carenado DO228 WHITE
sim=DO228
model= //<<<<<Radar nose.  Should be model=button for button nose, or model=short for short nose.
panel=
sound=
texture=
kb_checklists=
kb_reference=
atc_id=
ui_manufacturer="Carenado"
ui_type=DO228
ui_typerole="Twin Engine TurboProp"
ui_createdby="Carenado"
ui_variation=WHITE
description=
atc_heavy=0
atc_airline=
atc_flight_number=
atc_id_color=0000000000
visual_damage=1

Zero problems. No unhandled exception, nothing.

I really need that stack trace (the "Detail" part on the exception window), and the original .cfg file (to check character encoding) via email.

Best regards

LORBY-SI

deleted. posted by mistake.

Edited by DonMuskopf
deleted. posted by mistake.

Version: P3Dv5.4, P3Dv6  CPU: Core i7-13700K @ 5.5 GHz with HT on,  GPU: RTX 3080 12GB,  RAM: 32GB DDR-5MONITOR: 32" 4K with G-Sync enabled, OS: Win10 22H2, Target Frame Rate: P3D 120, NCP Max Frame Rate 35.

Ok. How do I find your email?

Don

Version: P3Dv5.4, P3Dv6  CPU: Core i7-13700K @ 5.5 GHz with HT on,  GPU: RTX 3080 12GB,  RAM: 32GB DDR-5MONITOR: 32" 4K with G-Sync enabled, OS: Win10 22H2, Target Frame Rate: P3D 120, NCP Max Frame Rate 35.

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.