google-code-export / morphia

Automatically exported from code.google.com/p/morphia
1 stars 0 forks source link

Bug for null value in map #360

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What version are you using? (Morphia/Driver/MongoDB)
:0.98 && 0.99 

Please include a stack trace below:
Caused by: java.lang.RuntimeException: java.lang.NullPointerException
                at com.google.code.morphia.mapping.ValueMapper.toDBObject(ValueMapper.java:19)
                at com.google.code.morphia.mapping.Mapper.writeMappedField(Mapper.java:527)
                at com.google.code.morphia.mapping.Mapper.toDBObject(Mapper.java:442)
                ... 17 more
               Caused by: java.lang.NullPointerException
                at com.google.code.morphia.converters.DefaultConverters.encode(DefaultConverters.java:207)
                at com.google.code.morphia.converters.MapOfValuesConverter.encode(MapOfValuesConverter.java:55)
                at com.google.code.morphia.converters.TypeConverter.encode(TypeConverter.java:52)
                at com.google.code.morphia.converters.DefaultConverters.encode(DefaultConverters.java:211)
                at com.google.code.morphia.converters.DefaultConverters.encode(DefaultConverters.java:207)
                at com.google.code.morphia.converters.IterableConverter.encode(IterableConverter.java:106)
                at com.google.code.morphia.converters.DefaultConverters.toDBObject(DefaultConverters.java:190)
                at com.google.code.morphia.mapping.ValueMapper.toDBObject(ValueMapper.java:17)

cause :
in : com\google\code\morphia\converters\MapOfValuesConverter.java
@line 55:
==> mapForDb.put(strKey, converters.encode(entry.getValue()));

please check the null value before encode.3ks

I use this line to fix it :
mapForDb.put(strKey, entry.getValue() != null ? 
converters.encode(entry.getValue()) : null);

Original issue reported on code.google.com by yuehu...@gmail.com on 13 Dec 2011 at 6:21

GoogleCodeExporter commented 9 years ago
From what I saw in trunk svn, this issue has been fixed in rev 1751 

DefaultConverters.java:

    public Object encode(Object o) {
        if (o == null)
            return null;
        return encode(o.getClass(), o);
    }

Original comment by csoulios@gmail.com on 18 Dec 2011 at 11:54

GoogleCodeExporter commented 9 years ago

Original comment by scotthernandez on 19 Dec 2011 at 2:39