diff --git a/OpenSim/Region/PhysicsModules/BulletS/BSParam.cs b/OpenSim/Region/PhysicsModules/BulletS/BSParam.cs index e8d9407e13..75c615f61a 100755 --- a/OpenSim/Region/PhysicsModules/BulletS/BSParam.cs +++ b/OpenSim/Region/PhysicsModules/BulletS/BSParam.cs @@ -351,6 +351,19 @@ namespace OpenSim.Region.PhysicsModule.BulletS { // Get the generic type of the setter Type genericType = setter.GetType().GetGenericArguments()[0]; + if (genericType == typeof(string)) + { + try + { + setter(s, defaultValue); + } + catch + { + s.Logger.Error($"{LogHeader} Failed setting string parameter value '{valAsString}'"); + } + return; + } + // Find the 'Parse' method on that type System.Reflection.MethodInfo parser = null; try @@ -359,8 +372,8 @@ namespace OpenSim.Region.PhysicsModule.BulletS } catch (Exception e) { - s.Logger.ErrorFormat("{0} Exception getting parser for type '{1}': {2}", LogHeader, genericType, e); - parser = null; + s.Logger.Error($"{LogHeader} Exception getting parser for type '{genericType}': {e.Message}"); + return; } if (parser != null) { @@ -374,13 +387,11 @@ namespace OpenSim.Region.PhysicsModule.BulletS } catch { - s.Logger.ErrorFormat("{0} Failed parsing parameter value '{1}' as type '{2}'", LogHeader, valAsString, genericType); + s.Logger.Error($"{LogHeader} Failed parsing parameter value '{valAsString}' as type '{genericType}'"); } } else - { - s.Logger.ErrorFormat("{0} Could not find parameter parser for type '{1}'", LogHeader, genericType); - } + s.Logger.Error($"{LogHeader} Could not find parameter parser for type '{genericType}'"); } public override bool HasSetOnObject {