Details

    • Type: Task Task
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.1
    • Component/s: Performance
    • Security Level: Public (Public: Anyone can view)
    • Labels:
      None
    • Similar issues:
      KULRICE-4969Update rice version to 1.0.3.1
      KULRICE-5108Update Quartz to the latest version
      KULRICE-13124Update saucelabs ff browser version to 31
      KULRICE-4129Update the version tags in the Rice poms for 1.0.2
      KULRICE-5029Update 1.1 Jira versions to 2.0 to reflect ARC changes
      KULRICE-4968Update readme and notice text files
      KULRICE-12565Update IntelliJ project files for the 2.5 version change
      KULRICE-4392Update sample applications to latest version of rice
      KULRICE-6980KIM update API not allowing updates unless version number is passed
    • Rice Module:
      Rice Core
    • KAI Review Status:
      Not Required
    • KTI Review Status:
      Not Required

      Description

      investigate the impact of updating from our version of JSON to the most current

        Activity

        Hide
        Erik Meade added a comment - - edited

        There is a minor version update:

        http://svn.codehaus.org/jackson/tags/1.8/1.8.8/release-notes/VERSION

          Another patch release for 1.8.
        
          Fixes:
        
          * [JACKSON-701] ArrayIndexOutOfBoundsException when trying to serialize
            non-static inner classes with annotations on last ctor param
           (reported Lloyd S)
          * [JACKSON-741] Add missing linkage from ObjectMapper to JsonFactory
           by calling 'JsonFactory.setCodec()' from ObjectMapper constructor
          * [JACKSON-753] JsonParserDelegate missing delegation of getBooleanValue(),
            getEmbeddedObject()
           (reported by Sebastian T)
          * Partial fix for [JACSON-756]: EnumMap, EnumSet work with enums that use
           @JsonCreator; regular Maps only with 1.9
           (reported by Mika M)
        
        Show
        Erik Meade added a comment - - edited There is a minor version update: http://svn.codehaus.org/jackson/tags/1.8/1.8.8/release-notes/VERSION Another patch release for 1.8. Fixes: * [JACKSON-701] ArrayIndexOutOfBoundsException when trying to serialize non- static inner classes with annotations on last ctor param (reported Lloyd S) * [JACKSON-741] Add missing linkage from ObjectMapper to JsonFactory by calling 'JsonFactory.setCodec()' from ObjectMapper constructor * [JACKSON-753] JsonParserDelegate missing delegation of getBooleanValue(), getEmbeddedObject() (reported by Sebastian T) * Partial fix for [JACSON-756]: EnumMap, EnumSet work with enums that use @JsonCreator; regular Maps only with 1.9 (reported by Mika M)
        Hide
        Erik Meade added a comment -

        There is also a major version:

        http://svn.codehaus.org/jackson/tags/1.9/1.9.4/release-notes/VERSION

        Version: 1.9.4
        
        Release date:
          20-Jan-2012
        
        Description:
          Another patch release for 1.9.
          
          Fixes:
        
          * [JACKSON-712] Issue with @JsonCreator + DefaultImpl
           (suggested by Eric T)
          * [JACKSON-744] @JsonAnySetter problems with 1.9
          * [JACKSON-746] Problems with JsonTypeInfo.Id.NONE, default typing
           (reported by Steve L)
          * [JACKSON-753] JsonParserDelegate missing delegation of getBooleanValue(),
            getEmbeddedObject()
           (reported by Sebastian T)
          * [JACKSON-756] Problems with enums, @JsonCreator, when used as keys
            of EnumMap, regular Map, or contents of EnumSet
           (reported by Mika M)
          * [JACKSON-757] Problems with Enum values, annotations on constructors
           (reported by Stephan B)
        
          (all fixes up to 1.8.8)
          
        ------------------------------------------------------------------------
        === History: ===
        ------------------------------------------------------------------------
        
        1.9.3 [16-Dec-2011]
        
          Improvements:
        
          * [JACKSON-657] Add Date/Calendar key deserializers
           (contributed by Andreas K, Tobias S)
          * [JACKSON-717] ObjectReader.updateValues(): use configured 'valueToUpdate'
          * [JACKSON-726] Add java.util.UUID key deserializer
           (suggested by Steven S)
          * [JACKSON-729] Add 'ObjectMapper.readValues(byte[])' convenience method
        
          Fixes:
        
          (all fixes up to 1.8.7)
        
        1.9.2 [04-Nov-2011]
        
          Improvements:
          
          * [JACKSON-706] Joda support: add support for "org.joda.time.Period"
            (suggested by Dain S)
          
          Fixes:
        
          * [JACKSON-700] Type problems with properties that have different types
            for constructor property, setter and/or field
           (reported by Ben H)
          * [JACKSON-703] 'SerializationConfig.isEnabled(...)',
            'DeserializationConfig.isEnabled(...)' incompatible due to signature change
        
        1.9.1 [23-Oct-2011]
        
          Fixes:
          
          * [JACKSON-687] Problems with PropertyNamingStrategy, property merging
           (reported by Pascal G)  
          * [JACKSON-689] Deserialization of Iterable fails
           (reported by Pascal G)
          * [JACKSON-693] @JsonBackReference not used during deserialization if it's annotated
           on a getter method.
           (reported by Pascal G)
        
        1.9.0 [04-Oct-2011]
        
          Fixes:
          
          * [JACKSON-539] Incorrect handling of combination of JAXB annotations
            (@XmlTransient with property renaming)
           (reported Ryan H)
          * [JACKSON-605] Handle deserialization of typed Class properties correctly
           (reported by Bruce P)
        
          Improvements:
        
          * [JACKSON-242] Rewrite property introspection part of framework to combine
            getter/setter/field annotations
          * [JACKSON-505] Handle missing type information gracefully by checking for
            abstract type mapping to find default implementation, if no valid type
            information found for @JsonTypeInfo
          * [JACKSON-531] Comparing actual and default value (for JsonSerialize.Inclusion.NON_DEFAULT)
            should check array contents
            (suggested by Christoph S)
          * [JACKSON-584] Serialize type info for non-static anonymous inner classes
            as that of declared (static) type
            (suggested by Earl B)
          * [JACKSON-593] Add ObjectMapper.readTree(byte[]), (URL) variants
           (suggested by Bruce P)
          * [JACKSON-594] Allow deserializing non-static inner class valued properties
           (suggested by Bruce P)
          * [JACKSON-595] Terse Visibility Config (ObjectMapper.setVisibility, related)
           (suggested by Bruce P)
          * [JACKSON-598] Add set of standard naming-strategy implementations
           (suggested by Bruce P)
          * [JACKSON-599] Expose Settability Of SimpleModule Serializers/Deserializers
           (suggested by Bruce P)
          * [JACKSON-606] Add Built-in Support for Date Map Keys as Timestamps
           (SerializationConfig.Feature#WRITE_DATE_KEYS_AS_TIMESTAMPS)
          * [JACKSON-612] Expose 'readValues()' methods via ObjectCodec, JsonParser
           (suggested by Bruce P)
          * [JACKSON-613] Add ArrayNode/ObjectNode methods for dealing with wrapper
            values, unboxing, nulls
           (suggested by Bruce P)
          * [JACKSON-615] Make JavaType serializable/deserializable
          * [JACKSON-616] Better handling of primitive deserializers, to avoid NPEs
           (suggested by Bruce P)
          * [JACKSON-619] SmileParser.getCurrentLocation(), getTokenLocation() did not
            report actual byte offsets.
           (reported by Ray R)
          * [JACKSON-620] Allow empty String to mean null Map, Collection, array,
            if 'DeserializationConfig.Feature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT' enabled
          * [JACKSON-621] Add new fluent method, VisibilityChecker.with(Visibility)
           (suggested by Bruce P)
          * [JACKSON-638] TypeFactory methods for constructing "raw" map or collection types
           (suggested by Christopher C)
          * [JACKSON-639] Change BasicClassIntrospector.forClassAnnotations to take
            JavaType (not raw Class)
           (requested by Chris C)
          * [JACKSON-643] ObjectMapper.readValue() should check JsonDeserializer.getNullValue()
            when encountering root-level JsonToken.VALUE_NULL
          * [JACKSON-644] Add SimpleModule.setMixInAnnotations()
          * [JACKSON-648] ObjectWriter: allow changing default serialization DateFormat
            (ObjectMapper.writer(DateFormat), ObjectWriter.withDateFormat(DateFormat))
          * [JACKSON-650] Allow dealing with missing filter ids, by adding
            'SimpleFilterProvider.setFailOnUnknownId()' to specify if exception is thrown or not.
            (suggested by Kirill S)
          * [JACKSON-661] Add shorter 'JsonNode.asXxx' methods to replace 'JsonNode.getValueAsXxx'
          * [JACKSON-662] Add 'ObjectMapper.enable()' and 'ObjectMapper.disable()' to allow
            enabling/disabling multiple features with a single call.
          * [JACKSON-665] Add 'AnnotatedWithParams.getIndex()' for accessing index of a
            method or constructor parameter
           (requested by Chistropher C)
          * [JACKSON-671] Add convenience constructor for 'MinimalPrettyPrinter'
           (requested by David P)
          * [JACKSON-683] Mr Bean: Fail gracefully if attempt is made to materialize
            non-public type (since impl class on different package than base class)
          * [JACKSON-684] Add SerializationConfig.Feature.WRITE_ENUMS_USING_INDEX to serialize
            Enums as int (index)
        
          New features:
        
          * [JACKSON-132] Support "unwrapped" properties, using @JsonUnwrapped. 
          * [JACKSON-254] Add 'SerializationConfig.Feature.WRITE_EMPTY_JSON_ARRAYS',
            which can be used to suppress serialization of empty JSON arrays (unless
            overridden by per-property annotations).
           (suggested by Fabrice D)
          * [JACKSON-406] Allow injecting of values (with @JacksonInject) during deserialization
          * [JACKSON-453] Support "external type id" with new @JsonTypeInfo.As enum value,
            EXTERNAL_PROPERTY
          * [JACKSON-558] Add 'DeserializationConfig.Feature.UNWRAP_ROOT_VALUE' as
            matching counterpart for 'SerializationConfig.Feature.WRAP_ROOT_VALUE'
           (requested by Anand H)
          * [JACKSON-578] Allow use of @JsonView on JAX-RS resource, with JacksonJsonProvider
           (suggested by Matt G)
          * [JACKSON-580] Allow registering instantiators (ValueInstantiator) for types (classes)
          * [JACKSON-581] Add 'ObjectMapper.readTree(File)'
           (suggested by Pascal G)
          * [JACKSON-602] Add 'JsonSerialize.Inclusion.NON_EMPTY' option
           (suggested by Ed A)
          * [JACKSON-614] Add JsonTypeInfo.defaultImpl property to indicate type to use if type name missing
          * [JACKSON-630] Add @JsonRootName annotation for specifying name of root-level wrapper
           (requested by Lukasz Strzelecki)
          * [JACKSON-633] Add @JsonValueInstantiator to allow annotating which ValueInstantiator
           a type uses.
          * [JACKSON-652] Add 'DeserializationConfig.Feature.USE_JAVA_ARRAY_FOR_JSON_ARRAY' to
            allow mapping JSON Array to Object[]
           (suggested by Simone B)
          * [JACKSON-653] Add 'JsonParser.isNextTokenName()' for more efficient field name matching
          * [JACKSON-666] Add 'Add SerializationConfig.Feature.REQUIRE_SETTERS_FOR_GETTERS' to allow
            suppressing use of getters for which there is no matching mutator.
          
          Issues handled by new external projects:
        
          * [JACKSON-51]: Implement Just-In-Time code generation for serialization
            created "jackson-module-afterburner" at [https://github.com/FasterXML/jackson-module-afterburner]
        
          Potential backwards compatibility issues (compared to 1.8.x):
        
          * Removed 'org.codehaus.jackson.annotate.JsonClass, JsonKeyClass and
            JsonContentClass (deprecated since 1.1)
          * Move TokenBufferDeserializer to separate class (from inside StdDeserializer)
        
        
        Show
        Erik Meade added a comment - There is also a major version: http://svn.codehaus.org/jackson/tags/1.9/1.9.4/release-notes/VERSION Version: 1.9.4 Release date: 20-Jan-2012 Description: Another patch release for 1.9. Fixes: * [JACKSON-712] Issue with @JsonCreator + DefaultImpl (suggested by Eric T) * [JACKSON-744] @JsonAnySetter problems with 1.9 * [JACKSON-746] Problems with JsonTypeInfo.Id.NONE, default typing (reported by Steve L) * [JACKSON-753] JsonParserDelegate missing delegation of getBooleanValue(), getEmbeddedObject() (reported by Sebastian T) * [JACKSON-756] Problems with enums, @JsonCreator, when used as keys of EnumMap, regular Map, or contents of EnumSet (reported by Mika M) * [JACKSON-757] Problems with Enum values, annotations on constructors (reported by Stephan B) (all fixes up to 1.8.8) ------------------------------------------------------------------------ === History: === ------------------------------------------------------------------------ 1.9.3 [16-Dec-2011] Improvements: * [JACKSON-657] Add Date/Calendar key deserializers (contributed by Andreas K, Tobias S) * [JACKSON-717] ObjectReader.updateValues(): use configured 'valueToUpdate' * [JACKSON-726] Add java.util.UUID key deserializer (suggested by Steven S) * [JACKSON-729] Add 'ObjectMapper.readValues( byte [])' convenience method Fixes: (all fixes up to 1.8.7) 1.9.2 [04-Nov-2011] Improvements: * [JACKSON-706] Joda support: add support for "org.joda.time.Period" (suggested by Dain S) Fixes: * [JACKSON-700] Type problems with properties that have different types for constructor property, setter and/or field (reported by Ben H) * [JACKSON-703] 'SerializationConfig.isEnabled(...)', 'DeserializationConfig.isEnabled(...)' incompatible due to signature change 1.9.1 [23-Oct-2011] Fixes: * [JACKSON-687] Problems with PropertyNamingStrategy, property merging (reported by Pascal G) * [JACKSON-689] Deserialization of Iterable fails (reported by Pascal G) * [JACKSON-693] @JsonBackReference not used during deserialization if it's annotated on a getter method. (reported by Pascal G) 1.9.0 [04-Oct-2011] Fixes: * [JACKSON-539] Incorrect handling of combination of JAXB annotations (@XmlTransient with property renaming) (reported Ryan H) * [JACKSON-605] Handle deserialization of typed Class properties correctly (reported by Bruce P) Improvements: * [JACKSON-242] Rewrite property introspection part of framework to combine getter/setter/field annotations * [JACKSON-505] Handle missing type information gracefully by checking for abstract type mapping to find default implementation, if no valid type information found for @JsonTypeInfo * [JACKSON-531] Comparing actual and default value ( for JsonSerialize.Inclusion.NON_DEFAULT) should check array contents (suggested by Christoph S) * [JACKSON-584] Serialize type info for non- static anonymous inner classes as that of declared ( static ) type (suggested by Earl B) * [JACKSON-593] Add ObjectMapper.readTree( byte []), (URL) variants (suggested by Bruce P) * [JACKSON-594] Allow deserializing non- static inner class valued properties (suggested by Bruce P) * [JACKSON-595] Terse Visibility Config (ObjectMapper.setVisibility, related) (suggested by Bruce P) * [JACKSON-598] Add set of standard naming-strategy implementations (suggested by Bruce P) * [JACKSON-599] Expose Settability Of SimpleModule Serializers/Deserializers (suggested by Bruce P) * [JACKSON-606] Add Built-in Support for Date Map Keys as Timestamps (SerializationConfig.Feature#WRITE_DATE_KEYS_AS_TIMESTAMPS) * [JACKSON-612] Expose 'readValues()' methods via ObjectCodec, JsonParser (suggested by Bruce P) * [JACKSON-613] Add ArrayNode/ObjectNode methods for dealing with wrapper values, unboxing, nulls (suggested by Bruce P) * [JACKSON-615] Make JavaType serializable/deserializable * [JACKSON-616] Better handling of primitive deserializers, to avoid NPEs (suggested by Bruce P) * [JACKSON-619] SmileParser.getCurrentLocation(), getTokenLocation() did not report actual byte offsets. (reported by Ray R) * [JACKSON-620] Allow empty String to mean null Map, Collection, array, if 'DeserializationConfig.Feature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT' enabled * [JACKSON-621] Add new fluent method, VisibilityChecker.with(Visibility) (suggested by Bruce P) * [JACKSON-638] TypeFactory methods for constructing "raw" map or collection types (suggested by Christopher C) * [JACKSON-639] Change BasicClassIntrospector.forClassAnnotations to take JavaType (not raw Class ) (requested by Chris C) * [JACKSON-643] ObjectMapper.readValue() should check JsonDeserializer.getNullValue() when encountering root-level JsonToken.VALUE_NULL * [JACKSON-644] Add SimpleModule.setMixInAnnotations() * [JACKSON-648] ObjectWriter: allow changing default serialization DateFormat (ObjectMapper.writer(DateFormat), ObjectWriter.withDateFormat(DateFormat)) * [JACKSON-650] Allow dealing with missing filter ids, by adding 'SimpleFilterProvider.setFailOnUnknownId()' to specify if exception is thrown or not. (suggested by Kirill S) * [JACKSON-661] Add shorter 'JsonNode.asXxx' methods to replace 'JsonNode.getValueAsXxx' * [JACKSON-662] Add 'ObjectMapper.enable()' and 'ObjectMapper.disable()' to allow enabling/disabling multiple features with a single call. * [JACKSON-665] Add 'AnnotatedWithParams.getIndex()' for accessing index of a method or constructor parameter (requested by Chistropher C) * [JACKSON-671] Add convenience constructor for 'MinimalPrettyPrinter' (requested by David P) * [JACKSON-683] Mr Bean: Fail gracefully if attempt is made to materialize non- public type (since impl class on different package than base class) * [JACKSON-684] Add SerializationConfig.Feature.WRITE_ENUMS_USING_INDEX to serialize Enums as int (index) New features: * [JACKSON-132] Support "unwrapped" properties, using @JsonUnwrapped. * [JACKSON-254] Add 'SerializationConfig.Feature.WRITE_EMPTY_JSON_ARRAYS', which can be used to suppress serialization of empty JSON arrays (unless overridden by per-property annotations). (suggested by Fabrice D) * [JACKSON-406] Allow injecting of values (with @JacksonInject) during deserialization * [JACKSON-453] Support "external type id" with new @JsonTypeInfo.As enum value, EXTERNAL_PROPERTY * [JACKSON-558] Add 'DeserializationConfig.Feature.UNWRAP_ROOT_VALUE' as matching counterpart for 'SerializationConfig.Feature.WRAP_ROOT_VALUE' (requested by Anand H) * [JACKSON-578] Allow use of @JsonView on JAX-RS resource, with JacksonJsonProvider (suggested by Matt G) * [JACKSON-580] Allow registering instantiators (ValueInstantiator) for types (classes) * [JACKSON-581] Add 'ObjectMapper.readTree(File)' (suggested by Pascal G) * [JACKSON-602] Add 'JsonSerialize.Inclusion.NON_EMPTY' option (suggested by Ed A) * [JACKSON-614] Add JsonTypeInfo.defaultImpl property to indicate type to use if type name missing * [JACKSON-630] Add @JsonRootName annotation for specifying name of root-level wrapper (requested by Lukasz Strzelecki) * [JACKSON-633] Add @JsonValueInstantiator to allow annotating which ValueInstantiator a type uses. * [JACKSON-652] Add 'DeserializationConfig.Feature.USE_JAVA_ARRAY_FOR_JSON_ARRAY' to allow mapping JSON Array to Object [] (suggested by Simone B) * [JACKSON-653] Add 'JsonParser.isNextTokenName()' for more efficient field name matching * [JACKSON-666] Add 'Add SerializationConfig.Feature.REQUIRE_SETTERS_FOR_GETTERS' to allow suppressing use of getters for which there is no matching mutator. Issues handled by new external projects: * [JACKSON-51]: Implement Just-In-Time code generation for serialization created "jackson-module-afterburner" at [https: //github.com/FasterXML/jackson-module-afterburner] Potential backwards compatibility issues (compared to 1.8.x): * Removed 'org.codehaus.jackson.annotate.JsonClass, JsonKeyClass and JsonContentClass (deprecated since 1.1) * Move TokenBufferDeserializer to separate class (from inside StdDeserializer)
        Hide
        Eric Westfall added a comment -

        Considering where we are coming up on the release (and the fact that Peter has addressed the performance issue here) I would recommend deferring such and upgrade to 2.1 or 2.2.

        Show
        Eric Westfall added a comment - Considering where we are coming up on the release (and the fact that Peter has addressed the performance issue here) I would recommend deferring such and upgrade to 2.1 or 2.2.
        Hide
        Erik Meade added a comment -

        Having investigated the 1.8.8 and 1.9.4 changes, as long as we don't start using the annotations JsonClass, JsonKeyClass, and JsonContentClass (all depreciated since 1.1) we can upgrade to 1.9.4 whenever we decide to do so.

        Show
        Erik Meade added a comment - Having investigated the 1.8.8 and 1.9.4 changes, as long as we don't start using the annotations JsonClass, JsonKeyClass, and JsonContentClass (all depreciated since 1.1) we can upgrade to 1.9.4 whenever we decide to do so.
        Hide
        Matt Sargent added a comment -

        Taking input, looks like we should put this off to 2.1 to avoid and potential issues and test more.

        -Matt

        Show
        Matt Sargent added a comment - Taking input, looks like we should put this off to 2.1 to avoid and potential issues and test more. -Matt
        Hide
        Erik Meade added a comment -

        In short 1.8.8 is faster than 1.8.7 and 1.9.4 pretty much slower than both - https://docs.google.com/a/kuali.org/spreadsheet/ccc?key=0AmemkvXEw7UrdFdxUWJZOFJXOTVISy1DYlNQYnVxX0E#gid=0

        Show
        Erik Meade added a comment - In short 1.8.8 is faster than 1.8.7 and 1.9.4 pretty much slower than both - https://docs.google.com/a/kuali.org/spreadsheet/ccc?key=0AmemkvXEw7UrdFdxUWJZOFJXOTVISy1DYlNQYnVxX0E#gid=0

          People

          • Assignee:
            Erik Meade
            Reporter:
            Matt Sargent
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Structure Helper Panel