Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-2147

qpidc-0.5 and SVN r825362 does not compile (getEffectiveBooleanValue not a member of ResultImpl)

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Won't Fix
    • 0.5
    • 0.5
    • None
    • qpidc-0.5, qpid (SVN r825362) Ubuntu 8.04 (32 Bit), xerces-c-3.0.1, XQilla-2.2.2, CMake 2.6-patch 2

    Description

      THIS IS NO BUG, SINCE I DIDN'T READ THE INSTALLATION INSTRUCTIONS CAREFULLY ENOUGH! As you can see from my environment description, I used the wrong versions of Xerces-C and XQilla. With Xerces-C 2.8.0 (I couldn't find the 2.7.0 here: http://www.apache.org/dist/xerces/c/2/sources/) and XQilla 2.2.0 everything works fine.

      Hello,

      I recently tried to compile the C++ broker and client (http://www.apache.org/dist/qpid/0.5/qpid-cpp-0.5.tar.gz) and got the following error (see below). The same issue arrises when trying to compile the latest SVN revision r825362. From this commit log http://www.mail-archive.com/commits@qpid.apache.org/msg00925.html it seems that the lines causing trouble have been in the repo for quite some time (Feb 27 2009). Am I doing something wrong? I manually downloaded, compiled and installed xerces-c and xqilla. All the other required packages were taken from the Ubuntu repository.

      This is the function causing trouble:

      bool XmlExchange::matches(Query& query, Deliverable& msg, const qpid::framing::FieldTable* args, bool parse_message_content)
      {
      string msgContent;

      try {
      QPID_LOG(trace, "matches: query is [" << UTF8(query->getQueryText()) << "]");

      boost::scoped_ptr<DynamicContext> context(query->createDynamicContext());
      if (!context.get())

      { throw InternalErrorException(QPID_MSG("Query context looks munged ...")); }

      if (parse_message_content) {

      msg.getMessage().getFrames().getContent(msgContent);

      QPID_LOG(trace, "matches: message content is [" << msgContent << "]");

      XERCES_CPP_NAMESPACE::MemBufInputSource xml((const XMLByte*) msgContent.c_str(),
      msgContent.length(), "input" );

      // This will parse the document using either Xerces or FastXDM, depending
      // on your XQilla configuration. FastXDM can be as much as 10x faster.

      Sequence seq(context->parseDocument(xml));

      if(!seq.isEmpty() && seq.first()->isNode())

      { context->setContextItem(seq.first()); context->setContextPosition(1); context->setContextSize(1); }

      }

      if (args) {
      FieldTable::ValueMap::const_iterator v = args->begin();
      for(; v != args->end(); ++v) {
      // ### TODO: Do types properly
      if (v->second->convertsTo<std::string>())

      { QPID_LOG(trace, "XmlExchange, external variable: " << v->first << " = " << v->second->getData().getString().c_str()); Item::Ptr value = context->getItemFactory()->createString(X(v->second->getData().getString().c_str()), context.get()); context->setExternalVariable(X(v->first.c_str()), value); }

      }
      }

      Result result = query->execute(context.get());
      return result->getEffectiveBooleanValue(context.get(), 0);
      }
      catch (XQException& e)

      { QPID_LOG(warning, "Could not parse XML content (or message headers):" << msgContent); }

      catch (...)

      { QPID_LOG(warning, "Unexpected error routing message: " << msgContent); }

      return 0;
      }

      Thanks in advance
      Konrad

      kleine@dyn-111:/home/kleine/qpidc-0.5$ make
      Making all in managementgen
      make[1]: Entering directory `/home/kleine/qpidc-0.5/managementgen'
      make[1]: Nothing to be done for `all'.
      make[1]: Leaving directory `/home/kleine/qpidc-0.5/managementgen'
      Making all in etc
      make[1]: Entering directory `/home/kleine/qpidc-0.5/etc'
      make[1]: Nothing to be done for `all'.
      make[1]: Leaving directory `/home/kleine/qpidc-0.5/etc'
      Making all in src
      make[1]: Entering directory `/home/kleine/qpidc-0.5/src'
      make all-recursive
      make[2]: Entering directory `/home/kleine/qpidc-0.5/src'
      Making all in .
      make[3]: Entering directory `/home/kleine/qpidc-0.5/src'
      depbase=`echo qpid/xml/XmlExchange.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
      /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -Igen -I./gen -Werror -pedantic -Wall -Wextra -Wno-shadow -Wpointer-arith -Wcast-qual -Wcast-align -Wno-long-long -Wvolatile-register-var -Winvalid-pch -Wno-system-headers -Woverloaded-virtual -g -O2 -MT qpid/xml/XmlExchange.lo -MD -MP -MF $depbase.Tpo -c -o qpid/xml/XmlExchange.lo qpid/xml/XmlExchange.cpp &&\
      mv -f $depbase.Tpo $depbase.Plo
      g++ -DHAVE_CONFIG_H -I. -Igen -I./gen -Werror -pedantic -Wall -Wextra -Wno-shadow -Wpointer-arith -Wcast-qual -Wcast-align -Wno-long-long -Wvolatile-register-var -Winvalid-pch -Wno-system-headers -Woverloaded-virtual -g -O2 -MT qpid/xml/XmlExchange.lo -MD -MP -MF qpid/xml/.deps/XmlExchange.Tpo -c qpid/xml/XmlExchange.cpp -fPIC -DPIC -o qpid/xml/.libs/XmlExchange.o
      qpid/xml/XmlExchange.cpp: In member function 'bool qpid::broker::XmlExchange::matches(boost::shared_ptr<XQQuery>&, qpid::broker::Deliverable&, const qpid::framing::FieldTable*, bool)':
      qpid/xml/XmlExchange.cpp:182: error: 'class ResultImpl' has no member named 'getEffectiveBooleanValue'
      make[3]: *** [qpid/xml/XmlExchange.lo] Error 1
      make[3]: Leaving directory `/home/kleine/qpidc-0.5/src'
      make[2]: *** [all-recursive] Error 1
      make[2]: Leaving directory `/home/kleine/qpidc-0.5/src'
      make[1]: *** [all] Error 2
      make[1]: Leaving directory `/home/kleine/qpidc-0.5/src'
      make: *** [all-recursive] Error 1

      Attachments

        Activity

          People

            Unassigned Unassigned
            konrad Konrad Kleine
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: