1 Reply Latest reply on May 17, 2013 2:01 PM by JoeHolder

    problem with COH_MANAGED_BOX_UPDATER


      I'm trying to update a variable selection of properties from a C++ program. I have a java implementation of the class.

      The simplest case I have is

                String::View txn_id_v = String::create(m_transaction_id);

                ValueUpdater::Handle txn_id_updater =
                     COH_MANAGED_BOX_UPDATER(     conversation_t,
                                                   String::View) ;

                UpdaterProcessor::Handle txn_id_processor =
                     UpdaterProcessor::create(     txn_id_updater,

                Managed<grid::call_id_t>::Handle key = Managed<grid::call_id_t>::create( m_call_id );

                if (cache->containsKey(key))
                          cache->invoke(key, txn_id_processor);
                     catch (Exception::View vex)
                          std::stringstream err;
                          err << vex;

      The Exception I get is

      +          _Stringbuffer     {_Seekhigh=0x00d49c48 "coherence::lang::IllegalArgumentException: unknown user type: coherence::util::extractor::BoxUpdater<class coherence::lang::String::StringHandle<class coherence::lang::String const >,class com::thomsonreuters::transactions::grid::conversation_t,&public: void __thiscall com::thomsonreuters::transactions::grid::conversation_t::set_transaction_id(class std::basic_string<char,      std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >

      I can put and get these conversation_t classes to the cache and I can view them with CohQL - so I don't get why the updater processor is not working.

      I can't find any use of the COH_MANAGED_BOX_UPDATER in the examples.


        • 1. Re: problem with COH_MANAGED_BOX_UPDATER
          I still can't get the COH_MANAGED_BOX_UPDATER to work but I have managed to get the POFUpdater to work -

          some example code

                         if ( m_accumulated_changes_mask.test(POF_CONV_END_CONTACT_REASON_IDX) )
                    Integer32::View end_contact_reason_v = Integer32::create((__int32) m_end_contact_reason);

          extractor::PofUpdater::View end_contact_reason_updater =

          UpdaterProcessor::Handle end_contact_reason_processor =
          UpdaterProcessor::create( end_contact_reason_updater,

          conversation_updaters_array[updaters_index++] = end_contact_reason_processor;


          I would still like to know what the problem is with the box updater even though I probably wont use it.

          Edited by: JoeHolder on May 17, 2013 7:00 AM