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

                 Key: QPID-2147
                 URL: https://issues.apache.org/jira/browse/QPID-2147
             Project: Qpid
          Issue Type: Bug
          Components: Build Tools, C++ Broker, C++ Client
    Affects Versions: 0.5
         Environment: 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
            Reporter: Konrad Kleine
             Fix For: 0.5


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/[email protected]/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

kle...@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




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to