[ 
https://issues.apache.org/jira/browse/QPID-2147?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Konrad Kleine updated QPID-2147:
--------------------------------

    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/[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




  was:
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 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.

> 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
>
>         Attachments: XmlExchange.cpp
>
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> 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/[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