[ 
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)

Reply via email to