Purify error with std::string, -xarch=v8plusa -mt

Using WS6U2, latest patches, on Solaris 8 with latest patch cluster (as of a few days ago):
string.cpp:
#include <string>
using namespace std;
int main(int argc, char * argv[])
   string val1 = "hello";
   string val2 = "world";
   string copy( val1 );
   copy = val2;
   return 0;
CC -V
CC: Sun WorkShop 6 update 2 C++ 5.3 Patch 111685-12 2002/12/16
purify -versionVersion 2002a.06.00 Solaris 2
purify -always-use-cache-dir -cache-dir=`pwd`/cache CC -g -xarch=v8plusa -mt string.cpp -o stringAnd we get some rather nasty errors: three Free Memory Reads, two Free Memory Writes, and one Freeing Unallocated Memory. However, remove either of the "-mt" or "-xarch=v8plusa" options, and all is well - no memory errors at all. So it seems that this problem only affects the multithreaded v8plusa specific implementation of std::string.
In the case where it fails ("-mt -xarch=v8plusa"), purify complains as follows:
**** Purify instrumented string (pid 13888 at Tue Feb 18 16:42:31 2003)
* Purify 2002a.06.00 Solaris 2 (32-bit) Copyright (C) 1992-2002 Rational Software Corp. All rights reserved.
* For contact information type: "purify -help"
* For TTY output, use the option "-windows=no"
* Command-line: ./string
* Options settings: -max-threads=2500 -follow-child-processes=yes \
-leaks-at-exit=yes -chain-length=16 -report-pmrs=yes -threads=yes -purify \
-always-use-cache-dir \
-cache-dir=/home/rational/src/experiments/string/cache \
-purify-home=/usr/local/software/rational/releases/purify.sol.2002a.06.00 \
-threads=yes -use-internal-locks=yes -thread_stack_change=0x4000 \
-mt_safe_malloc=yes
* License successfully checked out.
* Command-line: ./string
**** Purify instrumented string (pid 13888) ****
FMR: Free memory read:
* This is occurring while in:
     long __rwstd::__string_ref<char,std::char_traits<char>,std::allocator<char> >::__references()const [string_ref:193]
     void std::basic_string<char,std::char_traits<char>,std::allocator<char> >::__unLink() [string:913]
     std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string() [string:297]
     main [string.cpp:15]
     _start         [crt1.o]
* Reading 4 bytes from 0xa6d30 in the heap.
* Address 0xa6d30 is 24 bytes into a freed block at 0xa6d18 of 47 bytes.
* This block was allocated from:
     malloc [rtlib.o]
     c2n6Fi_Pv___1 [libCrun.so.1]
     void*operator new(unsigned) [rtlib.o]
     __rwstd::__string_ref<char,std::char_traits<char>,std::allocator<char> >*std::basic_string<char,std::char_traits<char>,std::allocator<char> >::__getRep(unsigned,unsigned) [libCstd.so.1]
     std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string(const char*,const std::allocator<char>&) [libCstd.so.1]
     main [string.cpp:9]
     _start         [crt1.o]
* There have been 0 frees since this block was freed from:
     free [rtlib.o]
     c2k6FPv_v___1 [libCrun.so.1]
     void operator delete(void*) [rtlib.o]
     std::basic_string<char,std::char_traits<char>,std::allocator<char> >&std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator=(const std::basic_string<char,std::char_traits<char>,std::allocator<char> >&) [libCstd.so.1]
     main [string.cpp:13]
     _start         [crt1.o]
**** Purify instrumented string (pid 13888) ****
FMR: Free memory read:
* This is occurring while in:
     pthread_mutex_destroy [libthread.so.1]
     RWSTDMutex::~RWSTDMutex() [stdmutex.h:167]
     __rwstd::__string_ref_rep<std::allocator<char> >::~__string_ref_rep #Nvariant 1() [string.cpp]
     __rwstd::__string_ref<char,std::char_traits<char>,std::allocator<char> >::~__string_ref() [string.cpp]
     void __rwstd::__destroy<__rwstd::__string_ref<char,std::char_traits<char>,std::allocator<char> > >(__type_0*) [memory:177]
     void std::allocator_interface<std::allocator<char>,__rwstd::__string_ref<char,std::char_traits<char>,std::allocator<char> > >::destroy(__rwstd::__string_ref<char,std::char_traits<char>,std::allocator<char> >*) [memory:513]
     void std::basic_string<char,std::char_traits<char>,std::allocator<char> >::__unLink() [string:915]
     std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string() [string:297]
     main [string.cpp:15]
     _start         [crt1.o]
* Reading 2 bytes from 0xa6d18 in the heap.
* Address 0xa6d18 is at the beginning of a freed block of 47 bytes.
* This block was allocated from:
     malloc [rtlib.o]
     c2n6Fi_Pv___1 [libCrun.so.1]
     void*operator new(unsigned) [rtlib.o]
     __rwstd::__string_ref<char,std::char_traits<char>,std::allocator<char> >*std::basic_string<char,std::char_traits<char>,std::allocator<char> >::__getRep(unsigned,unsigned) [libCstd.so.1]
     std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string(const char*,const std::allocator<char>&) [libCstd.so.1]
     main [string.cpp:9]
     _start         [crt1.o]
* There have been 0 frees since this block was freed from:
     free [rtlib.o]
     c2k6FPv_v___1 [libCrun.so.1]
     void operator delete(void*) [rtlib.o]
     std::basic_string<char,std::char_traits<char>,std::allocator<char> >&std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator=(const std::basic_string<char,std::char_traits<char>,std::allocator<char> >&) [libCstd.so.1]
     main [string.cpp:13]
     _start         [crt1.o]
**** Purify instrumented string (pid 13888) ****
FMW: Free memory write:
* This is occurring while in:
     pthread_mutex_destroy [libthread.so.1]
     RWSTDMutex::~RWSTDMutex() [stdmutex.h:167]
     __rwstd::__string_ref_rep<std::allocator<char> >::~__string_ref_rep #Nvariant 1() [string.cpp]
     __rwstd::__string_ref<char,std::char_traits<char>,std::allocator<char> >::~__string_ref() [string.cpp]
     void __rwstd::__destroy<__rwstd::__string_ref<char,std::char_traits<char>,std::allocator<char> > >(__type_0*) [memory:177]
     void std::allocator_interface<std::allocator<char>,__rwstd::__string_ref<char,std::char_traits<char>,std::allocator<char> > >::destroy(__rwstd::__string_ref<char,std::char_traits<char>,std::allocator<char> >*) [memory:513]
     void std::basic_string<char,std::char_traits<char>,std::allocator<char> >::__unLink() [string:915]
     std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string() [string:297]
     main [string.cpp:15]
     _start         [crt1.o]
* Writing 2 bytes to 0xa6d1e in the heap.
* Address 0xa6d1e is 6 bytes into a freed block at 0xa6d18 of 47 bytes.
* This block was allocated from:
     malloc [rtlib.o]
     c2n6Fi_Pv___1 [libCrun.so.1]
     void*operator new(unsigned) [rtlib.o]
     __rwstd::__string_ref<char,std::char_traits<char>,std::allocator<char> >*std::basic_string<char,std::char_traits<char>,std::allocator<char> >::__getRep(unsigned,unsigned) [libCstd.so.1]
     std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string(const char*,const std::allocator<char>&) [libCstd.so.1]
     main [string.cpp:9]
     _start         [crt1.o]
* There have been 0 frees since this block was freed from:
     free [rtlib.o]
     c2k6FPv_v___1 [libCrun.so.1]
     void operator delete(void*) [rtlib.o]
     std::basic_string<char,std::char_traits<char>,std::allocator<char> >&std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator=(const std::basic_string<char,std::char_traits<char>,std::allocator<char> >&) [libCstd.so.1]
     main [string.cpp:13]
     _start         [crt1.o]
**** Purify instrumented string (pid 13888) ****
FMW: Free memory write:
* This is occurring while in:
     pthread_mutex_destroy [libthread.so.1]
     RWSTDMutex::~RWSTDMutex() [stdmutex.h:167]
     __rwstd::__string_ref_rep<std::allocator<char> >::~__string_ref_rep #Nvariant 1() [string.cpp]
     __rwstd::__string_ref<char,std::char_traits<char>,std::allocator<char> >::~__string_ref() [string.cpp]
     void __rwstd::__destroy<__rwstd::__string_ref<char,std::char_traits<char>,std::allocator<char> > >(__type_0*) [memory:177]
     void std::allocator_interface<std::allocator<char>,__rwstd::__string_ref<char,std::char_traits<char>,std::allocator<char> > >::destroy(__rwstd::__string_ref<char,std::char_traits<char>,std::allocator<char> >*) [memory:513]
     void std::basic_string<char,std::char_traits<char>,std::allocator<char> >::__unLink() [string:915]
     std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string() [string:297]
     main [string.cpp:15]
     _start         [crt1.o]
* Writing 2 bytes to 0xa6d18 in the heap.
* Address 0xa6d18 is at the beginning of a freed block of 47 bytes.
* This block was allocated from:
     malloc [rtlib.o]
     c2n6Fi_Pv___1 [libCrun.so.1]
     void*operator new(unsigned) [rtlib.o]
     __rwstd::__string_ref<char,std::char_traits<char>,std::allocator<char> >*std::basic_string<char,std::char_traits<char>,std::allocator<char> >::__getRep(unsigned,unsigned) [libCstd.so.1]
     std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string(const char*,const std::allocator<char>&) [libCstd.so.1]
     main [string.cpp:9]
     _start         [crt1.o]
* There have been 0 frees since this block was freed from:
     free [rtlib.o]
     c2k6FPv_v___1 [libCrun.so.1]
     void operator delete(void*) [rtlib.o]
     std::basic_string<char,std::char_traits<char>,std::allocator<char> >&std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator=(const std::basic_string<char,std::char_traits<char>,std::allocator<char> >&) [libCstd.so.1]
     main [string.cpp:13]
     _start         [crt1.o]
**** Purify instrumented string (pid 13888) ****
FMR: Free memory read:
* This is occurring while in:
     unsigned std::basic_string<char,std::char_traits<char>,std::allocator<char> >::length()const [string:1346]
     void std::basic_string<char,std::char_traits<char>,std::allocator<char> >::__unLink() [string:916]
     std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string() [string:297]
     main [string.cpp:15]
     _start         [crt1.o]
* Reading 4 bytes from 0xa6d38 in the heap.
* Address 0xa6d38 is 32 bytes into a freed block at 0xa6d18 of 47 bytes.
* This block was allocated from:
     malloc [rtlib.o]
     c2n6Fi_Pv___1 [libCrun.so.1]
     void*operator new(unsigned) [rtlib.o]
     __rwstd::__string_ref<char,std::char_traits<char>,std::allocator<char> >*std::basic_string<char,std::char_traits<char>,std::allocator<char> >::__getRep(unsigned,unsigned) [libCstd.so.1]
     std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string(const char*,const std::allocator<char>&) [libCstd.so.1]
     main [string.cpp:9]
     _start         [crt1.o]
* There have been 0 frees since this block was freed from:
     free [rtlib.o]
     c2k6FPv_v___1 [libCrun.so.1]
     void operator delete(void*) [rtlib.o]
     std::basic_string<char,std::char_traits<char>,std::allocator<char> >&std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator=(const std::basic_string<char,std::char_traits<char>,std::allocator<char> >&) [libCstd.so.1]
     main [string.cpp:13]
     _start         [crt1.o]
**** Purify instrumented string (pid 13888) ****
FUM: Freeing unallocated memory:
* This is occurring while in:
     free [rtlib.o]
     c2k6FPv_v___1 [libCrun.so.1]
     void operator delete(void*) [rtlib.o]
     void std::allocator<char>::deallocate(void*,unsigned) [memory:396]
     void std::allocator_interface<std::allocator<char>,char>::deallocate(char*,unsigned) [memory:493]
     void std::basic_string<char,std::char_traits<char>,std::allocator<char> >::__unLink() [string:916]
     std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string() [string:297]
     main [string.cpp:15]
     _start         [crt1.o]
* Attempting to free block at 0xa6d18 already freed.
* This block was allocated from:
     malloc [rtlib.o]
     c2n6Fi_Pv___1 [libCrun.so.1]
     void*operator new(unsigned) [rtlib.o]
     __rwstd::__string_ref<char,std::char_traits<char>,std::allocator<char> >*std::basic_string<char,std::char_traits<char>,std::allocator<char> >::__getRep(unsigned,unsigned) [libCstd.so.1]
     std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string(const char*,const std::allocator<char>&) [libCstd.so.1]
     main [string.cpp:9]
     _start         [crt1.o]
* There have been 1 frees since this block was freed from:
     free [rtlib.o]
     c2k6FPv_v___1 [libCrun.so.1]
     void operator delete(void*) [rtlib.o]
     std::basic_string<char,std::char_traits<char>,std::allocator<char> >&std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator=(const std::basic_string<char,std::char_traits<char>,std::allocator<char> >&) [libCstd.so.1]
     main [string.cpp:13]
     _start         [crt1.o]
**** Purify instrumented string (pid 13888) ****
Current file descriptors in use: 5
FIU: file descriptor 0: <stdin>
FIU: file descriptor 1: <stdout>
FIU: file descriptor 2: <stderr>
FIU: file descriptor 26: <reserved for Purify internal use>
FIU: file descriptor 27: <reserved for Purify internal use>
**** Purify instrumented string (pid 13888) ****
Purify: Searching for all memory leaks...
Memory leaked: 0 bytes (0%); potentially leaked: 0 bytes (0%)
Purify Heap Analysis (combining suppressed and unsuppressed blocks)
Blocks Bytes
Leaked 1 47
Potentially Leaked 3 107
In-Use 26 123707
Total Allocated 30 123861
**** Purify instrumented string (pid 13888) ****
Thread Summary : 1 threads in existence
* Thread 0 [main thread]
Stack Limit : (0xff3f0000 0xffbf0000), size = 0x800000
**** Purify instrumented string (pid 13888) ****
* Program exited with status code 0.
* 6 access errors, 6 total occurrences.
* 0 bytes leaked.
* 0 bytes potentially leaked.
* Basic memory usage (including Purify overhead):
331996 code
92532 data/bss
131072 heap (peak use)
1856 stack
* Shared library memory usage (including Purify overhead):
1456 libpure_solaris2_init.so.1 (shared code)
252 libpure_solaris2_init.so.1 (private data)
2255839 libCstd.so.1_pure_p3_c0_105022037_58_32_3592668S (shared code)
28588 libCstd.so.1_pure_p3_c0_105022037_58_32_3592668S (private data)
54269 libCrun.so.1_pure_p3_c0_105022037_58_32_1244656S (shared code)
24688 libCrun.so.1_pure_p3_c0_105022037_58_32_1244656S (private data)
139048 libm.so.1_pure_p3_c0_105022037_58_32_1289524S (shared code)
1224 libm.so.1_pure_p3_c0_105022037_58_32_1289524S (private data)
3968 libw.so.1_pure_p3_c0_105022037_58_32_1187000S (shared code)
0 libw.so.1_pure_p3_c0_105022037_58_32_1187000S (private data)
132888 libthread.so.1_pure_p3_c0_105022037_58_32_1408248S (shared code)
26192 libthread.so.1_pure_p3_c0_105022037_58_32_1408248S (private data)
1105144 libc.so.1_pure_p3_c0_105022037_58_32_1180272S (shared code)
111036 libc.so.1_pure_p3_c0_105022037_58_32_1180272S (private data)
2404 libdl.so.1_pure_p3_c0_105022037_58_32_5292S (shared code)
4 libdl.so.1_pure_p3_c0_105022037_58_32_5292S (private data)
13192 libinternal_stubs.so.1 (shared code)
932 libinternal_stubs.so.1 (private data)
31866 librt.so.1_pure_p3_c0_105022037_58_32_1269024S (shared code)
2044 librt.so.1_pure_p3_c0_105022037_58_32_1269024S (private data)
44541 libaio.so.1_pure_p3_c0_105022037_58_32_1227208S (shared code)
6104 libaio.so.1_pure_p3_c0_105022037_58_32_1227208S (private data)
14112 libc_psr.so.1_pure_p3_c0_105022037_58_32 (shared code)
0 libc_psr.so.1_pure_p3_c0_105022037_58_32 (private data)

I've run this same testcase with -xarch={generic,v8,v8a,v8plus,v8plusa,v9,v9a}, which are the only architectures I can try. Both -xarch=v8plus and -xarch=v8plusa generate code which has the issues identified above. All of the other targets are OK according to purify. What I don't understand is that the symlinks in the SUNWspro/lib/{arch} directories for all of the v8 variants point to the same libCstd in /usr/lib.
I've also upgraded to the newest version of purify from Rational:
purify -versionVersion 2003.06.00 Solaris 2
Could someone from Sun please see if they can reproduce this problem?
Thanks.

Similar Messages

  • 12.4 Beta, Error: Could not find a match for std::_Tuple_impl 0, std::string && ::_Tuple_impl(std::tuple std::string &&

    Hi,
    would you guys say code that compiles fine without -std=c++11 should also compile *with* -std=c++11?
    raider@sol112_x86:/tmp $ CC -V
    CC: Sun C++ 5.13 SunOS_i386 Beta2 2014/06/17
    raider@sol112_x86:/tmp $ CC buggy.cc  
    raider@sol112_x86:/tmp $ CC -std=c++11 buggy.cc         
    Error: Could not find a match for std::_Tuple_impl<0, std::string &&>::_Tuple_impl(std::tuple<std::string &&>, std::string ) needed in std::tuple<std::string &&>::tuple<std::string, void>(std::string &&).
    "/opt/SolarisStudio12.4-beta_jul14-solaris-x86/lib/compilers/CC-gcc/include/c++/4.8.2/tuple", line 868:     Where: While instantiating "std::tuple<std::string &&>::tuple<std::string, void>(std::string &&)".
    "/opt/SolarisStudio12.4-beta_jul14-solaris-x86/lib/compilers/CC-gcc/include/c++/4.8.2/tuple", line 868:     Where: Instantiated from std::forward_as_tuple<std::string>(std::string &&).
    "/opt/SolarisStudio12.4-beta_jul14-solaris-x86/lib/compilers/CC-gcc/include/c++/4.8.2/bits/stl_map.h", line 485:     Where: Instantiated from non-template code.
    1 Error(s) detected.
    raider@sol112_x86:/tmp $ cat buggy.cc
    #include <map>
    #include <string>
    typedef std::map<std::string, std::string> StrStrMap;
    int main(void)
        StrStrMap dict;
        dict["bug"] = "feature";
        return 0;

    C++11 is approximately a superset of C++03. If you write in the common subset, the code will compile in any mode. For example, a basic hello-world program
    #include <iostream>
    int main() { std::cout << "Hello, world!\n"; }
    will compile and run as C++98/03, as C++11, as C++14, and I'm sure will also work with the next standard, planned for 2017.
    But if you use syntax or library types and functions that are new in C++11, the code will not compile as C++03.
    In my previous post, I might have sounded too negative about compiling C++03 code in C++11 mode. If you have a C++03 program that is intended to be portable, and that works with different compilers on different platforms, chances are good that it will continue to work in C++11. The chances are very good that only minor modifications will be needed.

  • Error synchroniz​ing with Windows 7 Contacts: "CRADSData​base ERROR (5211): There is an error converting Unicode string to or from code page string"

    CRADSDatabase ERROR (5211): There is an error converting Unicode string to or from code page string
    Device          Blackberry Z10
    Sw release  10.2.1.2977
    OS Version  10.2.1.3247
    The problem is known by Blackberry but they didn't make a little effort to solve this problem and they wonder why nobody buy Blackberry. I come from Android platform and I regret buying Blackberry: call problems(I sent it to service because the people that I was talking with couldn't hear me), jack problems (the headphones does not work; I will send it again to service). This synchronisation problem is "the drop that fills the glass". Please don't buy Blackberry any more.
    http://btsc.webapps.blackberry.com/btsc/viewdocume​nt.do?noCount=true&externalId=KB33098&sliceId=2&di​...

    This is a Windows registry issue, if you search the Web using these keywords:
    "how to fix craddatabase error 5211"       you will find a registry editor that syas it can fix this issue.

  • Error: "div" declaration conflicts with "std::div(long, long)"

    I am using the STLport downloaded from http://www.stlport.com/ on a Solaris 9 machine having sun_studio 11. I am getting the following compilation errors related to STL. The same code used to compile with the sun_studio 9 compiler.
    /builds/isv/solaris/STLport/4.5/stlport/cstdlib", line 92
    : Error: "div" declaration conflicts with "std::div(long, long)" introduced by using declaration.
    "/builds/aseries/isv/athabasca/isv/solaris/STLport/4.5/stlport/cstdlib", line 92: Error: std::div(long, long) already had a body defined.
    2 Error(s) detected.
    What can be the possible solution to this problem? As of now I want to continue using this STL library rather than that which comes along with the compiler.
    Thanks.

    The issue is whether the standard headers associated with the compiler have the overloads required by the standard. If the required overloads are present, the original call of std::pow is ambiguous, and the compiler will report it.
    If you have a recent version of Visual C++, I'd be very surprised if the function overloads were not available. Possibly you are using a compiler option, perhaps a default option, that hides the overloaded declarations. In that case, some C++ code that conforms to the standard would not behave correctly when used with the compiler in that mode.
    The correct approach is to use the compiler in standard-conforming mode so that code you write will be accepted by other standard-conforming compilers. That is, after all, the purpose of the standard.

  • Compile errors with Solaris 5.8 and Studio 11 with latest patches

    I asked sa to patch my studio 11, and they applied patches 121023-04, 121015-04, 121017-08, 122142-03, 120761-03, 120760-11 and 122135-02. Then, I compiled my boost_1_33_1 again. It built some, but not all libraries. It stil spit out the following errors. Is this expected?
    "/home/vcheng/boost_1_33_1/libs/filesystem/build/../src/operations_posix_windows.cpp", line 126: Error: readdir_r is not a member of file level.
    ...failed sunpro-C++-action build_sunos/bin/boost/libs/filesystem/build/libboost_filesystem.a/sunpro/debug/operations_posix_windows.o...
    sunpro-C++-action build_sunos/bin/boost/libs/wave/build/libboost_wave.a/sunpro/debug/instantiate_cpp_exprgrammar.o
    "/home/vcheng/boost_1_33_1/boost/spirit/core/composite/epsilon.hpp", line 76: Error: complex expression not allowed in dependent template argument expression.
    "/home/vcheng/boost_1_33_1/boost/iostreams/device/file_descriptor.hpp", line 79: Warning: close_on_exit hides boost::iostreams::file_descriptor::impl::close_on_exit.
    1 Warning(s) detected.
    "/home/vcheng/boost_1_33_1/libs/iostreams/build/../src/bzip2.cpp", line 42: Error: BZ_CONFIG_ERROR is not defined.
    "/home/vcheng/boost_1_33_1/libs/iostreams/build/../src/bzip2.cpp", line 106: Error: The function "BZ2_bzCompressEnd" must have a prototype.
    "/home/vcheng/boost_1_33_1/libs/iostreams/build/../src/bzip2.cpp", line 107: Error: The function "BZ2_bzDecompressEnd" must have a prototype.
    "/home/vcheng/boost_1_33_1/libs/iostreams/build/../src/bzip2.cpp", line 113: Error: The function "BZ2_bzCompress" must have a prototype.
    "/home/vcheng/boost_1_33_1/libs/iostreams/build/../src/bzip2.cpp", line 118: Error: The function "BZ2_bzDecompress" must have a prototype.
    "/home/vcheng/boost_1_33_1/libs/iostreams/build/../src/bzip2.cpp", line 143: Error: The function "BZ2_bzCompressInit" must have a prototype.
    "/home/vcheng/boost_1_33_1/libs/iostreams/build/../src/bzip2.cpp", line 147: Error: The function "BZ2_bzDecompressInit" must have a prototype.
    "/home/vcheng/boost_1_33_1/libs/program_options/build/../src/cmdline.cpp", line 97: Warning: args hides boost::program_options::detail::cmdline::args.
    "/home/vcheng/boost_1_33_1/libs/program_options/build/../src/cmdline.cpp", line 100: Warning: args hides boost::program_options::detail::cmdline::args.
    "/home/vcheng/boost_1_33_1/libs/program_options/build/../src/cmdline.cpp", line 110: Warning: args hides boost::program_options::detail::cmdline::args.
    "/home/vcheng/boost_1_33_1/libs/program_options/build/../src/cmdline.cpp", line 349: Warning: args hides boost::program_options::detail::cmdline::args.
    "/home/vcheng/boost_1_33_1/libs/program_options/build/../src/cmdline.cpp", line 383: Warning: args hides boost::program_options::detail::cmdline::args.
    "/home/vcheng/boost_1_33_1/libs/program_options/build/../src/cmdline.cpp", line 437: Warning: args hides boost::program_options::detail::cmdline::args.
    "/home/vcheng/boost_1_33_1/libs/program_options/build/../src/cmdline.cpp", line 458: Warning: args hides boost::program_options::detail::cmdline::args.
    "/home/vcheng/boost_1_33_1/libs/program_options/build/../src/cmdline.cpp", line 477: Warning: args hides boost::program_options::detail::cmdline::args.
    "/home/vcheng/boost_1_33_1/libs/program_options/build/../src/cmdline.cpp", line 495: Warning: args hides boost::program_options::detail::cmdline::args.
    "/home/vcheng/boost_1_33_1/libs/program_options/build/../src/config_file.cpp", line 35: Warning: allowed_options hides boost::program_options::detail::common_config_file_iterator::allowed_options.
    "/home/vcheng/boost_1_33_1/libs/program_options/build/../src/options_description.cpp", line 311: Error: Could not find a match for std::count<std::InputIterator, std::T, std::Size>(char*, char*, char) needed in::format_paragraph(std::ostream &, std::string, unsigned, unsigned).
    "/home/vcheng/boost_1_33_1/libs/program_options/build/../src/options_description.cpp", line 378: Error: Too few arguments for template std::reverse_iterator.
    "/.automount/opt/Forte/sunstudio11_patch1/SUNWspro/prod/include/CC/Cstd/rw/iterator", line 432: Error: "friend" declaration is incompatible with function template.
    "/home/vcheng/boost_1_33_1/libs/program_options/build/../src/options_description.cpp", line 378: Where: While specializing "std::reverse_iterator<const char*>".
    "/home/vcheng/boost_1_33_1/libs/program_options/build/../src/options_description.cpp", line 378: Where: Specialized in non-template code.
    "/home/vcheng/boost_1_33_1/libs/program_options/build/../src/options_description.cpp", line 379: Error: Too few arguments for template std::reverse_iterator.
    "/home/vcheng/boost_1_33_1/libs/program_options/build/../src/options_description.cpp", line 387: Error: Could not find a match for std::distance<std::ForwardIterator, std::Distance>(const char*, const char*) needed in::format_paragraph(std::ostream &, std::string, unsigned, unsigned).

    You can take Boost 1.34 but you have to use CVS and you have to modify Boost configuration files to use -library=stlport4 option.
    Or you can take Boost 1.32, read this article http://blogs.sun.com/roller/page/sga?entry=boost_mini_howto and apply this patch http://blogs.sun.com/roller/resources/sga/boost_1_32_0.patch.
    As you can see here http://engineering.meta-comm.com/boost-regression/CVS-RC_1_34_0/developer/summary.html Sun C++ is in a good shape.

  • Specialization error with template

    in the following code the
    line 39 ..command1 x....template instantiation works but the
    line 40 ..command2 y... template instantiation gives me compile error...
    is this a problem with the compiler ...or am i missing some template rules.
    5 template <class T> class pool {
    6 public:
    7
    8 void getInstance() {};
    9
    10 };
    11
    12 template <class T , class X > class Command {
    13 public:
    14
    15 pool<Command> z;
    16
    17 };
    18
    19
    20 template <class T> class Command<T,int> {
    21
    22 public:
    23 Command(){};
    24 ~Command(){};
    25
    26 ::pool<Command<T,int> > z;
    27
    30 };
    33 int main () {
    34 typedef Command<std::string, char> command1;
    35 typedef Command<std::string, char> command2;
    36 typedef Command<std::string, int> command3;
    37 typedef Command<std::string, int> command4;
    38
    39 command1 x;
    40 command3 y;
    41
    "pr.cpp", line 26: Error: The type "pool<Command<T>>" is incomplete.
    "pr.cpp", line 40: Where: While specializing "Command<std::basic_string<char, std::char_traits<char>, std::allocator<char>>, int>".
    "pr.cpp", line 40: Where: Specialized in non-template code.

    Hi,
    To configure NetWeaver Process Integration versus a central SLD, manual configuration steps are required. Please press again 'install' to execute the remaining configuration steps 9-21 and perform the required steps manually. Please see the referenced note 939592 how to do this
    Reward points for useful answers.
    Regards,
    Phani

  • Core dump when clearing vector of std::string/creating std:string

    Hi,
    I am seeing a couple of core dump which point to std::strings like the ones below. The application is a multi-threaded application and compiled on sun4u 5.8 sparc with Sun Studio 11 C++ compiler 5.8 Patch 121017-16. The stack trace is being shown from a shared library which we built and is being used by our daemon service. I stack traces points to code where simple operation like clearing of vector<std::string> or creating or erasing std::string. The runtime environment is Solaris 5.10 sun4u sparc with SUNWlibC patches of 119963-19 and 119963-10.
    We had an issue with clearing of vectors earlier whcih we solved by applying some compiler patches. This issue coming even after we have built the binaries with compiler patches. I have made sure that both the daemon and the shared library are all built with same compiler version. I would appreciate if any possible direction can be given for this.
    ======================1=================================
    $clibc.so.1`t_splay+0x10(82d828, 38, 753d736f, ff324c28, fe0b03a8, 732c6f3d)
    libc.so.1`realfree+0x8c(82d7e8, 39, d995c, fe7153a4, 0, 0)
    libc.so.1`_free_unlocked+0xb0(fe0b9224, 0, d9188, fe0b92a4, fe0b03a8, 555810)
    libc.so.1`free+0x24(555810, 555810, d91c8, fe041ebc, fe0b03a8, 555831)
    libCrun.so.1`void operator delete+4(555810, 0, 0, ffffffff, 59, 0)
    libCstd_isa.so.1`std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string #Nvariant 1+0x84(0, 555838, 2160c,
    555838, 38, 754b3c)
    ======================2=================================
    $clibc.so.1`t_splay+0xf4(590e78, 3b0, 6934c8, fdfd6eb0, fe0b03a8, 0)
    libc.so.1`realfree+0xb8(590e78, 5b, d995c, 0, 0, 5912b8)
    libc.so.1`cleanfree+0x5c(0, 19, d90ac, fe042230, fe0b03a8, fe0b92a4)
    libc.so.1`_malloc_unlocked+0xf4(8, 0, 0, fe29c734, fe0b3910, fe29c734)
    libc.so.1`malloc+0x4c(8, 1, da058, fe85eb20, fe0b03a8, fe0ba518)
    libCrun.so.1`void*operator new+0x28(8, 66c918, 7, fed6bf10, 14e98, 3afc38)
    ======================3=================================
    C [libc.so.1+0x57204] free+0x2c
    C [libCrun.so.1+0x665c] void operator delete(void*)+0xc
    C [libCstd_isa.so.1+0xd9ac]
    cDstdMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc___Hreplace6MIIpkc
    III_pc_+0x120
    C [libCstd_isa.so.1+0x1a488]
    std::string &std::string::erase(unsigned,unsigned)+
    0x5c
    ======================4=================================
    C [libCstd_isa.so.1+0x119c8]
    cDstdMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc___M__sun_append6M
    rk1_r1_+0x10
    ======================5=================================
    C [libc.so.1+0x5639c] malloc+0x54
    C [libCrun.so.1+0x70a4] void*operator new(unsigned)+0x30
    C [libCstd_isa.so.1+0xc69c]
    cDstdMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc___I__getRep6MII_p
    nH__rwstdM__string_ref4Ccn0B_n0C____+0x60
    C [libCstd_isa.so.1+0xdad0]
    cDstdMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc___Hreplace6MIIpkc
    III_pc_+0x1c0
    C [libCstd_isa.so.1+0xf5b4]
    std::string &std::string::operator=(const char*)+0x1
    08
    Edited by: bekz007 on Feb 24, 2010 1:55 PM

    Hi Clamage,
    The the application in question is built using various third party libraries and we will not be able to compile it with SunStudio 12. Even if we do that we may have to test for functionality which can be a major task now.
    Is there any other way in which I can proceed to verify this in client's env?
    Running the app in DBX didn't work as when the process was started it said
    dbx: internal warning: rtc: ld/st instruction user %r6 at 0xaca16840 in /opt/oracle/client102_1/lib32/libnnz10.so`SHATransform_SOL
    dbx: system error: cannont recover; Access checking disabledBelow give are the few stack traces we got recently and most of them are coming malloc
    -------------------------- Run3----------------------------------------------------
    fdfd710c t_splay  (590e78, 3b0, 6934c8, fdfd6eb0, fe0b03a8, 0) + f4
    fdfd6af0 realfree (590e78, 5b, d995c, 0, 0, 5912b8) + b8
    fdfd734c cleanfree (0, 19, d90ac, fe042230, fe0b03a8, fe0b92a4) + 5c
    fdfd64a4 _malloc_unlocked (8, 0, 0, fe29c734, fe0b3910, fe29c734) + f4
    fdfd6394 malloc   (8, 1, da058, fe85eb20, fe0b03a8, fe0ba518) + 4c
    fed5709c void*operator new(unsigned) (8, 66c918, 7, fed6bf10, 14e98, 3afc38) + 28
    fe713c78 bool Safe::Session::addAttr(const char*,const char*) (5f6478, fe831127, 7d0d50, fe856bd4, 0, fe831127) + 60
    fe69ac5c void Safe::Context::populateSession(Safe::Session*,Safe::GlobalUser*,Safe::User*,bool) (378400, 5f6478, 3afc38, fe8310ac, 1, fe831232) + e34
    fe699c58 void Safe::Context::populateSessionQs(std::deque<Safe::Session*>&,std::deque<Safe::Session*>&) (378400, 0, 378830, 2, fe856bd4, 0) + 15e0
    fe77cd64 void Safe::Cache::threadLoop() (3787e8, 378898, 378830, 0, 0, 0) + 54a4
    fe7762f4 ???????? (3787d0, 0, 0, fe856bd4, fdea5a00, 16800)
    fe7455d4 void*ithread_func(void*) (37a960, fe7762d8, fe856bd4, 0, 37a960, 1) + 48
    fe048968 _lwp_start (0, 0, 0, 0, 0, 0)
    -------------------------- Run4----------------------------------------------------
    fdf5710c t_splay  (659620, 58, 891658, fdfc0a2c, fe0303a8, 601200) + f4
    fdf56ac4 realfree (6595c0, 59, d995c, 0, 0, 71ad08) + 8c
    fdf5734c cleanfree (0, 7, d90ac, fed5631c, fe0303a8, fe0392a4) + 5c
    fdf564a4 _malloc_unlocked (798, 418, 4a52a8, 4a52b0, fffffffc, fd66d060) + f4
    fdf56394 malloc   (794, 1, da058, fe75d8b0, fe0303a8, fe03a518) + 4c
    fed5709c void*operator new(unsigned) (794, 6014a8, 6014a4, fed6bf10, 14e98, fe86ce2c) + 28
    fe68e650 bool Safe::Context::privSearchGlobalUsers(std::deque<Safe::Filter*>&,std::deque<Safe::GlobalUser*>&,Safe::Error&,bool) (193088, 9d7af8, fbb7a77c, fbb7a614, fbb7a4f4, 1) + 1e8
    fe6a5370 void Safe::Context::populateSessionQs(std::deque<Safe::Session*>&,std::deque<Safe::Session*>&) (193088, 19348c, 1934b8, 7858c4, fe86321c, 0) + 868
    fe7891f4 void Safe::Cache::threadLoop() (193470, 193520, 1934b8, 0, 0, 0) + 54a4
    fe782784 void*pollthreadfunc(void*) (193458, 0, 0, fe86321c, fde92a00, 16800) + 1c
    fe751a64 void*ithread_func(void*) (4525b0, fe782768, fe86321c, 0, 4525b0, 1) + 48
    fdfc8968 _lwp_start (0, 0, 0, 0, 0, 0)
    -------------------------- Run5----------------------------------------------------
    libc.so.1`malloc+0x4c(a, 1, da058, fd88c710, fe0303a8, fe03a518)
    libCrun.so.1`void*operator new+0x28(a, fb878177, 0, fec6bf10, 14e98, 3)
    libxerces-c.so.26`void*xercesc_2_6::MemoryManagerImpl::allocate+0x14(1c3e88, a, 55, fd9cea50, fda366e8, 1)
    libxerces-c.so.26`xercesc_2_6::XMLTranscoder::XMLTranscoder #Nvariant 1+0x60(fb877d20, fe874e52, 5, 1c3e88, 0, fffc00)
    libxerces-c.so.26`xercesc_2_6::XMLUTF8Transcoder::XMLUTF8Transcoder #Nvariant 1+0x20(fb877d20, fe874e52, 5, 1c3e88, 0, 0)
    libassafe_api.so`char*ispUtil::XMLChtoUTF8+0x4c(606c338, 67c, 400, fe86321c, 5, 1)
    libassafe_api.so`istring::istring #Nvariant 1+0x30(fb877f7c, fe86b470, fe86b448, fe86321c, 7a0, 400)
    libassafe_api.so`void ParseUtil::endElement+0xa0(c1f888, 693288, 606c338, fe86321c, 2, 2d4a160)
    libxerces-c.so.26`void xercesc_2_6::SAX2XMLReaderImpl::endElement+0x10c(876788, ece8e0, 1, fe875c80, 6043eb8, fe76d448)
    libxerces-c.so.26`void xercesc_2_6::IGXMLScanner::scanEndTag+0x644(5cb4628, fb878177, 0, fd9cea50, fd864978, 3)
    libxerces-c.so.26`bool xercesc_2_6::IGXMLScanner::scanContent+0x160(5cb4628, 0, 0, fd9fdb24, fd869d60, 1)
    libxerces-c.so.26`void xercesc_2_6::IGXMLScanner::scanDocument+0x78(5cb4628, 0, fd85dfb0, fd87214c, 1c3e88, 2800)
    libxerces-c.so.26`void xercesc_2_6::SAX2XMLReaderImpl::parse+0x8c(876788, fbf8d0, 4a, fe84a145, 0, 1c3e88)
    libassafe_api.so`bool ParseUtil::Parse+0x1c0(c1f888, 67c, fb878914, 16c82d0, fe86321c, fda348dc)
    libassafe_api.so`bool ispUtil::Parse+0x34(7fd350, fb878914, fe76ffc0, fe86321c, f320c, f3000)
    libassafe_api.so`void PozObject::poMapInterface+0xb08(49a40a8, 2, fb8787b8, fb878914, fe86321c, 0)
    libassafe_api.so`void PortableObject::poParseCallback+0x314(49a40a8, 7, fb8788d4, fb878954, fb878914, fb8787b8)
    0xfe76e828(49a40a8, 0, fb8788d4, fb878954, fb878994, fb8789c0)
    libassafe_api.so`void ParseUtil::endElement+0x224(3954508, 17d45a0, 1af1320, fe86321c, 395453c, a2f4f8)
    libxerces-c.so.26`void xercesc_2_6::SAX2XMLReaderImpl::endElement+0x10c(96ed20, 8686b0, 1, fe875c80, 60786c0, fe76d448)
    libxerces-c.so.26`void xercesc_2_6::IGXMLScanner::scanEndTag+0x644(4a533e0, fb878b4f, 0, fd9cea50, fd864978, 3)
    libxerces-c.so.26`bool xercesc_2_6::IGXMLScanner::scanContent+0x160(4a533e0, 0, 0, fd9fdb24, fd869d60, 1)
    libxerces-c.so.26`void xercesc_2_6::IGXMLScanner::scanDocument+0x78(4a533e0, 0, fd85dfb0, fd87214c, 1c3e88, 2800)
    libxerces-c.so.26`void xercesc_2_6::SAX2XMLReaderImpl::parse+0x8c(96ed20, 10fd780, 17eb0, fe84a145, 0, 1c3e88)
    libassafe_api.so`bool ParseUtil::Parse+0x1c0(3954508, 67c, fb878ed0, 6023ac8, fe86321c, fda348dc)
    libassafe_api.so`bool ispUtil::Parse+0x34(49a40a8, fb878ed0, fe76e800, fe86321c, cd0840, fe86321c)
    libassafe_api.so`void PortableObject::poImportObject+0x18c(49a40a8, fb878ed0, fff0b5e4, f4800, fe86321c, 3)
    libassafe_api.so`void Safe::StoredObject::soExport+0x2e4(5bb7250, 49a40a8, 320, 318, ffffffff, 5bb725c)
    libassafe_api.so`PozObject*Safe::StoredObject::getPozObject+0x38(5bb7250, 0, 0, 49a40a8, fe23e01c, 0)
    libassafe_api.so`bool Safe::GlobalUserGroup::soMap+0x2c(5bb7250, 1, 0, 0, fb879428, 400)
    libassafe_api.so`PozObject*Safe::StoredObject::soExport+0x30(5bb7250, 1, 5d916c0, fe6cec54, fe86cf4c, fe724618)
    libassafe_api.so`Safe::GlobalUserGroup*Safe::Context::getCachedGlobalUserGroup+0x1f4(1dfc00, 10a2538, 2153918, 0, 0, 0)
    libassafe_api.so`bool Safe::Context::expandGlobalUserGroup+0x20(1dfc00, 6e, 3541cd4, fb87a3f8, 7a0, 10a2538)
    libassafe_api.so`void Safe::Context::populateSession+0x195c(1dfc00, 3541c78, 0, 59b5544, 52935d0, ffffffff)
    libassafe_api.so`void Safe::Context::populateSessionQs+0x15e0(1dfc00, 0, 1e0030, 1, fe86321c, 0)
    libassafe_api.so`void Safe::Cache::threadLoop+0x54a4(1dffe8, 1e0098, 1e0030, 0, 0, 0)
    0xfe782784(1dffd0, 0, 0, fe86321c, fde23a00, 16800)
    libassafe_api.so`void*ithread_func+0x48(4cef10, fe782768, fe86321c, 0, 4cef10, 1)Edited by: bekz007 on Mar 17, 2010 12:23 PM

  • Strange behavior of std::string find method in SS12

    Hi
    I faced with strange behavior of std::string.find method while compiling with Sunstudio12.
    Compiler: CC: Sun C++ 5.9 SunOS_sparc Patch 124863-14 2009/06/23
    Platform: SunOS xxxxx 5.10 Generic_141414-07 sun4u sparc SUNW,Sun-Fire-V250
    Sometimes find method does not work, especially when content of string is larger than several Kb and it is needed to find pattern from some non-zero position in the string
    For example, I have some demonstration program which tries to parse PDF file.
    It loads PDF file completely to a string and then iterately searches all ocurrences of "obj" and "endobj".
    If I compile it with GCC from Solaris - it works
    If I compile it with Sunstudio12 and standard STL - does not work
    If I compile it with Sunstudio12 and stlport - it works.
    On win32 it always works fine (by VStudio or CodeBlocks)
    Is there any limitation of standard string find method in Sunstudio12 STL ?
    See below the code of tool.
    Compilation: CC -o teststr teststr.cpp
    You can use any PDF files larger than 2kb as input to reproduce the problem.
    In this case std::string failes to find "endobj" from some position in the string,
    while this pattern is located there for sure.
    Example of output:
    CC -o teststr teststr.cpp
    teststr in.pdf Processing in.pdf
    Found object:1
    Broken PDF, endobj is not found from position1155
    #include <string>
    #include <iostream>
    #include <fstream>
    using namespace std;
    bool parsePDF (string &content, size_t &position)
        position = content.find("obj",position);
        if( position == string::npos ) {
            cout<<"End of file"<<endl;
            return false;
        position += strlen("obj");
        size_t cur_pos = position;
        position = content.find("endobj",cur_pos);
        if( position == string::npos ){
            cerr<<"Broken PDF, endobj is not found from position"<<cur_pos<<endl;;
            return false;
        position += strlen("endobj");
        return true;
    int main(int argc, char ** argv)
        if( argc < 2 ){
            cout<<"Usage:"<<argv[0]<<" [pdf files]\n";
            return -3;
        else {
            for(int i = 1;i<argc;i++) {
                ifstream pdfFile;
                pdfFile.open(argv,ios::binary);
    if( pdfFile.fail()){
    cerr<<"Error opening file:"<<argv[i]<<endl;
    continue;
    pdfFile.seekg(0,ios::end);
    int length = pdfFile.tellg();
    pdfFile.seekg(0,ios::beg);
    char *buffer = new char [length];
    if( !buffer ){
    cerr<<"Cannot allocate\n";
    continue;
    pdfFile.read(buffer,length);
    pdfFile.close();
    string content;
    content.insert(0,buffer,length);
    delete buffer;
    // the lets parse the file and find all endobj in the buffer
    cout<<"Processing "<<argv[i]<<endl;
    size_t start = 0;
    int count = 0;
    while( parsePDF(content,start) ){
    cout<<"Found object:"<<++count<<"\n";
    return 0;

    Well, there is definitely some sort of problem here, maybe in string::find, but possibly elsewhere in the library.
    Please file a bug report at [http://bugs.sun.com] and we'll have a look at it.

  • Getting compile error with VS2013 and tuxedo12.1.1

    I'm trying to upgrade our technology tools and trying to compile our application with VisualStudio2013.on a Windows 2012 server.
    utilizing  Tuxedo12c (12.1.1 for 32bit)
    and Oracle 12c.
    I get this error which is perplexing
    CORBA::Object_ptr TP::create_active_object_reference(const char *,const char *,Tobj_Servant)' : cannot convert argument 3 from 'DataExchangeQueueImpl *' to 'Tobj_Servant'
              Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    this same code builds on a machine with tuxedo11gR3 abd VS2010.
    Here is code segment
    DataExchangeQueue_ptr DataExchangeServiceImpl::getSendQueue (const char * applicationId)
      CTraceCallStack clsFunctionTracer("DataExchangeServiceImpl::getSendQueue");
        DataExchangeQueue_ptr rc;
        try
            FTRACE(CTrace::TRACE_HIF_DIAG, "ApplicationID=(%s)", applicationId);
                std::string applId(applicationId);
            FTRACE(CTrace::TRACE_HIF_DIAG, "Retrieving Send Queue from the DESServant");
               IQueue* sendQueue = impl_->getSendQueue();
           FTRACE(CTrace::TRACE_HIF_DIAG, "Dynamically Allocating DataExchangeQueueImpl object");
                   char* oid = new char[strlen(applicationId) + 7];
                   sprintf(oid, "%s_SENDQ\0", applicationId);
                   DataExchangeQueueImpl* qImpl= new DataExchangeQueueImpl(sendQueue, oid);
         FTRACE(CTrace::TRACE_HIF_DIAG, "Creating active object reference");
              CORBA::Object_var tempObject = TP::create_active_object_reference(_tc_DataExchangeQueue->id(),
                                                                                  oid,
                                                                                  qImpl);
            rc = DataExchangeQueue::_narrow(tempObject);
            CORBA::release(tempObject);
            delete [] oid;
        catch(...)
            FTRACE(CTrace::TRACE_HIF_DIAG, "*** Caught unknown exception");
            throw TobjS::ApplicationProblem();
        return rc;

    Hi,
    Unfortunately Microsoft is not particularly helpful, forgiving, or backward compatible when it comes to Visual Studio releases.  Oracle has not yet released a version of Tuxedo that is compatible with VS2013.  If VS2013 is something you absolutely need, then I suggest submitting a support request through My Oracle Support asking for a Tuxedo 12.1.1 kit that supports VS2013.  You might also submit a request to Microsoft and ask them to stop breaking compatibility between releases!  :-)
    Regarding the specific error above, it looks as though you should probably try a reinterpret_cast, although it has been a long time since I played with CORBA.
    Regards,
    Todd Little
    Oracle Tuxedo Chief Architect

  • PeopleSoft XML Publisher report error with java.io.FileNotFoundException

    Hi,
    I have created two reports using XML Publisher in Peoplesoft Financials. The two reports are not related and they were submitted for processing separately. The first report completes without any issues. The second report results in error with the following message:
    09.11.17 ..(CIS_POTRPT.XML_FILE.Step03) (PeopleCode)
    [012309_091118154][oracle.apps.xdo.template.FOProcessor][EXCEPTION] IOException is occurred in FOProcessor.setData(String) with 'files/cis_potrpt.xml'.
    [012309_091118500][oracle.apps.xdo.template.FOProcessor][EXCEPTION] java.io.FileNotFoundException: files/cis_potrpt.xml (A file or directory in the path name does not exist.)
         at java.io.FileInputStream.open(Native Method)
         at java.io.FileInputStream.<init>(FileInputStream.java(Compiled Code))
         at java.io.FileInputStream.<init>(FileInputStream.java:89)
         at oracle.apps.xdo.template.FOProcessor.getInputStream(FOProcessor.java:1316)
         at oracle.apps.xdo.template.FOProcessor.getXMLInput(FOProcessor.java:1100)
         at oracle.apps.xdo.template.FOProcessor.setData(FOProcessor.java:372)
         at com.peoplesoft.pt.xmlpublisher.PTFOProcessor.generateOutput(PTFOProcessor.java:53)
    2009-01-23-09.11.18.000418 AePcdExecutePeopleCode [174] Exception logged: RC=100.
    Error generating report output: (235,2309) PSXP_RPTDEFNMANAGER.ReportDefn.OnExecute Name:ProcessReport PCPC:51552 Statement:1153
    Called from:CIS_POTRPT.XML_FILE.GBL.default.1900-01-01.Step03.OnExecute Statement:8
    2009-01-23-09.11.18.000617 DoStepActions [1797] Exception logged: RC=100.
    Process 598607 ABENDED at Step CIS_POTRPT.XML_FILE.Step03 (PeopleCode) -- RC = 24 (108,524)
    In the process monitor detail > view log/trace page, the xml file is accessible so the file was generated to a valid directory.
    The weird thing is I was able to run this report without any issues few weeks ago although another user also ran into same error. The PeopleCode step that has been identified is essentially same in the two reports. I checked the app server and the directory does exist as well as the xml files for the two reports. The problem does not occur in test environment, just in production. Any help would be appreciated.

    We encounter the same problem. Did you get the answer for this issue? Thanks in advance.

  • Advanced CAN Frame to Channel Conversion: Error with LV 8.5.1

    Hello!
    I´ve tried to read in a DBC-file with the "Advanced CAN Frame to Channel Conversion Example" on a LabVIEW 8.5.0 system and it works fine.
    On a LabVIEW 8.5.1 System I get the error:
    Scan From String (arg 6) in CAN FtoC Parse Channels and Mode.vi->CAN FtoC Parse CANdb Messages and Channels.vi->CAN Channel Data Import.vi
    Does anybody know a solution for this error?
    Thank you for your help,
    demo66
    regards,
    demo66

    Hi!
    It is a problem of localized decimal point.
    In a german Windows, LabVIEW will use Komma as decimal point.
    So the Scan From String.vi will convert string 0,21 in a double but not 0.21. From the file dbc you receive the values with period "." that's why it create the error 85.
    You have 2 possibilities: change the localized decimal point in LabVIEW (Tools -> Options) or you say to the Scan From String.vi to use "." as a decimal point.
    Go to CAN FtoC Parse Channels and Mode.vi and search the 2 Scan From String.vi
    Add at the beginning of the Format String %.; so that the format String will use the "." as decimal point (see Attachement).
    After that the example will work.
    Best regards
    Ken
    Attachments:
    Scan From String.jpg ‏51 KB

  • Error With Export/Print from Crystal Report Viewer

    Hello there,
    I've searched through the web and SAP discussion boards with not much luck with this issue.
    After working through this for some days now I've decided to look here for help.
    Environment:
    I have created a web Crystal Report viewer application(Developed with SBOP BI Platform 4.0 SP06 .NET SDK Runtime) that communicates with a managed Cyrstal Server 2011 SP4 (Product 14.0)
    I am able to connect and authenticate with the server, retrieve a token for communication and display reports in the Crystal report Viewer successfully.
    Problem:
    When I attempt to export, I receive the prompt to select format and pages.
    When I click export after selections most times I receive an error with the text
    Unable to cast COM object of type 'System.__ComObject' to interface type 'CrystalDecisions.ReportAppServer.DataDefModel.PropertyBag'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{74EEBC42-6C5D-11D3-9172-00902741EE7C}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).
    Other times the page simply refreshes on export.
    When I click to print, no print dialog is displayed the page always refreshes and no error is displayed.
    No Print or Export document is ever created.
    As many print/export issues seems to be related, I'm guessing this two issues are as well.
    Notes:
    I am utilizing the ReportClientDocument model
    I am storing this in session to use as the crystal report viewer report source on postbacks
    I am assigning a subset of export formats to the crystal report viewer
    I am setting particular parameters as well on the report source
    At this point I would appreciate every assistance I may receive on this issue
    Thanks in advance,
    Below is the pertinent code
    Code:
    <aspx>
       <CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server"
       AutoDataBind="true" EnableDatabaseLogonPrompt="False"
       BestFitPage="False" ReuseParameterValuesOnRefresh="True"
      CssClass="reportFrame" Height="1000px" Width="1100px" EnableDrillDown="False"
      ToolPanelView="None" PrintMode="Pdf"/>
    <Codebehind>
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using CrystalDecisions.Enterprise;
    using CrystalDecisions.ReportAppServer.ClientDoc;
    using CrystalDecisions.ReportAppServer.CommonObjectModel;
    using CrystalDecisions.ReportAppServer.Controllers;
    using CrystalDecisions.ReportAppServer.DataDefModel;
    using CrystalDecisions.ReportAppServer.ReportDefModel;
    using CrystalDecisions.Shared;
    namespace ClassicInternalReportPage
        public partial class Reports : System.Web.UI.Page
            protected override void OnInit(EventArgs e)
                base.OnInit(e);
                if (!String.IsNullOrEmpty(Convert.ToString(Session["LogonToken"])) && !IsPostBack)
                    SessionMgr sessionMgr = new SessionMgr();
                    EnterpriseSession enterpriseSession = sessionMgr.LogonWithToken(Session["LogonToken"].ToString());
                    EnterpriseService reportService = enterpriseSession.GetService("RASReportFactory");
                    InfoStore infoStore = new InfoStore(enterpriseSession.GetService("InfoStore"));
                    if (reportService != null)
                        string queryString = String.Format("Select SI_ID, SI_NAME, SI_PARENTID From CI_INFOOBJECTS "
                           + "Where SI_PROGID='CrystalEnterprise.Report' "
                           + "And SI_ID = {0} "
                           + "And SI_INSTANCE = 0", Request.QueryString["rId"]);
                        InfoObjects infoObjects = infoStore.Query(queryString);
                        ReportAppFactory reportFactory = (ReportAppFactory)reportService.Interface;
                        if (infoObjects != null && infoObjects.Count > 0)
                            ISCDReportClientDocument reportSource = reportFactory.OpenDocument(infoObjects[1].ID, 0);
                            Session["ReportClDocument"] = AssignReportParameters(reportSource) ? reportSource : null;
                            CrystalReportViewer1.ReportSource = Session["ReportClDocument"];
                            CrystalReportViewer1.DataBind();
                //Viewer options
                // Don't enable prompting for Live and Custom
                CrystalReportViewer1.EnableParameterPrompt = !(Request.QueryString["t"] == "1" || Request.QueryString["t"] == "4");
                CrystalReportViewer1.HasToggleParameterPanelButton = CrystalReportViewer1.EnableParameterPrompt;
                CrystalReportViewer1.AllowedExportFormats = (int)(ViewerExportFormats.PdfFormat | ViewerExportFormats.ExcelFormat | ViewerExportFormats.XLSXFormat | ViewerExportFormats.CsvFormat);
            protected void Page_Load(object sender, EventArgs e)
                if (IsPostBack && CrystalReportViewer1.ReportSource == null)
                    CrystalReportViewer1.ReportSource = Session["ReportClDocument"];
                    CrystalReportViewer1.DataBind();
            private bool AssignReportParameters(ISCDReportClientDocument reportSource)
                bool success = true;
                if (Request.QueryString["t"] == "1" || Request.QueryString["t"] == "2" || Request.QueryString["t"] == "4" )
                    reportSource.DataDefController.ParameterFieldController.SetCurrentValue("", "STORE", Session["storeParam"]);
                    if (Request.QueryString["t"] == "2")
                        reportSource.DataDefController.ParameterFieldController.SetCurrentValue("", "FromDate", Request.QueryString["fromdate"]);
                        reportSource.DataDefController.ParameterFieldController.SetCurrentValue("", "ToDate", Request.QueryString["todate"]);
                else if (Request.QueryString["t"] == "3")
                    reportSource.DataDefController.ParameterFieldController.SetCurrentValue("", "SKU", Request.QueryString["sku"]);
                else
                    //Unknown report type alert
                    success = false;
                return success;

    Thanks Don for your response,
    I'm new to the SCN spaces and my content has been moved a couple of times already.
    In response to your questions
    The runtime is installed on the web application server, if by that you mean the machine hosting the created .NET SDK application.
    My question was whether it was also required on the Crystal Server 2011 (I.E. the main enterprise server with CMS and Report management and I guess RAS and all that). I figured this would remain untouched and queries would simply be made against it to retrieve/view reports e.t.c
    If install of the SDK on Crystal Server 2011 is indeed required should I expect any interruption to any of the core services after a restart. I.E. I'm hoping that none of the SDK objects would interfere with the existing server objects (in SAP Business Objects)Reason I ask is I note that much of the SDK install directories are similar to the existing Crystal Enterprise Server 2011 (Product 14.0.0)
    Is this temp folder to be manually created/configured or is it created by the application automatically to perform tasks. Or are you referring to the default C:\Windows\Temp directory and so saying that the application would try to use this for print and export tasks?Once I'm sure which I'd give the app pool user permission
    Printing is to be client side but I figured by default (with the Crystal Report Viewer) it would simply pool and print from the user's printer. This is how it works with the previously used URL reporting approach (viewrpt.cwr). Therefore a user can print the document from wherever they are with their own printer.We don't intend on printing from the server machine, but are you suggesting that a printer must be installed on server (which one web or enterprise server) for any client side printing to work.
    App pool is running in 32 bit mode
    Initially didn't get anything useful from fiddler but I'd try and look closer on your suggestion.
    It's also possible that some of my questions are a misunderstanding of APP vs RAS vs WEB, so please feel free to clarify. Currently I see the Web server as simply the created .NET SDK Application and RAS (Crystal Server 2011 e.t.c) as the existing fully established Application server which I simply pool for information.
    Thank you for your patience and advice,

  • Error "Token in strings could not be evaluated" in form personalization

    Getting Error "Token in strings could not be evaluated" in form personalization.
    The syntax used is -
    ='BEGIN
    CREATE_URL_COLL('''||${item.IEXPYPRS_CC.CC_TYPE_DSP.value}||''');
    end'
    Please suggest where I am going wrong.
    Thanks and Regards,
    Dibyanshu

    Andreas.
    ='BEGIN
    CREATE_URL_COLL('''||${item.IEXPYPRS_CC.CC_TYPE_DSP.value}||''');
    end'what about the above code is it related with form?
    because i tried to use that something like this
    BEGIN
    CREATE_URL_COLL('''||${item.IEXPYPRS_CC.CC_TYPE_DSP.value}||''');
    end;and it gave me error, compilation error.
    sarah

  • SQL Error: ORA-01704: string literal too long

    select * from table(fn_split('some 10000 characters with comma separation .........................'))
    Error report:
    SQL Error: ORA-01704: string literal too long
    01704. 00000 - "string literal too long"
    *Cause:    The string literal is longer than 4000 characters.
    *Action:   Use a string literal of at most 4000 characters.
    how to pass my 10k record string

    933663 wrote:
    The string is through a user interface.So, that interface is using what datatype for the string? What language is the interface written in?
    insert into table
    select * from table(fn_split('2,4,2,5,7'));Do you understand what a string literal is? You cannot provide a varchar2 string that exceeds 4000 bytes from within SQL. Fact. It just cannot be done.
    If you are passing the string from a user interface using a datatype that supports more than 4000 bytes, and you pass it directly to PL/SQL code by calling the function or procedure directly (not using SQL) then you can use up to 32767 bytes for your VARCHAR2.
    The code you've posted (which happens to be some of my own code posted years ago on these forums) takes a VARCHAR2 as an input. You would have to change that to accept a CLOB datatype and work on the CLOB instead. However, you still wouldn't be able to pass in a string literal of more than 4000 bytes from SQL for it.
    Looking at your other thread: Seperate the string value
    ... it looks like the 'user' is trying to pass in a table definition. What is it your application is trying to do? Surely you are not trying to create a table at run time?
    So explain, what is the business issue you are trying to solve? We may be able to provide a better way of doing it.

  • Valuation with material cost estimate: error with product " 200038 "

    Hi,
    I am getting an error:
    Valuation with material cost estimate: error with product " 200038 "  (Message KE350).
    Kindly assist on the same?

    If this material is mto material go to t.code KE40 and maintain define access to standard cost estimate define cost key with
    "Transfer sales orde cost estimatex".
    If it is mts material define costing key with Transfer std cost estimate  and in costing data
    costing variant : ppc1
    costing verstion: 1
    period  indicator:  Release std cost estimate matching with goods issue or material costing matching posting date.
    This will resolve ur problem.

Maybe you are looking for

  • USB causing crashes

    I'm trying my best to keep this short! I've been using my Mac Pro for a few years now without any problems. Recently I moved it to a building that doesn't have an internet connection, so I use my wife's extra Sprint USB mobile broadband card. From ti

  • Error with XML Parsing

    Hello, Getting the following error : ORA-31011: XML parsing failed ORA-19202: Error occurred in XML processing LPX-00217: invalid character 0 (U+0000) Error at line 1-31011 I have an xml data in a clob and looks like one of the tag has a invalid char

  • Error loading plugins pngfileformat.aip upon startup, then Ai crashes - help?

    I just downloaded Ai, and I get the following error message upon launch: error loading plugins pngfileformat.aip.  After that, Ai crashes.  Suggestions?

  • Problem while activating BI contents

    Hi Experts, I am trying to activate BI contents, when i select "Install In Background" option system shows succesful scheduling of job but when i see the scheduled job from transaction SM37 system shows released status & under "Delay Seconds" by whic

  • Multiple tracks in one matrix window

    can anyone tell me how to get midi data from multiple tracks to show up in a single matrix window for editing?