Hello - I'm using MX Linux (a Debian variant), and cannot get 3.4x to run (2.2 ran fine).
Here's the error that pops up:
RuntimeException, error is 'Encountered invalid character.':
OpenSong v3.4.8 (1457).1457 Build date: 2021-06-01 17:09:46 Linux
Stacktrace:
String.$ToText%y%s
String.$Compare%i8%ssi8<xojo.comparisonoptions>o<locale>
StringUtils.CompareHymnBookOrder%i8%ss
MainWindow.MainWindow.lst_songs_songs_CompareRows%b%o<mainwindow.mainwindow>o<listbox>i8i8i8&i8
Delegate.IM_Invoke%b%o<listbox>i8i8i8&i8
AddHandler.Stub.25%b%i8i8i8&i8
Listbox.Sort%%o<listbox>
FolderDB.GetFiles%A1s%o<folderdb>so<listbox>
MainWindow.MainWindow.pop_songs_song_folders_Change%%o<mainwindow.mainwindow>o<popupmenu>
Delegate.IM_Invoke%%o<popupmenu>
AddHandler.Stub.15%%
PopupMenu.ListIndex.Set%%o<popupmenu>i4i8
MainWindow.MainWindow.Event_Open%%o<mainwindow.mainwindow>
Window.Constructor%%o<window>
MainWindow.MainWindow%o<mainwindow.mainwindow>%
App.Event_Open%%o<app>
Application._CallFunctionWithExceptionHandling%%o<application>p
REALbasic._RunFrameworkInitialization%%p
_Main
main</application></app></mainwindow.mainwindow></window></mainwindow.mainwindow></popupmenu></popupmenu></popupmenu></mainwindow.mainwindow></listbox></folderdb></listbox></listbox></listbox></mainwindow.mainwindow></locale></xojo.comparisonoptions>
I don't know how to get a stack trace, but if someone can explain, I'll gladly do it.
Thanks!
Ed B.
Warden, WA
Anonymous
Hi,
Your app crashes during sorting songs for display in the listbox. Somehow one of your song file names, although it should be reported by the file system as UTF-8 , and although the system did not complain when explicitly converting it to UTF-8, could not be processed by the regular expression library. Therefore, the comparison function reverts to the framework's String.Compare function. This apparently tries to call ToText, which, I presume, tries to convert the String to UTF-16 and to normalize it. In that process it discovers, that the song's filename is not valid UTF-8 after all.
Please inspect your system log, if OpenSong writes some debug entries to it. If it does not, please close OpenSong, then edit the file preferences.plist You should find it in the folder .opensong in your home directory. There is also a pristine copy in the "OpenSong Settings" folder below OpenSongs installation folder, which you may use as a template. Look for
<key>log</key>and the following line<dict>until the next line</dict>The integer in the line
<real>... should be between 1 and 10 (the Debug Log log level), and the<key>value in the<dict>section below<key>file</key>should beconsole.After this edit, run OpenSong again, until it terminates because of the runtime error. Then check the syslog again.
Search for a string
StringUtils.CompareHymnBookOrder:. If you find it, please report back that entire line.If you don't find such a line, it would help us if you could try to find the offending file. Do this by moving the files to some other locations. Then copy the files back in junks (i.e. some files at a time), starting OpenSong anew after each junk (or simply refreshing the songs folder from the Settings-menu). When OpenSong crashes again, you know, the offending file is in that junk you copied last. Then narrow down until you found the individual file that causes the error. Then, please, report the name of that file. Also tell us the file system type, the file is on, and whether the file was created in that place, or moved there from some other system, or possibly was synchronized with some cloud storage.
There is also a slight chance, either the regular expression library or the unicode library are corrupted on your system. I am not a linux guy, but I suppose reinstalling OpenSong should fix this, if that is the problem indeed.