[
https://issues.apache.org/jira/browse/IGNITE-12090?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alexandr Shapkin updated IGNITE-12090:
--------------------------------------
Description:
Logger throws KeyNotFound exception if NetToJava[type] doesn't have a _type_
key.
Looks like we need to replace it with NetToJava[directType].
{code:java}
public static void LogIndirectMappingWarning(Type type, ILogger log, string
logInfo)
{
if (type == null)
return;
var directType = GetDirectlyMappedType(type);
if (directType == type)
return;
log.Warn("{0}: Type '{1}' maps to Java type '{2}' using unchecked conversion. "
+
"This may cause issues in SQL queries. " +
"You can use '{3}' instead to achieve direct mapping.",
logInfo, type, NetToJava[type], directType);
}
{code}
Steps to reproduce:
Define a QueryEntity with a sbyte? nullable field, try to create a cache. The
reproducer is attached.
was:
Ignite.NET.
Using 'sbyte?' field for value causes KeyNotFound exception during cache
creation (field's type validation), when Ignite attempts to print type's name
into log.
# {{I don't really understand why .Net's sbyte is considered not directly
mappable to java.byte
([https://github.com/apache/ignite/blob/56975c266e7019f307bb9da42333a6db4e47365e/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/JavaTypes.cs#L54)]
? }}{{Also it is not consistent with other indirect mapping (usigned ->
signed)}}
# {{Access to NetToJava dictionary
([https://github.com/apache/ignite/blob/56975c266e7019f307bb9da42333a6db4e47365e/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/JavaTypes.cs#L109])
should be safeguarded (NetToJava doesn't have entries for nullable types)}}
{{Code example in attachment}}
> .NET logging exception when creating cache from code if value has 'sbyte?'
> field
> --------------------------------------------------------------------------------
>
> Key: IGNITE-12090
> URL: https://issues.apache.org/jira/browse/IGNITE-12090
> Project: Ignite
> Issue Type: Bug
> Components: binary, platforms
> Affects Versions: 2.7.5
> Reporter: Denis Zakharov
> Assignee: Alexandr Shapkin
> Priority: Critical
> Labels: .NET
> Attachments: a.cs
>
>
>
> Logger throws KeyNotFound exception if NetToJava[type] doesn't have a _type_
> key.
> Looks like we need to replace it with NetToJava[directType].
> {code:java}
> public static void LogIndirectMappingWarning(Type type, ILogger log, string
> logInfo)
> {
> if (type == null)
> return;
> var directType = GetDirectlyMappedType(type);
> if (directType == type)
> return;
> log.Warn("{0}: Type '{1}' maps to Java type '{2}' using unchecked conversion.
> " +
> "This may cause issues in SQL queries. " +
> "You can use '{3}' instead to achieve direct mapping.",
> logInfo, type, NetToJava[type], directType);
> }
> {code}
>
> Steps to reproduce:
> Define a QueryEntity with a sbyte? nullable field, try to create a cache. The
> reproducer is attached.
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)