JNI 101

While you people are connecting universes, I am having a problem running the first JNI program.
invoking JVM from C++;
Started just yesterday and this is very urgent.
The following basic code returns error -3
Also tried running code from sun website, they give me error -1
Cannot create JVM.
since its pretty urgent and I am really short on time, I dont have time to do my research so please give your suggestions and dont get mad!
Appreciatively,
Pranav
#include "jni.h"
#include <iostream.h>
void main() {
JavaVM jvm;       / denotes a Java VM */
JNIEnv env;       / pointer to native method interface */
JavaVMInitArgs vm_args; /* VM initialization arguments */
JNI_GetDefaultJavaVMInitArgs(&vm_args);
jint ret;
ret = JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args);
if (ret < 0) {
cout << "Can't create JVM! Error: " << ret << endl;
jclass cls = env->FindClass("Prog");
jmethodID mid = env->GetStaticMethodID(cls, "main", "(I)V");
env->CallStaticVoidMethod(cls, mid, 100);
jvm->DestroyJavaVM();

try this one:
//----------------------c-part----------------------------
#include "jni.h" //jvm.lib
#include <string>
#include <iostream>
#include <stdlib.h>
int main()
     const int numberofargs=1;
JavaVMInitArgs vm_args;
JavaVMOption options[numberofargs];
JNIEnv *env=NULL;
JavaVM *jvm=NULL;
     std::string tmpstr="-Djava.class.path=.;";
     options[0].optionString=(char * )tmpstr.c_str();
     vm_args.version=JNI_VERSION_1_4;
vm_args.options=options;
vm_args.nOptions=numberofargs;
vm_args.ignoreUnrecognized=JNI_TRUE;
     if((jint)JNI_CreateJavaVM(&jvm,(void**)&env,&vm_args)<0)
std::cerr << "ERROR:Java Virtual Machine NOT initialized!" << std::endl;
          exit(-1);
     jclass cls;
     if((cls = (jclass)env->FindClass("Hello"))==NULL)
std::cerr << "ERROR:class not found!" << std::endl;
          exit(-1);
     jmethodID mid;
     if((mid=(jmethodID)env->GetStaticMethodID(cls,"main","([Ljava/lang/String;)V"))==NULL)
std::cerr << "ERROR:constructor-method not found!" << std::endl;
          exit(-1);
     jint length=100;
     jint i=0;
     jobject valueobj;
     jclass valuecls;
     jmethodID valuemid;
     jstring jstr;
     jobjectArray valuejoa;
     valuecls=(jclass)env->FindClass("Ljava/lang/String;");
     valuemid=env->GetMethodID(valuecls,"<init>","(Ljava/lang/String;)V");
     valuejoa= env->NewObjectArray(length,valuecls,NULL);
     char buffer[20];
     for(i=0;i<length;i++)
          _itoa( i, buffer, 10 );
          jstr=env->NewStringUTF(buffer);
          valueobj=env->NewObject(valuecls,valuemid,jstr);
          env->SetObjectArrayElement(valuejoa,i,valueobj);
     env->CallStaticVoidMethod(cls, mid, valuejoa);
     jvm->DestroyJavaVM();     
     return 0;
//----------------------java-part--------------------------
public class Hello
     public Hello()
     public static void main(String[] args)
          System.out.println("Hello World:");
          for(int i=0;i<args.length;i++)
               System.out.println(args);
the method "main" get strings, not integers.
jens

Similar Messages

  • Variety of periodic JVM crashes (no JNI)

    Hello,
    I have a J2SE application that runs on a Linux box that is getting a number of various JVM crashes. The program has no JNI and does not use any libraries, it's all just Java. The call stacks are always different, and I don't see any consistency in what is happening in the application when the JVM crashes. It does however always seem to be a SIGSEGV. Sometimes they happen after 2 minutes of uptime, sometimes after days.
    I tried upgrading the JVM from 6.0_27-b07 to 7.0_06-b24 but it has made no difference. I uploaded all the hs_err logs here: http://www.tacticstudios.com/downloads/logs.rar if you would like to take a look.
    Due to the inconsistent call stacks my only assumption is that memory is getting corrupted in some way, and the crash is occurring later on.  Maybe it is a hardware problem? I'm not certain what would cause this.
    Any assistance you can provide in how to debug this, or any ideas would be extremely appreciated. I have pasted the most recent error log below.
    Jesse
    # A fatal error has been detected by the Java Runtime Environment:
    #  SIGSEGV (0xb) at pc=0x00007fbcc8a16bd4, pid=3126, tid=140448514426624
    # JRE version: 7.0_06-b24
    # Java VM: Java HotSpot(TM) 64-Bit Server VM (23.2-b09 mixed mode linux-amd64 compressed oops)
    # Problematic frame:
    # V  [libjvm.so+0x7b5bd4]  PhaseChaitin::Split(unsigned int)+0x8e4
    # Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
    # If you would like to submit a bug report, please visit:
    #   http://bugreport.sun.com/bugreport/crash.jsp
    ---------------  T H R E A D  ---------------
    Current thread (0x00007fbcc40e7800):  JavaThread "C2 CompilerThread1" daemon [_thread_in_native, id=3145, stack(0x00007fbcb7bfc000,0x00007fbcb7cfd000)]
    siginfo:si_signo=SIGSEGV: si_errno=0, si_code=128 (), si_addr=0x0000000000000000
    Registers:
    RAX=0x00007fbc89897540, RBX=0x00007fbc88e499f0, RCX=0x00007fbc898974b0, RDX=0x0000000000000000
    RSP=0x00007fbcb7cf8390, RBP=0x00007fbcb7cf8820, RSI=0x0000000000000004, RDI=0x00007fbc88e499f0
    R8 =0x0000000000000181, R9 =0x0000000000000004, R10=0x0000000000000001, R11=0x00007fbc88e69390
    R12=0x0000000000000000, R13=0x0000000000000001, R14=0x00007fbc88e499f0, R15=0xf100000000000000
    RIP=0x00007fbcc8a16bd4, EFLAGS=0x0000000000010202, CSGSFS=0x0000000000000033, ERR=0x0000000000000000
      TRAPNO=0x000000000000000d
    Top of Stack: (sp=0x00007fbcb7cf8390)
    0x00007fbcb7cf8390:   00007fbcb7cf83d0 00007fbcc897d002
    0x00007fbcb7cf83a0:   0000000000000000 0000000000000000
    0x00007fbcb7cf83b0:   000000000000002a 00007fbcb7cf8a40
    0x00007fbcb7cf83c0:   0101010101010101 0101010101010101
    0x00007fbcb7cf83d0:   0000000000000000 0000000000000000
    0x00007fbcb7cf83e0:   00007fbcb7cf8690 00007fbcb7cf8650
    0x00007fbcb7cf83f0:   00007fbcb7cf8670 00007fbcb7cf8750
    0x00007fbcb7cf8400:   0000000000000007 00007fbc88f97d90
    0x00007fbcb7cf8410:   0000000000000000 00007fbcb7cf8a40
    0x00007fbcb7cf8420:   00007fbc8908f210 00007fbcc848c156
    0x00007fbcb7cf8430:   00007fbcb7cf8490 0000000000000004
    0x00007fbcb7cf8440:   00007fbc88712fc8 00007fbc8908f188
    0x00007fbcb7cf8450:   0000000000000008 0000000000002940
    0x00007fbcb7cf8460:   00007fbcb7cf9f90 00007fbc883f9cc0
    0x00007fbcb7cf8470:   00007fbc883fa590 0000000000000000
    0x00007fbcb7cf8480:   0000000000000090 00007fbcb7cf8a40
    0x00007fbcb7cf8490:   00007fbc8909b580 00007fbc8908f188
    0x00007fbcb7cf84a0:   00007fbcb7cfa058 00007fbcc846c6ce
    0x00007fbcb7cf84b0:   0000000000000003 0000011ac8ac9296
    0x00007fbcb7cf84c0:   00007fbc883fb850 00007fbc88b58600
    0x00007fbcb7cf84d0:   00007fbc88b58640 00007fbc883fc120
    0x00007fbcb7cf84e0:   01007fbc8908f260 00007fbc898974b0
    0x00007fbcb7cf84f0:   00007fbc88b51000 00007fbc88348b90
    0x00007fbcb7cf8500:   00007fbc883f4990 0000007888107a90
    0x00007fbcb7cf8510:   00007fbcb7cf8500 00007fbcc848c03f
    0x00007fbcb7cf8520:   00007fbcb7cf89e0 00000000000000f0
    0x00007fbcb7cf8530:   0000000000000009 0000000000000013
    0x00007fbcb7cf8540:   00007fbcc8f37280 00007fbcc8763c94
    0x00007fbcb7cf8550:   0000000000000008 00007fbcb7cfade0
    0x00007fbcb7cf8560:   00007fbcc8f37280 00007fbcc8763ac0
    0x00007fbcb7cf8570:   00007fbc88071000 0000000000000048
    0x00007fbcb7cf8580:   0000000000000002 0000000000070d60
    Instructions: (pc=0x00007fbcc8a16bd4)
    0x00007fbcc8a16bb4:   84 f6 0f 84 dc 1b 00 00 48 8b 8d c8 fc ff ff 45
    0x00007fbcc8a16bc4:   31 f6 8b 71 18 85 f6 74 07 48 8b 41 20 4c 8b 30
    0x00007fbcc8a16bd4:   49 8b 07 4c 89 ff ff 50 28 48 8b b5 c8 fc ff ff
    0x00007fbcc8a16be4:   48 89 85 78 fc ff ff 31 c0 8b 56 18 85 d2 74 07
    Register to memory mapping:
    RAX=0x00007fbc89897540 is an unknown value
    RBX=0x00007fbc88e499f0 is an unknown value
    RCX=0x00007fbc898974b0 is an unknown value
    RDX=0x0000000000000000 is an unknown value
    RSP=0x00007fbcb7cf8390 is pointing into the stack for thread: 0x00007fbcc40e7800
    RBP=0x00007fbcb7cf8820 is pointing into the stack for thread: 0x00007fbcc40e7800
    RSI=0x0000000000000004 is an unknown value
    RDI=0x00007fbc88e499f0 is an unknown value
    R8 =0x0000000000000181 is an unknown value
    R9 =0x0000000000000004 is an unknown value
    R10=0x0000000000000001 is an unknown value
    R11=0x00007fbc88e69390 is an unknown value
    R12=0x0000000000000000 is an unknown value
    R13=0x0000000000000001 is an unknown value
    R14=0x00007fbc88e499f0 is an unknown value
    R15=0xf100000000000000 is an unknown value
    Stack: [0x00007fbcb7bfc000,0x00007fbcb7cfd000],  sp=0x00007fbcb7cf8390,  free space=1008k
    Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
    V  [libjvm.so+0x7b5bd4]  PhaseChaitin::Split(unsigned int)+0x8e4
    V  [libjvm.so+0x347d4e]  PhaseChaitin::Register_Allocate()+0x48e
    V  [libjvm.so+0x3ba1dd]  Compile::Code_Gen()+0x3ad
    V  [libjvm.so+0x3bcde5]  Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool)+0xe15
    V  [libjvm.so+0x32eaf2]  C2Compiler::compile_method(ciEnv*, ciMethod*, int)+0x142
    V  [libjvm.so+0x3c1d03]  CompileBroker::invoke_compiler_on_method(CompileTask*)+0x323
    V  [libjvm.so+0x3c2e6d]  CompileBroker::compiler_thread_loop()+0x43d
    V  [libjvm.so+0x864ec8]  JavaThread::thread_main_inner()+0xc8
    V  [libjvm.so+0x865018]  JavaThread::run()+0x138
    V  [libjvm.so+0x746a00]  java_start(Thread*)+0x100
    Current CompileTask:
    C2:5652858  298             Main.GameObject::aiMoveUnit (1510 bytes)
    ---------------  P R O C E S S  ---------------
    Java Threads: ( => current thread )
      0x00007fbc68018000 JavaThread "Thread-107" [_thread_in_native, id=4598, stack(0x00007fbcb53d9000,0x00007fbcb54da000)]
      0x00007fbc68017000 JavaThread "Thread-108" [_thread_blocked, id=4597, stack(0x00007fbcb52d8000,0x00007fbcb53d9000)]
      0x00007fbc68012000 JavaThread "Thread-100" [_thread_in_native, id=4442, stack(0x00007fbcb59df000,0x00007fbcb5ae0000)]
      0x00007fbc68011800 JavaThread "Thread-101" [_thread_blocked, id=4441, stack(0x00007fbcb58de000,0x00007fbcb59df000)]
      0x00007fbc68016000 JavaThread "Thread-93" [_thread_in_native, id=4405, stack(0x00007fbcb57dd000,0x00007fbcb58de000)]
      0x00007fbc68015000 JavaThread "Thread-94" [_thread_blocked, id=4404, stack(0x00007fbcb56dc000,0x00007fbcb57dd000)]
      0x00007fbc68014000 JavaThread "Thread-85" [_thread_in_native, id=4322, stack(0x00007fbcb54da000,0x00007fbcb55db000)]
      0x00007fbc68013000 JavaThread "Thread-86" [_thread_blocked, id=4321, stack(0x00007fbcb55db000,0x00007fbcb56dc000)]
      0x00007fbc6801d000 JavaThread "Thread-79" [_thread_in_native, id=4308, stack(0x00007fbcb68f2000,0x00007fbcb69f3000)]
      0x00007fbc68001000 JavaThread "Thread-80" [_thread_blocked, id=4307, stack(0x00007fbcb69f3000,0x00007fbcb6af4000)]
      0x00007fbc68010800 JavaThread "Thread-41" [_thread_in_native, id=3373, stack(0x00007fbcb5be1000,0x00007fbcb5ce2000)]
      0x00007fbc6800f800 JavaThread "Thread-42" [_thread_blocked, id=3372, stack(0x00007fbcb5ae0000,0x00007fbcb5be1000)]
      0x00007fbc6800e800 JavaThread "Thread-36" [_thread_in_native, id=3343, stack(0x00007fbcb5de3000,0x00007fbcb5ee4000)]
      0x00007fbc6800d800 JavaThread "Thread-37" [_thread_blocked, id=3342, stack(0x00007fbcb5ce2000,0x00007fbcb5de3000)]
      0x00007fbc6800c800 JavaThread "Thread-28" [_thread_in_native, id=3325, stack(0x00007fbcb5ee4000,0x00007fbcb5fe5000)]
      0x00007fbc6800b800 JavaThread "Thread-29" [_thread_blocked, id=3324, stack(0x00007fbcb5fe5000,0x00007fbcb60e6000)]
      0x00007fbc6800a000 JavaThread "Thread-19" [_thread_in_native, id=3214, stack(0x00007fbcb60e6000,0x00007fbcb61e7000)]
      0x00007fbc68008800 JavaThread "Thread-20" [_thread_blocked, id=3213, stack(0x00007fbcb61e7000,0x00007fbcb62e8000)]
      0x00007fbc68007800 JavaThread "Thread-17" [_thread_in_native, id=3211, stack(0x00007fbcb62e8000,0x00007fbcb63e9000)]
      0x00007fbc68006800 JavaThread "Thread-18" [_thread_blocked, id=3210, stack(0x00007fbcb63e9000,0x00007fbcb64ea000)]
      0x00007fbc68003000 JavaThread "Thread-11" [_thread_in_native, id=3190, stack(0x00007fbcb67f1000,0x00007fbcb68f2000)]
      0x00007fbc68002000 JavaThread "Thread-12" [_thread_blocked, id=3189, stack(0x00007fbcb64ea000,0x00007fbcb65eb000)]
      0x00007fbc74005800 JavaThread "Thread-5" [_thread_in_native, id=3162, stack(0x00007fbcb6af4000,0x00007fbcb6bf5000)]
      0x00007fbc74004000 JavaThread "Thread-1" [_thread_blocked, id=3161, stack(0x00007fbcb6bf5000,0x00007fbcb6cf6000)]
      0x00007fbc7800e800 JavaThread "Thread-3" [_thread_in_native, id=3160, stack(0x00007fbcb6cf6000,0x00007fbcb6df7000)]
      0x00007fbc7800d000 JavaThread "Thread-4" [_thread_blocked, id=3159, stack(0x00007fbcb6df7000,0x00007fbcb6ef8000)]
      0x00007fbcc4007800 JavaThread "DestroyJavaVM" [_thread_blocked, id=3135, stack(0x00007fbcc8160000,0x00007fbcc8261000)]
      0x00007fbcc4625800 JavaThread "Thread-2" [_thread_in_native, id=3149, stack(0x00007fbcb6ef8000,0x00007fbcb6ff9000)]
      0x00007fbcc4619800 JavaThread "Thread-0" [_thread_blocked, id=3148, stack(0x00007fbcb6ff9000,0x00007fbcb70fa000)]
      0x00007fbcc40ea000 JavaThread "Service Thread" daemon [_thread_blocked, id=3146, stack(0x00007fbcb7afb000,0x00007fbcb7bfc000)]
    =>0x00007fbcc40e7800 JavaThread "C2 CompilerThread1" daemon [_thread_in_native, id=3145, stack(0x00007fbcb7bfc000,0x00007fbcb7cfd000)]
      0x00007fbcc40e4800 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=3144, stack(0x00007fbcb7cfd000,0x00007fbcb7dfe000)]
      0x00007fbcc40e2800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=3143, stack(0x00007fbcb7dfe000,0x00007fbcb7eff000)]
      0x00007fbcc4099000 JavaThread "Finalizer" daemon [_thread_blocked, id=3142, stack(0x00007fbcb7eff000,0x00007fbcb8000000)]
      0x00007fbcc4096800 JavaThread "Reference Handler" daemon [_thread_blocked, id=3141, stack(0x00007fbcbc0ef000,0x00007fbcbc1f0000)]
    Other Threads:
      0x00007fbcc408f800 VMThread [stack: 0x00007fbcbc1f0000,0x00007fbcbc2f1000] [id=3140]
      0x00007fbcc40f4800 WatcherThread [stack: 0x00007fbcb79fa000,0x00007fbcb7afb000] [id=3147]
    VM state:not at safepoint (normal execution)
    VM Mutex/Monitor currently owned by a thread: None
    Heap
    PSYoungGen      total 108032K, used 64372K [0x00000000eaab0000, 0x00000000f53b0000, 0x0000000100000000)
      eden space 100224K, 63% used [0x00000000eaab0000,0x00000000ee8dd1b8,0x00000000f0c90000)
      from space 7808K, 9% used [0x00000000f0c90000,0x00000000f0d40000,0x00000000f1430000)
      to   space 7552K, 0% used [0x00000000f4c50000,0x00000000f4c50000,0x00000000f53b0000)
    ParOldGen       total 29952K, used 15594K [0x00000000c0000000, 0x00000000c1d40000, 0x00000000eaab0000)
      object space 29952K, 52% used [0x00000000c0000000,0x00000000c0f3a848,0x00000000c1d40000)
    PSPermGen       total 21248K, used 6931K [0x00000000bae00000, 0x00000000bc2c0000, 0x00000000c0000000)
      object space 21248K, 32% used [0x00000000bae00000,0x00000000bb4c4c10,0x00000000bc2c0000)
    Card table byte_map: [0x00007fbcc0574000,0x00007fbcc079e000] byte_map_base: 0x00007fbcbff9d000
    Polling page: 0x00007fbcc91ab000
    Code Cache  [0x00007fbcc079e000, 0x00007fbcc0a0e000, 0x00007fbcc379e000)
    total_blobs=549 nmethods=296 adapters=205 free_code_cache=47745Kb largest_free_block=48842112
    Compilation events (10 events):
    Event: 5283.138 Thread 0x00007fbcc40e4800 nmethod 293 0x00007fbcc08e5950 code [0x00007fbcc08e5a80, 0x00007fbcc08e5af8]
    Event: 5447.824 Thread 0x00007fbcc40e7800  294             Main.GameObject::aiGetMovementPath (1009 bytes)
    Event: 5447.912 Thread 0x00007fbcc40e7800 nmethod 294 0x00007fbcc0901610 code [0x00007fbcc0901a00, 0x00007fbcc0903d70]
    Event: 5481.887 Thread 0x00007fbcc40e4800  295             Main.GameObject::aiGetTargetInRange (212 bytes)
    Event: 5481.896 Thread 0x00007fbcc40e4800 nmethod 295 0x00007fbcc08e5f90 code [0x00007fbcc08e61c0, 0x00007fbcc08e68f0]
    Event: 5536.215 Thread 0x00007fbcc40e7800  296             Main.GameObject::getBestPath (333 bytes)
    Event: 5536.245 Thread 0x00007fbcc40e7800 nmethod 296 0x00007fbcc0906950 code [0x00007fbcc0906c20, 0x00007fbcc0908190]
    Event: 5553.050 Thread 0x00007fbcc40e4800  297             IsoInfo.Main.Unit::canMove (58 bytes)
    Event: 5553.051 Thread 0x00007fbcc40e4800 nmethod 297 0x00007fbcc08e77d0 code [0x00007fbcc08e7920, 0x00007fbcc08e7a78]
    Event: 5652.525 Thread 0x00007fbcc40e7800  298             Main.GameObject::aiMoveUnit (1510 bytes)
    GC Heap History (10 events):
    Event: 907.123 GC heap before
    {Heap before GC invocations=8 (full 1):
    PSYoungGen      total 39808K, used 32448K [0x00000000eaab0000, 0x00000000eda10000, 0x0000000100000000)
      eden space 31936K, 100% used [0x00000000eaab0000,0x00000000ec9e0000,0x00000000ec9e0000)
      from space 7872K, 6% used [0x00000000ed1e0000,0x00000000ed260000,0x00000000ed990000)
      to   space 8192K, 0% used [0x00000000ec9e0000,0x00000000ec9e0000,0x00000000ed1e0000)
    ParOldGen       total 29952K, used 15297K [0x00000000c0000000, 0x00000000c1d40000, 0x00000000eaab0000)
      object space 29952K, 51% used [0x00000000c0000000,0x00000000c0ef0798,0x00000000c1d40000)
    PSPermGen       total 21248K, used 6721K [0x00000000bae00000, 0x00000000bc2c0000, 0x00000000c0000000)
      object space 21248K, 31% used [0x00000000bae00000,0x00000000bb4904f8,0x00000000bc2c0000)
    Event: 907.125 GC heap after
    Heap after GC invocations=8 (full 1):
    PSYoungGen      total 40128K, used 768K [0x00000000eaab0000, 0x00000000ef8d0000, 0x0000000100000000)
      eden space 31936K, 0% used [0x00000000eaab0000,0x00000000eaab0000,0x00000000ec9e0000)
      from space 8192K, 9% used [0x00000000ec9e0000,0x00000000ecaa0000,0x00000000ed1e0000)
      to   space 8256K, 0% used [0x00000000ef0c0000,0x00000000ef0c0000,0x00000000ef8d0000)
    ParOldGen       total 29952K, used 15297K [0x00000000c0000000, 0x00000000c1d40000, 0x00000000eaab0000)
      object space 29952K, 51% used [0x00000000c0000000,0x00000000c0ef0798,0x00000000c1d40000)
    PSPermGen       total 21248K, used 6721K [0x00000000bae00000, 0x00000000bc2c0000, 0x00000000c0000000)
      object space 21248K, 31% used [0x00000000bae00000,0x00000000bb4904f8,0x00000000bc2c0000)
    Event: 1532.671 GC heap before
    {Heap before GC invocations=9 (full 1):
    PSYoungGen      total 40128K, used 32704K [0x00000000eaab0000, 0x00000000ef8d0000, 0x0000000100000000)
      eden space 31936K, 100% used [0x00000000eaab0000,0x00000000ec9e0000,0x00000000ec9e0000)
      from space 8192K, 9% used [0x00000000ec9e0000,0x00000000ecaa0000,0x00000000ed1e0000)
      to   space 8256K, 0% used [0x00000000ef0c0000,0x00000000ef0c0000,0x00000000ef8d0000)
    ParOldGen       total 29952K, used 15297K [0x00000000c0000000, 0x00000000c1d40000, 0x00000000eaab0000)
      object space 29952K, 51% used [0x00000000c0000000,0x00000000c0ef0798,0x00000000c1d40000)
    PSPermGen       total 21248K, used 6764K [0x00000000bae00000, 0x00000000bc2c0000, 0x00000000c0000000)
      object space 21248K, 31% used [0x00000000bae00000,0x00000000bb49b0d0,0x00000000bc2c0000)
    Event: 1532.674 GC heap after
    Heap after GC invocations=9 (full 1):
    PSYoungGen      total 71232K, used 640K [0x00000000eaab0000, 0x00000000ef870000, 0x0000000100000000)
      eden space 63360K, 0% used [0x00000000eaab0000,0x00000000eaab0000,0x00000000ee890000)
      from space 7872K, 8% used [0x00000000ef0c0000,0x00000000ef160000,0x00000000ef870000)
      to   space 8128K, 0% used [0x00000000ee890000,0x00000000ee890000,0x00000000ef080000)
    ParOldGen       total 29952K, used 15297K [0x00000000c0000000, 0x00000000c1d40000, 0x00000000eaab0000)
      object space 29952K, 51% used [0x00000000c0000000,0x00000000c0ef0798,0x00000000c1d40000)
    PSPermGen       total 21248K, used 6764K [0x00000000bae00000, 0x00000000bc2c0000, 0x00000000c0000000)
      object space 21248K, 31% used [0x00000000bae00000,0x00000000bb49b0d0,0x00000000bc2c0000)
    Event: 2415.833 GC heap before
    {Heap before GC invocations=10 (full 1):
    PSYoungGen      total 71232K, used 64000K [0x00000000eaab0000, 0x00000000ef870000, 0x0000000100000000)
      eden space 63360K, 100% used [0x00000000eaab0000,0x00000000ee890000,0x00000000ee890000)
      from space 7872K, 8% used [0x00000000ef0c0000,0x00000000ef160000,0x00000000ef870000)
      to   space 8128K, 0% used [0x00000000ee890000,0x00000000ee890000,0x00000000ef080000)
    ParOldGen       total 29952K, used 15297K [0x00000000c0000000, 0x00000000c1d40000, 0x00000000eaab0000)
      object space 29952K, 51% used [0x00000000c0000000,0x00000000c0ef0798,0x00000000c1d40000)
    PSPermGen       total 21248K, used 6811K [0x00000000bae00000, 0x00000000bc2c0000, 0x00000000c0000000)
      object space 21248K, 32% used [0x00000000bae00000,0x00000000bb4a6d00,0x00000000bc2c0000)
    Event: 2415.834 GC heap after
    Heap after GC invocations=10 (full 1):
    PSYoungGen      total 71488K, used 960K [0x00000000eaab0000, 0x00000000f1c60000, 0x0000000100000000)
      eden space 63360K, 0% used [0x00000000eaab0000,0x00000000eaab0000,0x00000000ee890000)
      from space 8128K, 11% used [0x00000000ee890000,0x00000000ee980000,0x00000000ef080000)
      to   space 7936K, 0% used [0x00000000f14a0000,0x00000000f14a0000,0x00000000f1c60000)
    ParOldGen       total 29952K, used 15393K [0x00000000c0000000, 0x00000000c1d40000, 0x00000000eaab0000)
      object space 29952K, 51% used [0x00000000c0000000,0x00000000c0f087e8,0x00000000c1d40000)
    PSPermGen       total 21248K, used 6811K [0x00000000bae00000, 0x00000000bc2c0000, 0x00000000c0000000)
      object space 21248K, 32% used [0x00000000bae00000,0x00000000bb4a6d00,0x00000000bc2c0000)
    Event: 3564.860 GC heap before
    {Heap before GC invocations=11 (full 1):
    PSYoungGen      total 71488K, used 64320K [0x00000000eaab0000, 0x00000000f1c60000, 0x0000000100000000)
      eden space 63360K, 100% used [0x00000000eaab0000,0x00000000ee890000,0x00000000ee890000)
      from space 8128K, 11% used [0x00000000ee890000,0x00000000ee980000,0x00000000ef080000)
      to   space 7936K, 0% used [0x00000000f14a0000,0x00000000f14a0000,0x00000000f1c60000)
    ParOldGen       total 29952K, used 15393K [0x00000000c0000000, 0x00000000c1d40000, 0x00000000eaab0000)
      object space 29952K, 51% used [0x00000000c0000000,0x00000000c0f087e8,0x00000000c1d40000)
    PSPermGen       total 21248K, used 6848K [0x00000000bae00000, 0x00000000bc2c0000, 0x00000000c0000000)
      object space 21248K, 32% used [0x00000000bae00000,0x00000000bb4b0338,0x00000000bc2c0000)
    Event: 3564.862 GC heap after
    Heap after GC invocations=11 (full 1):
    PSYoungGen      total 107584K, used 576K [0x00000000eaab0000, 0x00000000f1bd0000, 0x0000000100000000)
      eden space 100224K, 0% used [0x00000000eaab0000,0x00000000eaab0000,0x00000000f0c90000)
      from space 7360K, 7% used [0x00000000f14a0000,0x00000000f1530000,0x00000000f1bd0000)
      to   space 7808K, 0% used [0x00000000f0c90000,0x00000000f0c90000,0x00000000f1430000)
    ParOldGen       total 29952K, used 15562K [0x00000000c0000000, 0x00000000c1d40000, 0x00000000eaab0000)
      object space 29952K, 51% used [0x00000000c0000000,0x00000000c0f32848,0x00000000c1d40000)
    PSPermGen       total 21248K, used 6848K [0x00000000bae00000, 0x00000000bc2c0000, 0x00000000c0000000)
      object space 21248K, 32% used [0x00000000bae00000,0x00000000bb4b0338,0x00000000bc2c0000)
    Event: 4661.819 GC heap before
    {Heap before GC invocations=12 (full 1):
    PSYoungGen      total 107584K, used 100800K [0x00000000eaab0000, 0x00000000f1bd0000, 0x0000000100000000)
      eden space 100224K, 100% used [0x00000000eaab0000,0x00000000f0c90000,0x00000000f0c90000)
      from space 7360K, 7% used [0x00000000f14a0000,0x00000000f1530000,0x00000000f1bd0000)
      to   space 7808K, 0% used [0x00000000f0c90000,0x00000000f0c90000,0x00000000f1430000)
    ParOldGen       total 29952K, used 15562K [0x00000000c0000000, 0x00000000c1d40000, 0x00000000eaab0000)
      object space 29952K, 51% used [0x00000000c0000000,0x00000000c0f32848,0x00000000c1d40000)
    PSPermGen       total 21248K, used 6868K [0x00000000bae00000, 0x00000000bc2c0000, 0x00000000c0000000)
      object space 21248K, 32% used [0x00000000bae00000,0x00000000bb4b53c8,0x00000000bc2c0000)
    Event: 4661.820 GC heap after
    Heap after GC invocations=12 (full 1):
    PSYoungGen      total 108032K, used 704K [0x00000000eaab0000, 0x00000000f53b0000, 0x0000000100000000)
      eden space 100224K, 0% used [0x00000000eaab0000,0x00000000eaab0000,0x00000000f0c90000)
      from space 7808K, 9% used [0x00000000f0c90000,0x00000000f0d40000,0x00000000f1430000)
      to   space 7552K, 0% used [0x00000000f4c50000,0x00000000f4c50000,0x00000000f53b0000)
    ParOldGen       total 29952K, used 15594K [0x00000000c0000000, 0x00000000c1d40000, 0x00000000eaab0000)
      object space 29952K, 52% used [0x00000000c0000000,0x00000000c0f3a848,0x00000000c1d40000)
    PSPermGen       total 21248K, used 6868K [0x00000000bae00000, 0x00000000bc2c0000, 0x00000000c0000000)
      object space 21248K, 32% used [0x00000000bae00000,0x00000000bb4b53c8,0x00000000bc2c0000)
    Deoptimization events (10 events):
    Event: 1030.601 Thread 0x00007fbcc4619800 Uncommon trap -34 fr.pc 0x00007fbcc0863418
    Event: 1175.846 Thread 0x00007fbcc4619800 Uncommon trap -34 fr.pc 0x00007fbcc0863418
    Event: 1182.839 Thread 0x00007fbcc4619800 Uncommon trap -34 fr.pc 0x00007fbcc0863418
    Event: 1297.158 Thread 0x00007fbcc4619800 Uncommon trap -122 fr.pc 0x00007fbcc0851b3c
    Event: 1665.442 Thread 0x00007fbcc4619800 Uncommon trap -83 fr.pc 0x00007fbcc08a20fc
    Event: 1665.442 Thread 0x00007fbcc4619800 Uncommon trap -83 fr.pc 0x00007fbcc0881eb4
    Event: 1682.396 Thread 0x00007fbcc4619800 Uncommon trap -83 fr.pc 0x00007fbcc086908c
    Event: 1800.266 Thread 0x00007fbcc4619800 Uncommon trap -83 fr.pc 0x00007fbcc085da7c
    Event: 2579.579 Thread 0x00007fbcc4619800 Uncommon trap -12 fr.pc 0x00007fbcc08b2584
    Event: 4892.024 Thread 0x00007fbcc4619800 Uncommon trap -12 fr.pc 0x00007fbcc08b7598
    Internal exceptions (10 events):
    Event: 135.214 Thread 0x00007fbcc4619800 Threw 0x00000000eaf84e08 at /HUDSON/workspace/jdk7u6-2-build-linux-amd64-product/jdk7u6/hotspot/src/share/vm/prims/jvm.cpp:1166
    Event: 135.215 Thread 0x00007fbcc4619800 Threw 0x00000000eafed3c8 at /HUDSON/workspace/jdk7u6-2-build-linux-amd64-product/jdk7u6/hotspot/src/share/vm/prims/jvm.cpp:1166
    Event: 263.679 Thread 0x00007fbcc4619800 Threw 0x00000000eb855ba8 at /HUDSON/workspace/jdk7u6-2-build-linux-amd64-product/jdk7u6/hotspot/src/share/vm/prims/jvm.cpp:1166
    Event: 769.972 Thread 0x00007fbcc4619800 Threw 0x00000000ebe42428 at /HUDSON/workspace/jdk7u6-2-build-linux-amd64-product/jdk7u6/hotspot/src/share/vm/prims/jvm.cpp:1166
    Event: 769.973 Thread 0x00007fbcc4619800 Threw 0x00000000ebe46b98 at /HUDSON/workspace/jdk7u6-2-build-linux-amd64-product/jdk7u6/hotspot/src/share/vm/prims/jvm.cpp:1166
    Event: 1297.157 Thread 0x00007fbcc4619800 Threw 0x00000000ebdad4e0 at /HUDSON/workspace/jdk7u6-2-build-linux-amd64-product/jdk7u6/hotspot/src/share/vm/prims/jvm.cpp:1166
    Event: 1665.441 Thread 0x00007fbcc4619800 Threw 0x00000000eb8d6848 at /HUDSON/workspace/jdk7u6-2-build-linux-amd64-product/jdk7u6/hotspot/src/share/vm/prims/jvm.cpp:1166
    Event: 2400.274 Thread 0x00007fbc68014000 Threw 0x00000000eabbec48 at /HUDSON/workspace/jdk7u6-2-build-linux-amd64-product/jdk7u6/hotspot/src/share/vm/prims/jni.cpp:742
    Event: 2579.579 Thread 0x00007fbcc4619800 Implicit null exception at 0x00007fbcc08b11b6 to 0x00007fbcc08b2571
    Event: 4892.024 Thread 0x00007fbcc4619800 Implicit null exception at 0x00007fbcc08b621a to 0x00007fbcc08b7585
    Events (10 events):
    Event: 4948.484 Thread 0x00007fbc74265000 Thread added: 0x00007fbc74265000
    Event: 4948.484 Thread 0x00007fbc7426b800 Thread added: 0x00007fbc7426b800
    Event: 4948.616 Executing VM operation: RevokeBias
    Event: 4948.616 Executing VM operation: RevokeBias done
    Event: 4948.616 Thread 0x00007fbc7426b800 Thread exited: 0x00007fbc7426b800
    Event: 4948.622 Executing VM operation: RevokeBias
    Event: 4948.622 Executing VM operation: RevokeBias done
    Event: 4948.622 Thread 0x00007fbc74265000 Thread exited: 0x00007fbc74265000
    Event: 5481.896 Thread 0x00007fbcc40e4800 flushing nmethod 0x00007fbcc0851690
    Event: 5536.245 Thread 0x00007fbcc40e7800 flushing nmethod 0x00007fbcc0862510
    Dynamic libraries:
    00400000-00401000 r-xp 00000000 08:02 658256                             /usr/java/jre1.7.0_06/bin/java
    00600000-00601000 rw-p 00000000 08:02 658256                             /usr/java/jre1.7.0_06/bin/java
    01ae6000-01b07000 rw-p 00000000 00:00 0                                  [heap]
    bae00000-bc2c0000 rw-p 00000000 00:00 0
    bc2c0000-c0000000 rw-p 00000000 00:00 0
    c0000000-c1d40000 rw-p 00000000 00:00 0
    c1d40000-eaab0000 rw-p 00000000 00:00 0
    eaab0000-f53b0000 rw-p 00000000 00:00 0
    f53b0000-100000000 rw-p 00000000 00:00 0
    3647c00000-3647c20000 r-xp 00000000 08:06 343                            /lib64/ld-2.12.so
    3647e1f000-3647e20000 r--p 0001f000 08:06 343                            /lib64/ld-2.12.so
    3647e20000-3647e21000 rw-p 00020000 08:06 343                            /lib64/ld-2.12.so
    3647e21000-3647e22000 rw-p 00000000 00:00 0
    3648000000-364818a000 r-xp 00000000 08:06 344                            /lib64/libc-2.12.so
    364818a000-3648389000 ---p 0018a000 08:06 344                            /lib64/libc-2.12.so
    3648389000-364838d000 r--p 00189000 08:06 344                            /lib64/libc-2.12.so
    364838d000-364838e000 rw-p 0018d000 08:06 344                            /lib64/libc-2.12.so
    364838e000-3648393000 rw-p 00000000 00:00 0
    3648400000-3648483000 r-xp 00000000 08:06 348                            /lib64/libm-2.12.so
    3648483000-3648682000 ---p 00083000 08:06 348                            /lib64/libm-2.12.so
    3648682000-3648683000 r--p 00082000 08:06 348                            /lib64/libm-2.12.so
    3648683000-3648684000 rw-p 00083000 08:06 348                            /lib64/libm-2.12.so
    3648800000-3648802000 r-xp 00000000 08:06 351                            /lib64/libdl-2.12.so
    3648802000-3648a02000 ---p 00002000 08:06 351                            /lib64/libdl-2.12.so
    3648a02000-3648a03000 r--p 00002000 08:06 351                            /lib64/libdl-2.12.so
    3648a03000-3648a04000 rw-p 00003000 08:06 351                            /lib64/libdl-2.12.so
    3648c00000-3648c17000 r-xp 00000000 08:06 345                            /lib64/libpthread-2.12.so
    3648c17000-3648e17000 ---p 00017000 08:06 345                            /lib64/libpthread-2.12.so
    3648e17000-3648e18000 r--p 00017000 08:06 345                            /lib64/libpthread-2.12.so
    3648e18000-3648e19000 rw-p 00018000 08:06 345                            /lib64/libpthread-2.12.so
    3648e19000-3648e1d000 rw-p 00000000 00:00 0
    3649400000-3649407000 r-xp 00000000 08:06 352                            /lib64/librt-2.12.so
    3649407000-3649606000 ---p 00007000 08:06 352                            /lib64/librt-2.12.so
    3649606000-3649607000 r--p 00006000 08:06 352                            /lib64/librt-2.12.so
    3649607000-3649608000 rw-p 00007000 08:06 352                            /lib64/librt-2.12.so
    364a000000-364a016000 r-xp 00000000 08:06 386                            /lib64/libresolv-2.12.so
    364a016000-364a216000 ---p 00016000 08:06 386                            /lib64/libresolv-2.12.so
    364a216000-364a217000 r--p 00016000 08:06 386                            /lib64/libresolv-2.12.so
    364a217000-364a218000 rw-p 00017000 08:06 386                            /lib64/libresolv-2.12.so
    364a218000-364a21a000 rw-p 00000000 00:00 0
    7fbc34000000-7fbc34021000 rw-p 00000000 00:00 0
    7fbc34021000-7fbc38000000 ---p 00000000 00:00 0
    7fbc38000000-7fbc38021000 rw-p 00000000 00:00 0
    7fbc38021000-7fbc3c000000 ---p 00000000 00:00 0
    7fbc3c000000-7fbc3c021000 rw-p 00000000 00:00 0
    7fbc3c021000-7fbc40000000 ---p 00000000 00:00 0
    7fbc40000000-7fbc40021000 rw-p 00000000 00:00 0
    7fbc40021000-7fbc44000000 ---p 00000000 00:00 0
    7fbc44000000-7fbc44021000 rw-p 00000000 00:00 0
    7fbc44021000-7fbc48000000 ---p 00000000 00:00 0
    7fbc48000000-7fbc48021000 rw-p 00000000 00:00 0
    7fbc48021000-7fbc4c000000 ---p 00000000 00:00 0
    7fbc4c000000-7fbc4c021000 rw-p 00000000 00:00 0
    7fbc4c021000-7fbc50000000 ---p 00000000 00:00 0
    7fbc50000000-7fbc50021000 rw-p 00000000 00:00 0
    7fbc50021000-7fbc54000000 ---p 00000000 00:00 0
    7fbc54000000-7fbc54040000 rw-p 00000000 00:00 0
    7fbc54040000-7fbc58000000 ---p 00000000 00:00 0
    7fbc58000000-7fbc58021000 rw-p 00000000 00:00 0
    7fbc58021000-7fbc5c000000 ---p 00000000 00:00 0
    7fbc5c000000-7fbc5c021000 rw-p 00000000 00:00 0
    7fbc5c021000-7fbc60000000 ---p 00000000 00:00 0
    7fbc60000000-7fbc60021000 rw-p 00000000 00:00 0
    7fbc60021000-7fbc64000000 ---p 00000000 00:00 0
    7fbc64000000-7fbc64021000 rw-p 00000000 00:00 0
    7fbc64021000-7fbc68000000 ---p 00000000 00:00 0
    7fbc68000000-7fbc68024000 rw-p 00000000 00:00 0
    7fbc68024000-7fbc6c000000 ---p 00000000 00:00 0
    7fbc6c000000-7fbc6c021000 rw-p 00000000 00:00 0
    7fbc6c021000-7fbc70000000 ---p 00000000 00:00 0
    7fbc70000000-7fbc70021000 rw-p 00000000 00:00 0
    7fbc70021000-7fbc74000000 ---p 00000000 00:00 0
    7fbc74000000-7fbc7428b000 rw-p 00000000 00:00 0
    7fbc7428b000-7fbc78000000 ---p 00000000 00:00 0
    7fbc78000000-7fbc78021000 rw-p 00000000 00:00 0
    7fbc78021000-7fbc7c000000 ---p 00000000 00:00 0
    7fbc7c000000-7fbc7c021000 rw-p 00000000 00:00 0
    7fbc7c021000-7fbc80000000 ---p 00000000 00:00 0
    7fbc80000000-7fbc80021000 rw-p 00000000 00:00 0
    7fbc80021000-7fbc84000000 ---p 00000000 00:00 0
    7fbc84000000-7fbc84a1b000 rw-p 00000000 00:00 0
    7fbc84a1b000-7fbc88000000 ---p 00000000 00:00 0
    7fbc88000000-7fbc8a3cf000 rw-p 00000000 00:00 0
    7fbc8a3cf000-7fbc8c000000 ---p 00000000 00:00 0
    7fbc8c000000-7fbc8c021000 rw-p 00000000 00:00 0
    7fbc8c021000-7fbc90000000 ---p 00000000 00:00 0
    7fbc92170000-7fbc98000000 r--p 00000000 08:02 796195                     /usr/lib/locale/locale-archive
    7fbc98000000-7fbc98021000 rw-p 00000000 00:00 0
    7fbc98021000-7fbc9c000000 ---p 00000000 00:00 0
    7fbc9c000000-7fbc9c021000 rw-p 00000000 00:00 0
    7fbc9c021000-7fbca0000000 ---p 00000000 00:00 0
    7fbca0000000-7fbca0021000 rw-p 00000000 00:00 0
    7fbca0021000-7fbca4000000 ---p 00000000 00:00 0
    7fbca4000000-7fbca4021000 rw-p 00000000 00:00 0
    7fbca4021000-7fbca8000000 ---p 00000000 00:00 0
    7fbca8000000-7fbca8021000 rw-p 00000000 00:00 0
    7fbca8021000-7fbcac000000 ---p 00000000 00:00 0
    7fbcb0000000-7fbcb0021000 rw-p 00000000 00:00 0
    7fbcb0021000-7fbcb4000000 ---p 00000000 00:00 0
    7fbcb50d6000-7fbcb50d9000 ---p 00000000 00:00 0
    7fbcb50d9000-7fbcb51d7000 rw-p 00000000 00:00 0
    7fbcb51d7000-7fbcb51da000 ---p 00000000 00:00 0
    7fbcb51da000-7fbcb52d8000 rw-p 00000000 00:00 0
    7fbcb52d8000-7fbcb52db000 ---p 00000000 00:00 0
    7fbcb52db000-7fbcb53d9000 rw-p 00000000 00:00 0
    7fbcb53d9000-7fbcb53dc000 ---p 00000000 00:00 0
    7fbcb53dc000-7fbcb54da000 rw-p 00000000 00:00 0
    7fbcb54da000-7fbcb54dd000 ---p 00000000 00:00 0
    7fbcb54dd000-7fbcb55db000 rw-p 00000000 00:00 0
    7fbcb55db000-7fbcb55de000 ---p 00000000 00:00 0
    7fbcb55de000-7fbcb56dc000 rw-p 00000000 00:00 0
    7fbcb56dc000-7fbcb56df000 ---p 00000000 00:00 0
    7fbcb56df000-7fbcb57dd000 rw-p 00000000 00:00 0
    7fbcb57dd000-7fbcb57e0000 ---p 00000000 00:00 0
    7fbcb57e0000-7fbcb58de000 rw-p 00000000 00:00 0
    7fbcb58de000-7fbcb58e1000 ---p 00000000 00:00 0
    7fbcb58e1000-7fbcb59df000 rw-p 00000000 00:00 0
    7fbcb59df000-7fbcb59e2000 ---p 00000000 00:00 0
    7fbcb59e2000-7fbcb5ae0000 rw-p 00000000 00:00 0
    7fbcb5ae0000-7fbcb5ae3000 ---p 00000000 00:00 0
    7fbcb5ae3000-7fbcb5be1000 rw-p 00000000 00:00 0
    7fbcb5be1000-7fbcb5be4000 ---p 00000000 00:00 0
    7fbcb5be4000-7fbcb5ce2000 rw-p 00000000 00:00 0
    7fbcb5ce2000-7fbcb5ce5000 ---p 00000000 00:00 0
    7fbcb5ce5000-7fbcb5de3000 rw-p 00000000 00:00 0
    7fbcb5de3000-7fbcb5de6000 ---p 00000000 00:00 0
    7fbcb5de6000-7fbcb5ee4000 rw-p 00000000 00:00 0
    7fbcb5ee4000-7fbcb5ee7000 ---p 00000000 00:00 0
    7fbcb5ee7000-7fbcb5fe5000 rw-p 00000000 00:00 0
    7fbcb5fe5000-7fbcb5fe8000 ---p 00000000 00:00 0
    7fbcb5fe8000-7fbcb60e6000 rw-p 00000000 00:00 0
    7fbcb60e6000-7fbcb60e9000 ---p 00000000 00:00 0
    7fbcb60e9000-7fbcb61e7000 rw-p 00000000 00:00 0
    7fbcb61e7000-7fbcb61ea000 ---p 00000000 00:00 0
    7fbcb61ea000-7fbcb62e8000 rw-p 00000000 00:00 0
    7fbcb62e8000-7fbcb62eb000 ---p 00000000 00:00 0
    7fbcb62eb000-7fbcb63e9000 rw-p 00000000 00:00 0
    7fbcb63e9000-7fbcb63ec000 ---p 00000000 00:00 0
    7fbcb63ec000-7fbcb64ea000 rw-p 00000000 00:00 0
    7fbcb64ea000-7fbcb64ed000 ---p 00000000 00:00 0
    7fbcb64ed000-7fbcb65eb000 rw-p 00000000 00:00 0
    7fbcb65eb000-7fbcb65f0000 r-xp 00000000 08:06 8064                       /lib64/libnss_dns-2.12.so
    7fbcb65f0000-7fbcb67ef000 ---p 00005000 08:06 8064                       /lib64/libnss_dns-2.12.so
    7fbcb67ef000-7fbcb67f0000 r--p 00004000 08:06 8064                       /lib64/libnss_dns-2.12.so
    7fbcb67f0000-7fbcb67f1000 rw-p 00005000 08:06 8064                       /lib64/libnss_dns-2.12.so
    7fbcb67f1000-7fbcb67f4000 ---p 00000000 00:00 0
    7fbcb67f4000-7fbcb68f2000 rw-p 00000000 00:00 0
    7fbcb68f2000-7fbcb68f5000 ---p 00000000 00:00 0
    7fbcb68f5000-7fbcb69f3000 rw-p 00000000 00:00 0
    7fbcb69f3000-7fbcb69f6000 ---p 00000000 00:00 0
    7fbcb69f6000-7fbcb6af4000 rw-p 00000000 00:00 0
    7fbcb6af4000-7fbcb6af7000 ---p 00000000 00:00 0
    7fbcb6af7000-7fbcb6bf5000 rw-p 00000000 00:00 0
    7fbcb6bf5000-7fbcb6bf8000 ---p 00000000 00:00 0
    7fbcb6bf8000-7fbcb6cf6000 rw-p 00000000 00:00 0
    7fbcb6cf6000-7fbcb6cf9000 ---p 00000000 00:00 0
    7fbcb6cf9000-7fbcb6df7000 rw-p 00000000 00:00 0
    7fbcb6df7000-7fbcb6dfa000 ---p 00000000 00:00 0
    7fbcb6dfa000-7fbcb6ef8000 rw-p 00000000 00:00 0
    7fbcb6ef8000-7fbcb6efb000 ---p 00000000 00:00 0
    7fbcb6efb000-7fbcb6ff9000 rw-p 00000000 00:00 0
    7fbcb6ff9000-7fbcb6ffc000 ---p 00000000 00:00 0
    7fbcb6ffc000-7fbcb70fa000 rw-p 00000000 00:00 0
    7fbcb70fa000-7fbcb710f000 r-xp 00000000 08:02 658313                     /usr/java/jre1.7.0_06/lib/amd64/libnet.so
    7fbcb710f000-7fbcb730f000 ---p 00015000 08:02 658313                     /usr/java/jre1.7.0_06/lib/amd64/libnet.so
    7fbcb730f000-7fbcb7310000 rw-p 00015000 08:02 658313                     /usr/java/jre1.7.0_06/lib/amd64/libnet.so
    7fbcb7310000-7fbcb7320000 r-xp 00000000 08:02 658314                     /usr/java/jre1.7.0_06/lib/amd64/libnio.so
    7fbcb7320000-7fbcb7520000 ---p 00010000 08:02 658314                     /usr/java/jre1.7.0_06/lib/amd64/libnio.so
    7fbcb7520000-7fbcb7521000 rw-p 00010000 08:02 658314                     /usr/java/jre1.7.0_06/lib/amd64/libnio.so
    7fbcb7521000-7fbcb7527000 r-xp 00000000 08:02 658276                     /usr/java/jre1.7.0_06/lib/amd64/headless/libmawt.so
    7fbcb7527000-7fbcb7727000 ---p 00006000 08:02 658276                     /usr/java/jre1.7.0_06/lib/amd64/headless/libmawt.so
    7fbcb7727000-7fbcb7728000 rw-p 00006000 08:02 658276                     /usr/java/jre1.7.0_06/lib/amd64/headless/libmawt.so
    7fbcb7728000-7fbcb77ca000 r-xp 00000000 08:02 658281                     /usr/java/jre1.7.0_06/lib/amd64/libawt.so
    7fbcb77ca000-7fbcb79ca000 ---p 000a2000 08:02 658281                     /usr/java/jre1.7.0_06/lib/amd64/libawt.so
    7fbcb79ca000-7fbcb79d6000 rw-p 000a2000 08:02 658281                     /usr/java/jre1.7.0_06/lib/amd64/libawt.so
    7fbcb79d6000-7fbcb79fa000 rw-p 00000000 00:00 0
    7fbcb79fa000-7fbcb79fb000 ---p 00000000 00:00 0
    7fbcb79fb000-7fbcb7afb000 rw-p 00000000 00:00 0
    7fbcb7afb000-7fbcb7afe000 ---p 00000000 00:00 0
    7fbcb7afe000-7fbcb7bfc000 rw-p 00000000 00:00 0
    7fbcb7bfc000-7fbcb7bff000 ---p 00000000 00:00 0
    7fbcb7bff000-7fbcb7cfd000 rw-p 00000000 00:00 0
    7fbcb7cfd000-7fbcb7d00000 ---p 00000000 00:00 0
    7fbcb7d00000-7fbcb7dfe000 rw-p 00000000 00:00 0
    7fbcb7dfe000-7fbcb7e01000 ---p 00000000 00:00 0
    7fbcb7e01000-7fbcb7eff000 rw-p 00000000 00:00 0
    7fbcb7eff000-7fbcb7f02000 ---p 00000000 00:00 0
    7fbcb7f02000-7fbcb8000000 rw-p 00000000 00:00 0
    7fbcb8000000-7fbcb8021000 rw-p 00000000 00:00 0
    7fbcb8021000-7fbcbc000000 ---p 00000000 00:00 0
    7fbcbc0ef000-7fbcbc0f2000 ---p 00000000 00:00 0
    7fbcbc0f2000-7fbcbc1f0000 rw-p 00000000 00:00 0
    7fbcbc1f0000-7fbcbc1f1000 ---p 00000000 00:00 0
    7fbcbc1f1000-7fbcbd31a000 rw-p 00000000 00:00 0
    7fbcbd31a000-7fbcbd4e6000 r--s 01665000 08:02 658895                     /usr/java/jre1.7.0_06/lib/rt.jar
    7fbcbd4e6000-7fbcc001a000 rw-p 00000000 00:00 0
    7fbcc001a000-7fbcc001b000 ---p 00000000 00:00 0
    7fbcc001b000-7fbcc011b000 rw-p 00000000 00:00 0
    7fbcc011b000-7fbcc011c000 ---p 00000000 00:00 0
    7fbcc011c000-7fbcc021c000 rw-p 00000000 00:00 0
    7fbcc021c000-7fbcc021d000 ---p 00000000 00:00 0
    7fbcc021d000-7fbcc031d000 rw-p 00000000 00:00 0
    7fbcc031d000-7fbcc031e000 ---p 00000000 00:00 0
    7fbcc031e000-7fbcc042d000 rw-p 00000000 00:00 0
    7fbcc042d000-7fbcc0574000 rw-p 00000000 00:00 0
    7fbcc0574000-7fbcc057f000 rw-p 00000000 00:00 0
    7fbcc057f000-7fbcc059d000 rw-p 00000000 00:00 0
    7fbcc059d000-7fbcc05ac000 rw-p 00000000 00:00 0
    7fbcc05ac000-7fbcc06f2000 rw-p 00000000 00:00 0
    7fbcc06f2000-7fbcc0747000 rw-p 00000000 00:00 0
    7fbcc0747000-7fbcc079d000 rw-p 00000000 00:00 0
    7fbcc079d000-7fbcc079e000 rw-p 00000000 00:00 0
    7fbcc079e000-7fbcc0a0e000 rwxp 00000000 00:00 0
    7fbcc0a0e000-7fbcc379e000 rw-p 00000000 00:00 0
    7fbcc379e000-7fbcc37b8000 r-xp 00000000 08:02 658325                     /usr/java/jre1.7.0_06/lib/amd64/libzip.so
    7fbcc37b8000-7fbcc39b8000 ---p 0001a000 08:02 658325                     /usr/java/jre1.7.0_06/lib/amd64/libzip.so
    7fbcc39b8000-7fbcc39b9000 rw-p 0001a000 08:02 658325                     /usr/java/jre1.7.0_06/lib/amd64/libzip.so
    7fbcc39b9000-7fbcc39c5000 r-xp 00000000 08:06 8068                       /lib64/libnss_files-2.12.so
    7fbcc39c5000-7fbcc3bc5000 ---p 0000c000 08:06 8068                       /lib64/libnss_files-2.12.so
    7fbcc3bc5000-7fbcc3bc6000 r--p 0000c000 08:06 8068                       /lib64/libnss_files-2.12.so
    7fbcc3bc6000-7fbcc3bc7000 rw-p 0000d000 08:06 8068                       /lib64/libnss_files-2.12.so
    7fbcc3bc7000-7fbcc3bf0000 r-xp 00000000 08:02 658295                     /usr/java/jre1.7.0_06/lib/amd64/libjava.so
    7fbcc3bf0000-7fbcc3df0000 ---p 00029000 08:02 658295                     /usr/java/jre1.7.0_06/lib/amd64/libjava.so
    7fbcc3df0000-7fbcc3df2000 rw-p 00029000 08:02 658295                     /usr/java/jre1.7.0_06/lib/amd64/libjava.so
    7fbcc3df2000-7fbcc3dff000 r-xp 00000000 08:02 658324                     /usr/java/jre1.7.0_06/lib/amd64/libverify.so
    7fbcc3dff000-7fbcc3ffe000 ---p 0000d000 08:02 658324                     /usr/java/jre1.7.0_06/lib/amd64/libverify.so
    7fbcc3ffe000-7fbcc4000000 rw-p 0000c000 08:02 658324                     /usr/java/jre1.7.0_06/lib/amd64/libverify.so
    7fbcc4000000-7fbcc462c000 rw-p 00000000 00:00 0
    7fbcc462c000-7fbcc8000000 ---p 00000000 00:00 0
    7fbcc803d000-7fbcc804f000 r--s 000d8000 08:08 21758031                   /home/jesse/isoserver/IsoServer.jar
    7fbcc804f000-7fbcc8082000 rw-p 00000000 00:00 0
    7fbcc8082000-7fbcc80a0000 rw-p 00000000 00:00 0
    7fbcc80a0000-7fbcc80aa000 rw-p 00000000 00:00 0
    7fbcc80aa000-7fbcc8160000 rw-p 00000000 00:00 0
    7fbcc8160000-7fbcc8163000 ---p 00000000 00:00 0
    7fbcc8163000-7fbcc8261000 rw-p 00000000 00:00 0
    7fbcc8261000-7fbcc8ca8000 r-xp 00000000 08:02 658329                     /usr/java/jre1.7.0_06/lib/amd64/server/libjvm.so
    7fbcc8ca8000-7fbcc8ea7000 ---p 00a47000 08:02 658329                     /usr/java/jre1.7.0_06/lib/amd64/server/libjvm.so
    7fbcc8ea7000-7fbcc8f4a000 rw-p 00a46000 08:02 658329                     /usr/java/jre1.7.0_06/lib/amd64/server/libjvm.so
    7fbcc8f4a000-7fbcc8f89000 rw-p 00000000 00:00 0
    7fbcc8f89000-7fbcc8f9f000 r-xp 00000000 08:02 658278                     /usr/java/jre1.7.0_06/lib/amd64/jli/libjli.so
    7fbcc8f9f000-7fbcc919e000 ---p 00016000 08:02 658278                     /usr/java/jre1.7.0_06/lib/amd64/jli/libjli.so
    7fbcc919e000-7fbcc919f000 rw-p 00015000 08:02 658278                     /usr/java/jre1.7.0_06/lib/amd64/jli/libjli.so
    7fbcc919f000-7fbcc91a0000 rw-p 00000000 00:00 0
    7fbcc91a1000-7fbcc91a2000 rw-p 00000000 00:00 0
    7fbcc91a2000-7fbcc91aa000 rw-s 00000000 08:07 292                        /tmp/hsperfdata_root/3126
    7fbcc91aa000-7fbcc91ab000 rw-p 00000000 00:00 0
    7fbcc91ab000-7fbcc91ac000 r--p 00000000 00:00 0
    7fbcc91ac000-7fbcc91ad000 rw-p 00000000 00:00 0
    7fffad99a000-7fffad9af000 rw-p 00000000 00:00 0                          [stack]
    7fffad9ff000-7fffada00000 r-xp 00000000 00:00 0                          [vdso]
    ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
    VM Arguments:
    jvm_args: -Xmx1024m
    java_command: Main.IsoServer nogui
    Launcher Type: SUN_STANDARD
    Environment Variables:
    JAVA_HOME=/usr/local/jdk
    CLASSPATH=.:/usr/local/jdk/lib/classes.zip:/usr/local/jdk/lib/mysql-connector-java-5.1.6.jar
    PATH=/usr/local/jdk/bin:/usr/lib64/qt-3.3/bin:/usr/lib/courier-imap/sbin:/usr/lib/courier-imap/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin
    SHELL=/bin/bash
    Signal Handlers:
    SIGSEGV: [libjvm.so+0x8a5a80], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
    SIGBUS: [libjvm.so+0x8a5a80], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
    SIGFPE: [libjvm.so+0x741b60], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
    SIGPIPE: [libjvm.so+0x741b60], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
    SIGXFSZ: [libjvm.so+0x741b60], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
    SIGILL: [libjvm.so+0x741b60], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
    SIGUSR1: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
    SIGUSR2: [libjvm.so+0x7414b0], sa_mask[0]=0x00000000, sa_flags=0x10000004
    SIGHUP: SIG_IGN, sa_mask[0]=0x00000000, sa_flags=0x00000000
    SIGINT: SIG_IGN, sa_mask[0]=0x00000000, sa_flags=0x00000000
    SIGTERM: [libjvm.so+0x743840], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
    SIGQUIT: [libjvm.so+0x743840], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
    ---------------  S Y S T E M  ---------------
    OS:CentOS release 6.4 (Final)
    uname:Linux 2.6.32-220.13.1.el6.x86_64 #1 SMP Tue Apr 17 23:56:34 BST 2012 x86_64
    libc:glibc 2.12 NPTL 2.12
    rlimit: STACK 10240k, CORE 0k, NPROC 15830, NOFILE 1024, AS infinity
    load average:0.08 0.02 0.01
    /proc/meminfo:
    MemTotal:        2045524 kB
    MemFree:           93212 kB
    Buffers:          215936 kB
    Cached:           957604 kB
    SwapCached:         7300 kB
    Active:           977036 kB
    Inactive:         786260 kB
    Active(anon):     338308 kB
    Inactive(anon):   253632 kB
    Active(file):     638728 kB
    Inactive(file):   532628 kB
    Unevictable:           0 kB
    Mlocked:               0 kB
    SwapTotal:       4095992 kB
    SwapFree:        4084172 kB
    Dirty:                20 kB
    Writeback:             0 kB
    AnonPages:        586236 kB
    Mapped:            31028 kB
    Shmem:              2128 kB
    Slab:             133656 kB
    SReclaimable:     102016 kB
    SUnreclaim:        31640 kB
    KernelStack:        2056 kB
    PageTables:        14972 kB
    NFS_Unstable:          0 kB
    Bounce:                0 kB
    WritebackTmp:          0 kB
    CommitLimit:     5118752 kB
    Committed_AS:    2418356 kB
    VmallocTotal:   34359738367 kB
    VmallocUsed:      275704 kB
    VmallocChunk:   34359355248 kB
    HardwareCorrupted:     0 kB
    AnonHugePages:    233472 kB
    HugePages_Total:       0
    HugePages_Free:        0
    HugePages_Rsvd:        0
    HugePages_Surp:        0
    Hugepagesize:       2048 kB
    DirectMap4k:        7744 kB
    DirectMap2M:     2080768 kB
    CPU:total 4 (4 cores per cpu, 1 threads per core) family 6 model 30 stepping 5, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, tsc, tscinvbit
    /proc/cpuinfo:
    processor    : 0
    vendor_id    : GenuineIntel
    cpu family    : 6
    model        : 30
    model name    : Intel(R) Core(TM) i5 CPU         760  @ 2.80GHz
    stepping    : 5
    cpu MHz        : 2800.022
    cache size    : 8192 KB
    physical id    : 0
    siblings    : 4
    core id        : 0
    cpu cores    : 4
    apicid        : 0
    initial apicid    : 0
    fpu        : yes
    fpu_exception    : yes
    cpuid level    : 11
    wp        : yes
    flags        : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm ida dts tpr_shadow vnmi flexpriority ept vpid
    bogomips    : 5600.04
    clflush size    : 64
    cache_alignment    : 64
    address sizes    : 36 bits physical, 48 bits virtual
    power management:
    processor    : 1
    vendor_id    : GenuineIntel
    cpu family    : 6
    model        : 30
    model name    : Intel(R) Core(TM) i5 CPU         760  @ 2.80GHz
    stepping    : 5
    cpu MHz        : 2800.022
    cache size    : 8192 KB
    physical id    : 0
    siblings    : 4
    core id        : 1
    cpu cores    : 4
    apicid        : 2
    initial apicid    : 2
    fpu        : yes
    fpu_exception    : yes
    cpuid level    : 11
    wp        : yes
    flags        : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm ida dts tpr_shadow vnmi flexpriority ept vpid
    bogomips    : 5599.14
    clflush size    : 64
    cache_alignment    : 64
    address sizes    : 36 bits physical, 48 bits virtual
    power management:
    processor    : 2
    vendor_id    : GenuineIntel
    cpu family    : 6
    model        : 30
    model name    : Intel(R) Core(TM) i5 CPU         760  @ 2.80GHz
    stepping    : 5
    cpu MHz        : 2800.022
    cache size    : 8192 KB
    physical id    : 0
    siblings    : 4
    core id        : 2
    cpu cores    : 4
    apicid        : 4
    initial apicid    : 4
    fpu        : yes
    fpu_exception    : yes
    cpuid level    : 11
    wp        : yes
    flags        : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm ida dts tpr_shadow vnmi flexpriority ept vpid
    bogomips    : 5599.14
    clflush size    : 64
    cache_alignment    : 64
    address sizes    : 36 bits physical, 48 bits virtual
    power management:
    processor    : 3
    vendor_id    : GenuineIntel
    cpu family    : 6
    model        : 30
    model name    : Intel(R) Core(TM) i5 CPU         760  @ 2.80GHz
    stepping    : 5
    cpu MHz        : 2800.022
    cache size    : 8192 KB
    physical id    : 0
    siblings    : 4
    core id        : 3
    cpu cores    : 4
    apicid        : 6
    initial apicid    : 6
    fpu        : yes
    fpu_exception    : yes
    cpuid level    : 11
    wp        : yes
    flags        : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm ida dts tpr_shadow vnmi flexpriority ept vpid
    bogomips    : 5599.14
    clflush size    : 64
    cache_alignment    : 64
    address sizes    : 36 bits physical, 48 bits virtual
    power management:
    Memory: 4k page, physical 2045524k(93212k free), swap 4095992k(4084172k free)
    vm_info: Java HotSpot(TM) 64-Bit Server VM (23.2-b09) for linux-amd64 JRE (1.7.0_06-b24), built on Aug  9 2012 19:49:48 by "java_re" with gcc 4.3.0 20080428 (Red Hat 4.3.0-8)
    time: Tue Jun 18 13:37:03 2013
    elapsed time: 5652 seconds

    Hi!
    I've got the jvm crashing when it calls native methods
    via the JNI.
    The same native method run without a glitch in "pure"
    C. So there is no bug in the native method, I suppose.
    What is more interesting
    is that the same java program with the same native
    interface runs fine using gij (from gnu) too!
    $ java -version
    java version "1.4.2"
    Java(TM) 2 Runtime Environment, Standard Edition
    (build 1.4.2-b28)
    Java HotSpot(TM) Client VM (build 1.4.2-b28, mixed
    mode)
    The native methods are in C. Compiled using gcc.
    $ gcc -v
    Reading specs from
    /usr/lib/gcc-lib/i386-redhat-linux/3.2/specs
    Configured with: ../configure --prefix=/usr
    mandir=/usr/share/man infodir=/usr/share/info
    enable-shared enable-threads=posix
    disable-checking host=i386-redhat-linux
    with-system-zlib enable-__cxa_atexit
    Thread model: posix
    gcc version 3.2 20020903 (Red Hat Linux 8.0 3.2-7)
    The machine is P4 on Red hat linux 8.0
    $ uname -a
    Linux vanee.mlaproxy.iitk.ac.in 2.4.18-14 #1 Wed Sep 4
    13:35:50 EDT 2002 i686 i686 i386 GNU/Linux
    The error message is
    An unexpected exception has been detected in native
    code outside the VM.
    Unexpected Signal : 11 occurred at PC=0x4CDBEDA3
    Function=Java_Medico_Producer_vanee+0x2B3
    Library=/home/asingh/Java/medico/develop/Source/libnati
    elib.so
    Current Java thread:
    at Medico.Producer.vanee(Native Method)
    at Medico.Producer.run(Producer.java:18)
    If you are interested, I can also post the dyanamic
    libraries.
    Any help is appreciated. Please cc me a copy at
    [email protected]
    Thanks,
    Abhishek.Signal 11 is a segmentation fault. If this runs fine in pure C then you may be passing it a null value on the Java side. I am unfamilar with gij, so I don't know what to say about that

  • Using java jni

    Hello,
    I'm trying to figure out a way to start small Java-Programs from within
    Labview 6.0.1. Does anybody know how to do this? Every time I use the
    call dll-function to invoke the java-jni api Labview crashes. Invoking
    Java via the active-x plugin doesn't work either.
    Any suggestions are welcome. Thanks.
    Norman Südekum

    Norman,
    Try updating to LabVIEW 6.0.2 to get all of the ActiveX fixes and try the ActiveX method again. (You cannot do this if you only have the Evaluation version.) You can also call java from the System Exec.vi if you do not need data directly back (you can transfer it many other ways: files, TCP, pipes, etc).
    Also, see the following:
    http://exchange.ni.com/servlet/ProcessRequest?RHIVEID=101&RNAME=ViewQuestion&HOID=506500000008000000102D0000&ECategory=LabVIEW.LabVIEW+General
    http://digital.ni.com/public.nsf/websearch/BEE812007BA2A9B486256BC80068A49A?OpenDocument
    Randy Hoskin
    Applications Engineer
    National Instruments
    http://www.ni.com/ask

  • Jni dos.h error

    I am trying to use a touch sensor off of the parallel port I have tried the java comm api package and that isn't working well so I turned to jni. I Have written the code in C and what should happen is if the state of the sensor changes it will return an int to me. The errors that I am getting are in dos.h and I think the solution may be a wrapper class. I have not worked a lot with c or jni so I do not know how to write the c wrapper. please help as quickly as possible as this project needs to be handed in tomorrow. You can reply to the post or e-mail me at [email protected]
    Here is the C code
    #include <jni.h>
    #include "DumbRobot.h"
    #include <stdio.h>
    #include <dos.h>
    #define DATA 0x378
    #define CONTROL DATA +1
    #define STATUS CONTROL +1
    JNIEXPORT jint JNICALL
    Java_DumbRobot_sensor(JNIEnv *env, jobject obj){
    int ival=0,ival2=0,state=0;
    char charval,charval2;
    int x=0;
    clrscr();
    outportb(DATA,0);
    while(1){
    outp(DATA,9);
    charval = ((inp(CONTROL) ^0x80) >> 3);
    ival = (int) charval;
    if(ival== 27){
    printf("HIT(front)\n");
    state=2;
    outportb(DATA,2);
    charval2=((inp(CONTROL) ^0x80) >> 3);
    ival2= (int) charval2;
    if(ival2== 29) {
    printf("HIT(back)\n");
    state=1;
    if(ival2==25 && ival==25){
    state=0;
    printf(" NOTHING\n ");
    return state;
    Here is the cl line
    cl -Ic:\jdk1.3\include -Ic:\jdk1.3\include\win32 -Ic:\tc\include -LD TouchSensor.c -Fesensor.dll
    Here is the java code
    public native int sensor();
    static { System.loadLibrary("sensor");
    System.out.println(sensor());
    and the errors that I am getting are
    TouchSensor.c
    c:\TC\INCLUDE\STDIO.H(101) : warning C4229: anachronism used : modifiers on data are ignored
    c:\TC\INCLUDE\STDIO.H(171) : warning C4068: unknown pragma
    c:\TC\INCLUDE\STDIO.H(173) : warning C4068: unknown pragma
    c:\TC\INCLUDE\DOS.H(19) : warning C4229: anachronism used : modifiers on data are ignored
    c:\TC\INCLUDE\DOS.H(20) : warning C4229: anachronism used : modifiers on data are ignored
    c:\TC\INCLUDE\DOS.H(21) : warning C4229: anachronism used : modifiers on data are ignored
    c:\TC\INCLUDE\DOS.H(22) : warning C4229: anachronism used : modifiers on data are ignored
    c:\TC\INCLUDE\DOS.H(23) : warning C4229: anachronism used : modifiers on data are ignored
    c:\TC\INCLUDE\DOS.H(24) : warning C4229: anachronism used : modifiers on data are ignored
    c:\TC\INCLUDE\DOS.H(25) : warning C4229: anachronism used : modifiers on data are ignored
    c:\TC\INCLUDE\DOS.H(26) : warning C4229: anachronism used : modifiers on data are ignored
    c:\TC\INCLUDE\DOS.H(27) : warning C4229: anachronism used : modifiers on data are ignored
    c:\TC\INCLUDE\DOS.H(28) : warning C4229: anachronism used : modifiers on data are ignored
    c:\TC\INCLUDE\DOS.H(29) : warning C4229: anachronism used : modifiers on data are ignored
    c:\TC\INCLUDE\DOS.H(164) : error C2143: syntax error : missing ')' before '*'
    c:\TC\INCLUDE\DOS.H(164) : error C2143: syntax error : missing ')' before '*'
    c:\TC\INCLUDE\DOS.H(164) : error C2143: syntax error : missing '{' before '*'
    c:\TC\INCLUDE\DOS.H(164) : error C2059: syntax error : ')'
    c:\TC\INCLUDE\DOS.H(164) : error C2059: syntax error : ')'
    c:\TC\INCLUDE\DOS.H(180) : error C2143: syntax error : missing ')' before '*'
    c:\TC\INCLUDE\DOS.H(180) : error C2143: syntax error : missing '{' before '*'
    c:\TC\INCLUDE\DOS.H(180) : error C2059: syntax error : ')'
    c:\TC\INCLUDE\DOS.H(180) : error C2091: function returns function
    c:\TC\INCLUDE\DOS.H(182) : error C2143: syntax error : missing ')' before '*'
    c:\TC\INCLUDE\DOS.H(182) : error C2143: syntax error : missing ')' before '*'
    c:\TC\INCLUDE\DOS.H(182) : error C2143: syntax error : missing '{' before '*'
    c:\TC\INCLUDE\DOS.H(182) : error C2059: syntax error : ')'
    c:\TC\INCLUDE\DOS.H(182) : error C2059: syntax error : ')'
    c:\TC\INCLUDE\DOS.H(211) : error C2143: syntax error : missing ')' before '*'
    c:\TC\INCLUDE\DOS.H(211) : error C2143: syntax error : missing ')' before '*'
    c:\TC\INCLUDE\DOS.H(211) : error C2143: syntax error : missing '{' before '*'
    c:\TC\INCLUDE\DOS.H(211) : error C2059: syntax error : ')'
    c:\TC\INCLUDE\DOS.H(211) : error C2059: syntax error : ')'
    c:\TC\INCLUDE\DOS.H(239) : error C4226: nonstandard extension used : 'far' is an obsolete keyword
    c:\TC\INCLUDE\DOS.H(240) : error C4226: nonstandard extension used : 'far' is an obsolete keyword

    What kind of compiler you use?
    cl I think is from MS Visual C++ but the headers I suppose are from Borland's TurboC for DOS distribution.
    This is the first error condition.
    The second one is that java doesn't run on dos so including dos.h is mistake. You should include first win.h and then jni.h
    And you should really set include path to the right one. Don't use headers from one compiler with another.

  • Calling Java from C++ thru JNI

    Hi,
    Can anybody help me on this...
    I am trying to invoke a simple java method from c++.
    I am using the reference example as in tutorial at
    http://www-105.ibm.com/developerworks/education.nsf/java-onlinecourse-bytitle/52FFDF7067EAA64986256B87006A5D37?OpenDocument
    My C++ program compiles without any errors, but when i try to create an EXE, I get the foll. error::
    error LNK2001: unresolved external symbol __imp__JNI_CreateJavaVM@12
    I am using JDK1.3, and also making use of jvm.dll, jvm.lib and jni.h files shipped with the JDK installer. Can anybody give me a clue on what is the error referring to?
    Thx in advance

    Hi, I have the same problem as you.. I have been tying to proof the example:
    #include <stdio.h>
    #include <jni.h>
    void goTest(JNIEnv *pEnv);
    main(void) {
         JavaVMInitArgs vm_args;
         JavaVMOption options[6];
    jint res;
    JavaVM *vm;
    JNIEnv *pEnv;
         options[0].optionString = "-Djava.compiler=NONE"; /* disable JIT */
         options[1].optionString = "-Djava.class.path=c:\\_jni\\whiskey\\std"; /* user classes */
         //options[2].optionString = "-Djava.library.path=c:\mylibs"; /* set native library path */
         options[2].optionString = "-Xbootclasspath/a:c:\\_jdks\\ibm_1.3_0502\\lib\\tools.jar";
         options[3].optionString = "-Xdebug"; /* print JNI-related messages */
    options[4].optionString = "-Xnoagent";
    options[5].optionString = "-Xrunjdwp:transport=dt_socket,server=y,suspend=n";
         vm_args.version = JNI_VERSION_1_2;
         vm_args.options = options;
         vm_args.nOptions = 6;
         vm_args.ignoreUnrecognized = JNI_FALSE;
         /* Note that in JDK 1.2, there is no longer any need to call
         * JNI_GetDefaultJavaVMInitArgs.
    res = JNI_CreateJavaVM(&vm, (void **)&pEnv, &vm_args);
    if (res < 0) {
    printf("failure in create java vm\n");
    int loop=0;
    while (loop==0) {
    printf("waiting...");
    goTest(pEnv);
    void goTest(JNIEnv *pEnv) {
    jclass javaClass;
    jmethodID mid;
    jint result;
    javaClass = (*pEnv)->FindClass(pEnv,"JNITest");
    mid = (*pEnv)->GetStaticMethodID(pEnv,javaClass,"java_tripleNumber","(I)I");
    result = (*pEnv)->CallStaticIntMethod(pEnv,javaClass,mid,42) ;
    I have do the following:
    dlltool -k dllname jvm.dll def jvm.def --output-lib d:\jbuilder5\jdk1.3\jre\bin\classic\libjvm.a
    gcc -Id:\jbuilder5\jdk1.3\include -Id:\jbuilder5\jdk1.3\include\win32 -g -c invoke.c
    gcc -o invoke.exe invoke.o -Ld:\jbuilder5\jdk1.3\jre\bin\classic -ljvm
    The executable file is created without problems, but when I run it..
    Can't load "jdwp.dll", because Can't find dependent libraries
    failure in create java vm
    I have debbug it: gdb invoke
    (gdb) b main
    Breakpoint 1 at 0x4013aa: file invoke.c, line 85.
    (gdb) r
    Starting program: D:\MinGW\bin/invoke.exe
    Breakpoint 1, main () at invoke.c:85
    85 options[0].optionString = "-Djava.compiler=NONE"; /* d
    isable JIT */
    (gdb) n
    86 options[1].optionString = "-Djava.class.path=c:\\_jni\\whiskey\\
    std"; /* user classes */
    (gdb) n
    88 options[2].optionString = "-Xbootclasspath/a:c:\\_jdks\\ibm_1.3_
    0502\\lib\\tools.jar";
    (gdb) n
    89 options[3].optionString = "-Xdebug"; /* print
    JNI-related messages */
    (gdb) n
    90 options[4].optionString = "-Xnoagent";
    (gdb) n
    91 options[5].optionString = "-Xrunjdwp:transport=dt_socket,server=y,su
    spend=n";
    (gdb) n
    93 vm_args.version = JNI_VERSION_1_2;
    (gdb) n
    94 vm_args.options = options;
    (gdb) n
    95 vm_args.nOptions = 6;
    (gdb) n
    96 vm_args.ignoreUnrecognized = JNI_FALSE;
    (gdb) n
    101 res = JNI_CreateJavaVM(&vm, (void **)&pEnv, &vm_args);
    (gdb) n
    0x503e41b1 in d_jbuilder5_jdk1_3_jre_bin_classic_libjvm_a_iname ()
    (gdb) n
    Single stepping until exit from function d_jbuilder5_jdk1_3_jre_bin_classic_li
    bjvm_a_iname,
    which has no line number information.
    0x77e8860c in d_jbuilder5_jdk1_3_jre_bin_classic_libjvm_a_iname ()
    (gdb) n
    Single stepping until exit from function d_jbuilder5_jdk1_3_jre_bin_classic_li
    bjvm_a_iname,
    which has no line number information.
    Program received signal SIGSEGV, Segmentation fault.
    0x0040145a in goTest (pEnv=0x0) at invoke.c:124
    124 javaClass = (*pEnv)->FindClass(pEnv,"JNITest");
    (gdb)
    .... How can I solve this problem..

  • Problem with JNI and Tomcat (and threads???)

    Howdy,
    Here is the issue - I would like some help on HOW to debug and fix this problem:
    2 test use cases -
    1)
    a)User goes to Login.jsp, enters user and password
    b) User submits to LoginServlet
    c) login calls JNI code that connects to a powerbuilder(Yes I know this is ugly) PBNI code module (this is a .dll) that authenticates the user with the database
    d) the servlet then redirects to another .jsp page
    e) user then submits to LogoutServlet - also a JNI call to a powerbuilder PBNI code module
    f) REPEAT STEPS a-e over a few times (inconsistent) and then the call to the JNI code hangs
    2)
    a) users does NOT goto Login.jsp, but rather calls LoginServlet and passes the userid and password as GET parms
    b) user does NOT get redirected to a page (redirect code commented out)
    c) user calls LogoutServlet
    d) repeat steps a-c at will and no failure, no hanging
    The only difference is that in case 1 (with JSP), there is a redirect and it afffected the JNI call by haniging inside JNI code.
    In case 2 (without JSP) there is still a JNI call, but it does not hang. In addition, when it hangs and I stop Tomcat, the logs show cleanup entries that say:
    Oct 19, 2004 9:17:09 AM org.apache.catalina.core.StandardWrapper unload
    INFO: Waiting for 1 instance(s) to be deallocated
    Oct 19, 2004 9:17:10 AM org.apache.catalina.core.StandardWrapper unload
    INFO: Waiting for 1 instance(s) to be deallocated
    Oct 19, 2004 9:17:11 AM org.apache.catalina.core.StandardWrapper unload
    INFO: Waiting for 1 instance(s) to be deallocated
    Is this a threading issue in Tomcat???
    On would assume that the JNI code is not cleaning up after itself, but I don't believe this is the case,
    and even if it was, why would I get the tomcat log cleanup entries above???
    What do those cleanup entries imply about the state of Tomcat????

    hi ,
    I met the same problem this morning, and searched the www.google.com in order to solve it, as a result, your article was shown on my screen. :)
    Till now I have read some technical information and solved my problems. Maybe the solution be useful to you:
    ==============================
    error message : (Environment : Tomcat 5, Windows 2003, Mysql5)
    2006-3-29 11:53:48 org.apache.catalina.core.StandardWrapper unload
    message: Waiting for 2 instance(s) to be deallocated
    ==============================
    cause: the number of connection to database exceeded.another word,too many connections.
    ==============================
    solution: close the connection when it becomes useless for your program. :)
    ==============================
    ps. Sorry for my weak English . hehe ....

  • A FIX for error message: When I try to open Snood (it's a game) I get this message.  Not enough memory {Error # :: 0, in sound.cp@line 101  Can you help?

    After years of playing Snood, w/o problems, I started getting this error message, on my iMac, OS 10.5.8,
    with 4 GB of memory when opening Snood:  Not enough memory {Error # :: 0, in sound.cp@line 101
    My MacBook Pro w. Mac OS 10.6.8 did not have this problem.
    Initially I thought that Snood raised its minimum requirement to Mac OS 10.6.
    I had several correspondences with Snood. Their tech support is great. Quick and thorough responses.
    They thought the issue was in Mac's system preferences/ Sound. It was.
    I didn't realize that my sound input and output devices were gone.
    The fix was resetting the PRAM. I found this advice on MacFixIt.com.
    MacFixIt help with volume:   http://reviews.cnet.com/8301-13727_7-10415659-263.html
    Resetting the PRAM is on Apple support:   http://support.apple.com/kb/HT1379
    My sound (music!) is back, along with Snood. So glad I reset the PRAM before reinstalling the OS software!
    Thank you to Snood, MacFixIt and Apple.
    Happy new year all!

    Good work, nice post/tip, thanks!

  • Goods Receipt Report With 101 movement type using bapi_goodsmvt_create

    Dear Abapers,
            i am getting some problem, i got requirement like Goods Receipt Report with 101 movement type using
    bapi_goodsmvt_create and data should upload through excel sheet.
    still facing problems, i have searched sdn forum n sdn code also, but relevant answer i could not find.
    What are all the inputs i need to take and please give some valuable inputs to me.
    please do help ..... thanks for advance..
    Thanks & regards,
    Vinay.
    Moderator message : Spec dumping is not allowed, show the work you have already done. Thead locked.
    Edited by: Vinod Kumar on Sep 27, 2011 10:58 AM

    Dear Abapers,
            i am getting some problem, i got requirement like Goods Receipt Report with 101 movement type using
    bapi_goodsmvt_create and data should upload through excel sheet.
    still facing problems, i have searched sdn forum n sdn code also, but relevant answer i could not find.
    What are all the inputs i need to take and please give some valuable inputs to me.
    please do help ..... thanks for advance..
    Thanks & regards,
    Vinay.
    Moderator message : Spec dumping is not allowed, show the work you have already done. Thead locked.
    Edited by: Vinod Kumar on Sep 27, 2011 10:58 AM

  • Couldn't Load DLL and Call JNI in Portal Servlet !!!

    Hello,
    I'm trying to write a small test servlet in portal which will call functions in a DLL using JNI. Here is my source code. I put my DLL in \Window\system32, usr/sap/J2E/JC01/j2ee/os_libs, even included into my portal project \PORTAL-INF\lib. But everytime when I try to preview my page, I got the following error and I couldn't find the log file specified in the error message. Please help me out. Thanks a lot!
    Portal Runtime Error
    An exception occurred while processing a request for :
    iView : N/A
    Component Name : N/A
    MyTestDLL.
    Exception id: 12:25_23/12/06_0029_11241950
    See the details for the exception ID in the log file
    Source Code:
    import com.sapportals.portal.prt.component.*;
    public class CIViewTest extends AbstractPortalComponent
         public void doContent(IPortalComponentRequest request, IPortalComponentResponse response)
              response.write("Hello From Java Servlet!!!\n");
         static {
              try {
                   Runtime.getRuntime().loadLibrary("MyTestDLL");
    // I've also tried System.LoadLibrary("MyTestDLL");
              } catch (UnsatisfiedLinkError ule) {
                   throw ule;

    Nobody used JNI in Portal Servlet??? Please advice. Thanks!

  • PL/SQL 101 : Exception Handling

    Frequently I see questions and issues around the use of Exception/Error Handling in PL/SQL.  More often than not the issue comes from the questioners misunderstanding about how PL/SQL is constructed and executed, so I thought I'd write a small article covering the key concepts to give a clear picture of how it all hangs together. (Note: the examples are just showing examples of the exception handling structure, and should not be taken as truly valid code for ways of handling things)
    Exception Handling
    Contents
    1. Understanding Execution Blocks (part 1)
    2. Execution of the Execution Block
    3. Exceptions
    4. Understanding Execution Blocks (part 2)
    5. How to continue exection of statements after an exception
    6. User defined exceptions
    7. Line number of exception
    8. Exceptions within code within the exception block
    1. Understanding Execution Blocks (part 1)
    The first thing that one needs to understand is almost taking us back to the basics of PL/SQL... how a PL/SQL execution block is constructed.
    Essentially an execution block is made of 3 sections...
    +---------------------------+
    |    Declaration Section    |
    +---------------------------+
    |    Statements  Section    |
    +---------------------------+
    |     Exception Section     |
    +---------------------------+
    The Declaration section is the part defined between the PROCEDURE/FUNCTION header or the DECLARE keyword (for anonymous blocks) and the BEGIN keyword.  (Optional section)
    The Statements section is where your code goes and lies between the BEGIN keyword and the EXCEPTION keyword (or END keyword if there is no EXCEPTION section).  (Mandatory section)
    The Exception section is where any exception handling goes and lies between the EXCEPTION keyword at the END keyword. (Optional section)
    Example of an anonymous block...
    DECLARE
      .. declarative statements go here ..
    BEGIN
      .. code statements go here ..
    EXCEPTION
      .. exception handlers go here ..
    END;
    Example of a procedure/function block...
    [CREATE OR REPLACE] (PROCEDURE|FUNCTION) <proc or fn name> [(<parameters>)] [RETURN <datatype>] (IS|AS)
      .. declarative statements go here ..
    BEGIN
      .. code statements go here ..
    EXCEPTION
      .. exception handlers go here ..
    END;
    (Note: The same can also be done for packages, but let's keep it simple)
    2. Execution of the Execution Block
    This may seem a simple concept, but it's surprising how many people have issues showing they haven't grasped it.  When an Execution block is entered, the declaration section is processed, creating a scope of variables, types , cursors, etc. to be visible to the execution block and then execution enters into the Statements section.  Each statment in the statements section is executed in turn and when the execution completes the last statment the execution block is exited back to whatever called it.
    3. Exceptions
    Exceptions generally happen during the execution of statements in the Statements section.  When an exception happens the execution of statements jumps immediately into the exception section.  In this section we can specify what exceptions we wish to 'capture' or 'trap' and do one of the two following things...
    (Note: The exception section still has access to all the declared items in the declaration section)
    3.i) Handle the exception
    We do this when we recognise what the exception is (most likely it's something we expect to happen) and we have a means of dealing with it so that our application can continue on.
    Example...
    (without the exception handler the exception is passed back to the calling code, in this case SQL*Plus)
    SQL> ed
    Wrote file afiedt.buf
      1  declare
      2    v_name VARCHAR2(20);
      3  begin
      4    select ename
      5    into   v_name
      6    from   emp
      7    where  empno = &empno;
      8    dbms_output.put_line(v_name);
      9* end;
    SQL> /
    Enter value for empno: 123
    old   7:   where  empno = &empno;
    new   7:   where  empno = 123;
    declare
    ERROR at line 1:
    ORA-01403: no data found
    ORA-06512: at line 4
    (with an exception handler, we capture the exception, handle it how we want to, and the calling code is happy that there is no error for it to report)
    SQL> ed
    Wrote file afiedt.buf
      1  declare
      2    v_name VARCHAR2(20);
      3  begin
      4    select ename
      5    into   v_name
      6    from   emp
      7    where  empno = &empno;
      8    dbms_output.put_line(v_name);
      9  exception
    10    when no_data_found then
    11      dbms_output.put_line('There is no employee with this employee number.');
    12* end;
    SQL> /
    Enter value for empno: 123
    old   7:   where  empno = &empno;
    new   7:   where  empno = 123;
    There is no employee with this employee number.
    PL/SQL procedure successfully completed.
    3.ii) Raise the exception
    We do this when:-
    a) we recognise the exception, handle it but still want to let the calling code know that it happened
    b) we recognise the exception, wish to log it happened and then let the calling code deal with it
    c) we don't recognise the exception and we want the calling code to deal with it
    Example of b)
    SQL> ed
    Wrote file afiedt.buf
      1  declare
      2    v_name VARCHAR2(20);
      3    v_empno NUMBER := &empno;
      4  begin
      5    select ename
      6    into   v_name
      7    from   emp
      8    where  empno = v_empno;
      9    dbms_output.put_line(v_name);
    10  EXCEPTION
    11    WHEN no_data_found THEN
    12      INSERT INTO sql_errors (txt)
    13      VALUES ('Search for '||v_empno||' failed.');
    14      COMMIT;
    15      RAISE;
    16* end;
    SQL> /
    Enter value for empno: 123
    old   3:   v_empno NUMBER := &empno;
    new   3:   v_empno NUMBER := 123;
    declare
    ERROR at line 1:
    ORA-01403: no data found
    ORA-06512: at line 15
    SQL> select * from sql_errors;
    TXT
    Search for 123 failed.
    SQL>
    Example of c)
    SQL> ed
    Wrote file afiedt.buf
      1  declare
      2    v_name VARCHAR2(20);
      3    v_empno NUMBER := &empno;
      4  begin
      5    select ename
      6    into   v_name
      7    from   emp
      8    where  empno = v_empno;
      9    dbms_output.put_line(v_name);
    10  EXCEPTION
    11    WHEN no_data_found THEN
    12      INSERT INTO sql_errors (txt)
    13      VALUES ('Search for '||v_empno||' failed.');
    14      COMMIT;
    15      RAISE;
    16    WHEN others THEN
    17      RAISE;
    18* end;
    SQL> /
    Enter value for empno: 'ABC'
    old   3:   v_empno NUMBER := &empno;
    new   3:   v_empno NUMBER := 'ABC';
    declare
    ERROR at line 1:
    ORA-06502: PL/SQL: numeric or value error: character to number conversion error
    ORA-06512: at line 3
    SQL> select * from sql_errors;
    TXT
    Search for 123 failed.
    SQL>
    As you can see from the sql_errors log table, no log was written so the WHEN others exception was the exception that raised the error to the calling code (SQL*Plus)
    4. Understanding Execution Blocks (part 2)
    Ok, so now we understand the very basics of an execution block and what happens when an exception happens.  Let's take it a step further...
    Execution blocks are not just a single simple block in most cases.  Often, during our statements section we have a need to call some reusable code and we do that by calling a procedure or function.  Effectively this nests the procedure or function's code as another execution block within the current statement section so, in terms of execution, we end up with something like...
    +---------------------------------+
    |    Declaration Section          |
    +---------------------------------+
    |    Statements  Section          |
    |            .                    |
    |  +---------------------------+  |
    |  |    Declaration Section    |  |
    |  +---------------------------+  |
    |  |    Statements  Section    |  |
    |  +---------------------------+  |
    |  |     Exception Section     |  |
    |  +---------------------------+  |
    |            .                    |
    +---------------------------------+
    |     Exception Section           |
    +---------------------------------+
    Example... (Note: log_trace just writes some text to a table for tracing)
    SQL> create or replace procedure a as
      2    v_dummy NUMBER := log_trace('Procedure A''s Declaration Section');
      3  begin
      4    v_dummy := log_trace('Procedure A''s Statement Section');
      5    v_dummy := 1/0; -- cause an exception
      6  exception
      7    when others then
      8      v_dummy := log_trace('Procedure A''s Exception Section');
      9      raise;
    10  end;
    11  /
    Procedure created.
    SQL> create or replace procedure b as
      2    v_dummy NUMBER := log_trace('Procedure B''s Declaration Section');
      3  begin
      4    v_dummy := log_trace('Procedure B''s Statement Section');
      5    a; -- HERE the execution passes to the declare/statement/exception sections of A
      6  exception
      7    when others then
      8      v_dummy := log_trace('Procedure B''s Exception Section');
      9      raise;
    10  end;
    11  /
    Procedure created.
    SQL> exec b;
    BEGIN b; END;
    ERROR at line 1:
    ORA-01476: divisor is equal to zero
    ORA-06512: at "SCOTT.B", line 9
    ORA-06512: at line 1
    SQL> select * from code_trace;
    TXT
    Procedure B's Declaration Section
    Procedure B's Statement Section
    Procedure A's Declaration Section
    Procedure A's Statement Section
    Procedure A's Exception Section
    Procedure B's Exception Section
    6 rows selected.
    SQL>
    Likewise, execution blocks can be nested deeper and deeper.
    5. How to continue exection of statements after an exception
    One of the common questions asked is how to return execution to the statement after the one that created the exception and continue on.
    Well, firstly, you can only do this for statements you expect to raise an exception, such as when you want to check if there is no data found in a query.
    If you consider what's been shown above you could put any statement you expect to cause an exception inside it's own procedure or function with it's own exception section to handle the exception without raising it back to the calling code.  However, the nature of procedures and functions is really to provide a means of re-using code, so if it's a statement you only use once it seems a little silly to go creating individual procedures for these.
    Instead, you nest execution blocks directly, to give the same result as shown in the diagram at the start of part 4 of this article.
    SQL> ed
    Wrote file afiedt.buf
      1  create or replace procedure b (p_empno IN VARCHAR2) as
      2    v_dummy NUMBER := log_trace('Procedure B''s Declaration Section');
      3  begin
      4    v_dummy := log_trace('Procedure B''s Statement Section');
      5    -- Here we start another execution block nested in the first one...
      6    declare
      7      v_dummy NUMBER := log_trace('Nested Block Declaration Section');
      8    begin
      9      v_dummy := log_trace('Nested Block Statement Section');
    10      select empno
    11        into   v_dummy
    12        from   emp
    13       where  empno = p_empno; -- Note: the parameters and variables from
                                         parent execution block are available to use!
    14    exception
    15      when no_data_found then
    16        -- This is an exception we can handle so we don't raise it
    17        v_dummy := log_trace('No employee was found');
    18        v_dummy := log_trace('Nested Block Exception Section - Exception Handled');
    19      when others then
    20        -- Other exceptions we can't handle so we raise them
    21        v_dummy := log_trace('Nested Block Exception Section - Exception Raised');
    22        raise;
    23    end;
    24    -- ...Here endeth the nested execution block
    25    -- As the nested block handled it's exception we come back to here...
    26    v_dummy := log_trace('Procedure B''s Statement Section Continued');
    27  exception
    28    when others then
    29      -- We'll only get to here if an unhandled exception was raised
    30      -- either in the nested block or in procedure b's statement section
    31      v_dummy := log_trace('Procedure B''s Exception Section');
    32      raise;
    33* end;
    SQL> /
    Procedure created.
    SQL> exec b(123);
    PL/SQL procedure successfully completed.
    SQL> select * from code_trace;
    TXT
    Procedure B's Declaration Section
    Procedure B's Statement Section
    Nested Block Declaration Section
    Nested Block Statement Section
    No employee was found
    Nested Block Exception Section - Exception Handled
    Procedure B's Statement Section Continued
    7 rows selected.
    SQL> truncate table code_trace;
    Table truncated.
    SQL> exec b('ABC');
    BEGIN b('ABC'); END;
    ERROR at line 1:
    ORA-01722: invalid number
    ORA-06512: at "SCOTT.B", line 32
    ORA-06512: at line 1
    SQL> select * from code_trace;
    TXT
    Procedure B's Declaration Section
    Procedure B's Statement Section
    Nested Block Declaration Section
    Nested Block Statement Section
    Nested Block Exception Section - Exception Raised
    Procedure B's Exception Section
    6 rows selected.
    SQL>
    You can see from this that, very simply, the code that we expected may have an exception was able to either handle the exception and return to the outer execution block to continue execution, or if an unexpected exception occurred then it was able to be raised up to the outer exception section.
    6. User defined exceptions
    There are three sorts of 'User Defined' exceptions.  There are logical situations (e.g. business logic) where, for example, certain criteria are not met to complete a task, and there are existing Oracle errors that you wish to give a name to in order to capture them in the exception section.  The third is raising your own exception messages with our own exception numbers.  Let's look at the first one...
    Let's say I have tables which detail stock availablility and reorder levels...
    SQL> select * from reorder_level;
       ITEM_ID STOCK_LEVEL
             1          20
             2          20
             3          10
             4           2
             5           2
    SQL> select * from stock;
       ITEM_ID ITEM_DESC  STOCK_LEVEL
             1 Pencils             10
             2 Pens                 2
             3 Notepads            25
             4 Stapler              5
             5 Hole Punch           3
    SQL>
    Now, our Business has told the administrative clerk to check stock levels and re-order anything that is below the re-order level, but not to hold stock of more than 4 times the re-order level for any particular item.  As an IT department we've been asked to put together an application that will automatically produce the re-order documents upon the clerks request and, because our company is so tight-ar*ed about money, they don't want to waste any paper with incorrect printouts so we have to ensure the clerk can't order things they shouldn't.
    SQL> ed
    Wrote file afiedt.buf
      1  create or replace procedure re_order(p_item_id NUMBER, p_quantity NUMBER) is
      2    cursor cur_stock_reorder is
      3      select s.stock_level
      4            ,r.stock_level as reorder_level
      5            ,(r.stock_level*4) as reorder_limit
      6      from stock s join reorder_level r on (s.item_id = r.item_id)
      7      where s.item_id = p_item_id;
      8    --
      9    v_stock cur_stock_reorder%ROWTYPE;
    10  begin
    11    OPEN cur_stock_reorder;
    12    FETCH cur_stock_reorder INTO v_stock;
    13    IF cur_stock_reorder%NOTFOUND THEN
    14      RAISE no_data_found;
    15    END IF;
    16    CLOSE cur_stock_reorder;
    17    --
    18    IF v_stock.stock_level >= v_stock.reorder_level THEN
    19      -- Stock is not low enough to warrant an order
    20      DBMS_OUTPUT.PUT_LINE('Stock has not reached re-order level yet!');
    21    ELSE
    22      IF v_stock.stock_level + p_quantity > v_stock.reorder_limit THEN
    23        -- Required amount is over-ordering
    24        DBMS_OUTPUT.PUT_LINE('Quantity specified is too much.  Max for this item: '
                                     ||to_char(v_stock.reorder_limit-v_stock.stock_level));
    25      ELSE
    26        DBMS_OUTPUT.PUT_LINE('Order OK.  Printing Order...');
    27        -- Here goes our code to print the order
    28      END IF;
    29    END IF;
    30    --
    31  exception
    32    WHEN no_data_found THEN
    33      CLOSE cur_stock_reorder;
    34      DBMS_OUTPUT.PUT_LINE('Invalid Item ID.');
    35* end;
    SQL> /
    Procedure created.
    SQL> exec re_order(10,100);
    Invalid Item ID.
    PL/SQL procedure successfully completed.
    SQL> exec re_order(3,40);
    Stock has not reached re-order level yet!
    PL/SQL procedure successfully completed.
    SQL> exec re_order(1,100);
    Quantity specified is too much.  Max for this item: 70
    PL/SQL procedure successfully completed.
    SQL> exec re_order(2,50);
    Order OK.  Printing Order...
    PL/SQL procedure successfully completed.
    SQL>
    Ok, so that code works, but it's a bit messy with all those nested IF statements. Is there a cleaner way perhaps?  Wouldn't it be nice if we could set up our own exceptions...
    SQL> ed
    Wrote file afiedt.buf
      1  create or replace procedure re_order(p_item_id NUMBER, p_quantity NUMBER) is
      2    cursor cur_stock_reorder is
      3      select s.stock_level
      4            ,r.stock_level as reorder_level
      5            ,(r.stock_level*4) as reorder_limit
      6      from stock s join reorder_level r on (s.item_id = r.item_id)
      7      where s.item_id = p_item_id;
      8    --
      9    v_stock cur_stock_reorder%ROWTYPE;
    10    --
    11    -- Let's declare our own exceptions for business logic...
    12    exc_not_warranted EXCEPTION;
    13    exc_too_much      EXCEPTION;
    14  begin
    15    OPEN cur_stock_reorder;
    16    FETCH cur_stock_reorder INTO v_stock;
    17    IF cur_stock_reorder%NOTFOUND THEN
    18      RAISE no_data_found;
    19    END IF;
    20    CLOSE cur_stock_reorder;
    21    --
    22    IF v_stock.stock_level >= v_stock.reorder_level THEN
    23      -- Stock is not low enough to warrant an order
    24      RAISE exc_not_warranted;
    25    END IF;
    26    --
    27    IF v_stock.stock_level + p_quantity > v_stock.reorder_limit THEN
    28      -- Required amount is over-ordering
    29      RAISE exc_too_much;
    30    END IF;
    31    --
    32    DBMS_OUTPUT.PUT_LINE('Order OK.  Printing Order...');
    33    -- Here goes our code to print the order
    34    --
    35  exception
    36    WHEN no_data_found THEN
    37      CLOSE cur_stock_reorder;
    38      DBMS_OUTPUT.PUT_LINE('Invalid Item ID.');
    39    WHEN exc_not_warranted THEN
    40      DBMS_OUTPUT.PUT_LINE('Stock has not reached re-order level yet!');
    41    WHEN exc_too_much THEN
    42      DBMS_OUTPUT.PUT_LINE('Quantity specified is too much.  Max for this item: '
                                  ||to_char(v_stock.reorder_limit-v_stock.stock_level));
    43* end;
    SQL> /
    Procedure created.
    SQL> exec re_order(10,100);
    Invalid Item ID.
    PL/SQL procedure successfully completed.
    SQL> exec re_order(3,40);
    Stock has not reached re-order level yet!
    PL/SQL procedure successfully completed.
    SQL> exec re_order(1,100);
    Quantity specified is too much.  Max for this item: 70
    PL/SQL procedure successfully completed.
    SQL> exec re_order(2,50);
    Order OK.  Printing Order...
    PL/SQL procedure successfully completed.
    SQL>
    That's better.  And now we don't have to use all those nested IF statements and worry about it accidently getting to code that will print the order out as, once one of our user defined exceptions is raised, execution goes from the Statements section into the Exception section and all handling of errors is done in one place.
    Now for the second sort of user defined exception...
    A new requirement has come in from the Finance department who want to have details shown on the order that show a re-order 'indicator' based on the formula ((maximum allowed stock - current stock)/re-order quantity), so this needs calculating and passing to the report...
    SQL> ed
    Wrote file afiedt.buf
      1  create or replace procedure re_order(p_item_id NUMBER, p_quantity NUMBER) is
      2    cursor cur_stock_reorder is
      3      select s.stock_level
      4            ,r.stock_level as reorder_level
      5            ,(r.stock_level*4) as reorder_limit
      6            ,(((r.stock_level*4)-s.stock_level)/p_quantity) as finance_factor
      7      from stock s join reorder_level r on (s.item_id = r.item_id)
      8      where s.item_id = p_item_id;
      9    --
    10    v_stock cur_stock_reorder%ROWTYPE;
    11    --
    12    -- Let's declare our own exceptions for business logic...
    13    exc_not_warranted EXCEPTION;
    14    exc_too_much      EXCEPTION;
    15  begin
    16    OPEN cur_stock_reorder;
    17    FETCH cur_stock_reorder INTO v_stock;
    18    IF cur_stock_reorder%NOTFOUND THEN
    19      RAISE no_data_found;
    20    END IF;
    21    CLOSE cur_stock_reorder;
    22    --
    23    IF v_stock.stock_level >= v_stock.reorder_level THEN
    24      -- Stock is not low enough to warrant an order
    25      RAISE exc_not_warranted;
    26    END IF;
    27    --
    28    IF v_stock.stock_level + p_quantity > v_stock.reorder_limit THEN
    29      -- Required amount is over-ordering
    30      RAISE exc_too_much;
    31    END IF;
    32    --
    33    DBMS_OUTPUT.PUT_LINE('Order OK.  Printing Order...');
    34    -- Here goes our code to print the order, passing the finance_factor
    35    --
    36  exception
    37    WHEN no_data_found THEN
    38      CLOSE cur_stock_reorder;
    39      DBMS_OUTPUT.PUT_LINE('Invalid Item ID.');
    40    WHEN exc_not_warranted THEN
    41      DBMS_OUTPUT.PUT_LINE('Stock has not reached re-order level yet!');
    42    WHEN exc_too_much THEN
    43      DBMS_OUTPUT.PUT_LINE('Quantity specified is too much.  Max for this item: '
                                  ||to_char(v_stock.reorder_limit-v_stock.stock_level));
    44* end;
    SQL> /
    Procedure created.
    SQL> exec re_order(2,40);
    Order OK.  Printing Order...
    PL/SQL procedure successfully completed.
    SQL> exec re_order(2,0);
    BEGIN re_order(2,0); END;
    ERROR at line 1:
    ORA-01476: divisor is equal to zero
    ORA-06512: at "SCOTT.RE_ORDER", line 17
    ORA-06512: at line 1
    SQL>
    Hmm, there's a problem if the person specifies a re-order quantity of zero.  It raises an unhandled exception.
    Well, we could put a condition/check into our code to make sure the parameter is not zero, but again we would be wrapping our code in an IF statement and not dealing with the exception in the exception handler.
    We could do as we did before and just include a simple IF statement to check the value and raise our own user defined exception but, in this instance the error is standard Oracle error (ORA-01476) so we should be able to capture it inside the exception handler anyway... however...
    EXCEPTION
      WHEN ORA-01476 THEN
    ... is not valid.  What we need is to give this Oracle error a name.
    This is done by declaring a user defined exception as we did before and then associating that name with the error number using the PRAGMA EXCEPTION_INIT statement in the declaration section.
    SQL> ed
    Wrote file afiedt.buf
      1  create or replace procedure re_order(p_item_id NUMBER, p_quantity NUMBER) is
      2    cursor cur_stock_reorder is
      3      select s.stock_level
      4            ,r.stock_level as reorder_level
      5            ,(r.stock_level*4) as reorder_limit
      6            ,(((r.stock_level*4)-s.stock_level)/p_quantity) as finance_factor
      7      from stock s join reorder_level r on (s.item_id = r.item_id)
      8      where s.item_id = p_item_id;
      9    --
    10    v_stock cur_stock_reorder%ROWTYPE;
    11    --
    12    -- Let's declare our own exceptions for business logic...
    13    exc_not_warranted EXCEPTION;
    14    exc_too_much      EXCEPTION;
    15    --
    16    exc_zero_quantity EXCEPTION;
    17    PRAGMA EXCEPTION_INIT(exc_zero_quantity, -1476);
    18  begin
    19    OPEN cur_stock_reorder;
    20    FETCH cur_stock_reorder INTO v_stock;
    21    IF cur_stock_reorder%NOTFOUND THEN
    22      RAISE no_data_found;
    23    END IF;
    24    CLOSE cur_stock_reorder;
    25    --
    26    IF v_stock.stock_level >= v_stock.reorder_level THEN
    27      -- Stock is not low enough to warrant an order
    28      RAISE exc_not_warranted;
    29    END IF;
    30    --
    31    IF v_stock.stock_level + p_quantity > v_stock.reorder_limit THEN
    32      -- Required amount is over-ordering
    33      RAISE exc_too_much;
    34    END IF;
    35    --
    36    DBMS_OUTPUT.PUT_LINE('Order OK.  Printing Order...');
    37    -- Here goes our code to print the order, passing the finance_factor
    38    --
    39  exception
    40    WHEN exc_zero_quantity THEN
    41      DBMS_OUTPUT.PUT_LINE('Quantity of 0 (zero) is invalid.');
    42    WHEN no_data_found THEN
    43      CLOSE cur_stock_reorder;
    44      DBMS_OUTPUT.PUT_LINE('Invalid Item ID.');
    45    WHEN exc_not_warranted THEN
    46      DBMS_OUTPUT.PUT_LINE('Stock has not reached re-order level yet!');
    47    WHEN exc_too_much THEN
    48      DBMS_OUTPUT.PUT_LINE('Quantity specified is too much.  Max for this item: '
                                  ||to_char(v_stock.reorder_limit-v_stock.stock_level));
    49* end;
    SQL> /
    Procedure created.
    SQL> exec re_order(2,0);
    Quantity of 0 (zero) is invalid.
    PL/SQL procedure successfully completed.
    SQL>
    Lastly, let's look at raising our own exceptions with our own exception numbers...
    SQL> ed
    Wrote file afiedt.buf
      1  create or replace procedure re_order(p_item_id NUMBER, p_quantity NUMBER) is
      2    cursor cur_stock_reorder is
      3      select s.stock_level
      4            ,r.stock_level as reorder_level
      5            ,(r.stock_level*4) as reorder_limit
      6            ,(((r.stock_level*4)-s.stock_level)/p_quantity) as finance_factor
      7      from stock s join reorder_level r on (s.item_id = r.item_id)
      8      where s.item_id = p_item_id;
      9    --
    10    v_stock cur_stock_reorder%ROWTYPE;
    11    --
    12    exc_zero_quantity EXCEPTION;
    13    PRAGMA EXCEPTION_INIT(exc_zero_quantity, -1476);
    14  begin
    15    OPEN cur_stock_reorder;
    16    FETCH cur_stock_reorder INTO v_stock;
    17    IF cur_stock_reorder%NOTFOUND THEN
    18      RAISE no_data_found;
    19    END IF;
    20    CLOSE cur_stock_reorder;
    21    --
    22    IF v_stock.stock_level >= v_stock.reorder_level THEN
    23      -- Stock is not low enough to warrant an order
    24      [b]RAISE_APPLICATION_ERROR(-20000, 'Stock has not reached re-order level yet!');[/b]
    25    END IF;
    26    --
    27    IF v_stock.stock_level + p_quantity > v_stock.reorder_limit THEN
    28      -- Required amount is over-ordering
    29     

    its nice article, have put up this one the blog
    site,Nah, I don't have time to blog, but if one of the other Ace's/Experts wants to copy it to a blog with reference back to here (and all due credit given ;)) then that's fine by me.
    I'd go for a book like "Selected articles by OTN members" or something. Does anybody have a list of links of all those mentioned articles?Just these ones I've bookmarked...
    Introduction to regular expressions ... by CD
    When your query takes too long ... by Rob van Wijk
    How to pipeline a function with a dynamic number of columns? by ascheffer
    PL/SQL 101 : Exception Handling by BluShadow

  • Application crashes when using JNI with Jdk 1,2, 1.3 and 1.4

    Hi!
    I have this application that has a GUI written in Java and a file parser written in C. JNI is used to connect these parts together. The problem is that the application only works when I am using jdk 1.1.8 but not when using jdk1.2, jdk1.3 or jdk1.4. I am running the application on a Solaris 8 machine.
    I have not written the application myself but I am going to be working with it from now on. But I have today little knowledge with JNI and I have tried different approaches to solve the problem. For example I have tried to used DDD together with GDB to find out what the problem is but with no luck. When I run the application using jdk1.4 I get the following error when the JVM crashes:
    An unexpected exception has been detected in native code outside the VM.
    Unexpected Signal : 10 occurred at PC=0xFA023164
    Function=Java_Bitmap_setDebug+0x1C
    Library=/usr/u/lal/micview/micview2_1_0_beta1/libBitmapImpl.so
    Current Java thread:
    at Bitmap.setDebug(Native Method)
    at DisplayPanel.loadFile(DisplayPanel.java:396)
    at MicPlot.loadFile(MicPlot.java:1452)
    at MicPlot.loadFile(MicPlot.java:1441)
    at MicPlot.miOpen_Action(MicPlot.java:1267)
    at MicPlot$SymAction.actionPerformed(MicPlot.java:1184)
    at java.awt.MenuItem.processActionEvent(MenuItem.java:588)
    at java.awt.MenuItem.processEvent(MenuItem.java:548)
    at java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:285)
    at java.awt.MenuComponent.dispatchEvent(MenuComponent.java:273)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:452)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:197)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
    Dynamic libraries:
    0x10000 /opt/java/jdk1.4/bin/java
    0xff360000 /usr/lib/libthread.so.1
    0xff3a0000 /usr/lib/libdl.so.1
    0xff280000 /usr/lib/libc.so.1
    0xff270000 /usr/platform/SUNW,Ultra-4/lib/libc_psr.so.1
    0xfe000000 /opt/java/j2sdk1.4.1/jre/lib/sparc/client/libjvm.so
    0xff220000 /usr/lib/libCrun.so.1
    0xff200000 /usr/lib/libsocket.so.1
    0xff100000 /usr/lib/libnsl.so.1
    0xff1d0000 /usr/lib/libm.so.1
    0xff250000 /usr/lib/libw.so.1
    0xff0e0000 /usr/lib/libmp.so.2
    0xff0b0000 /opt/java/j2sdk1.4.1/jre/lib/sparc/native_threads/libhpi.so
    0xff080000 /opt/java/j2sdk1.4.1/jre/lib/sparc/libverify.so
    0xff030000 /opt/java/j2sdk1.4.1/jre/lib/sparc/libjava.so
    0xfe7e0000 /opt/java/j2sdk1.4.1/jre/lib/sparc/libzip.so
    0xfe4e0000 /usr/lib/locale/en_US.ISO8859-1/en_US.ISO8859-1.so.2
    0xedd00000 /opt/java/j2sdk1.4.1/jre/lib/sparc/libawt.so
    0xfc480000 /opt/java/j2sdk1.4.1/jre/lib/sparc/libmlib_image.so
    0xfc410000 /opt/java/j2sdk1.4.1/jre/lib/sparc/motif21/libmawt.so
    0xeda80000 /usr/dt/lib/libXm.so.4
    0xfa090000 /usr/openwin/lib/libXt.so.4
    0xfa3d0000 /usr/openwin/lib/libXext.so.0
    0xfc7e0000 /usr/openwin/lib/libXtst.so.1
    0xed980000 /usr/openwin/lib/libX11.so.4
    0xfa2a0000 /usr/openwin/lib/libdps.so.5
    0xfa3b0000 /usr/openwin/lib/libSM.so.6
    0xfa1d0000 /usr/openwin/lib/libICE.so.6
    0xed880000 /opt/java/j2sdk1.4.1/jre/lib/sparc/libfontmanager.so
    0xfa390000 /usr/openwin/lib/locale/common/xlibi18n.so.2
    0xfa1b0000 /usr/openwin/lib/locale/iso8859-1/xomEuro.so.2
    0xfa190000 /usr/lib//liblayout.so
    0xfa050000 /usr/openwin/lib/locale/common/ximlocal.so.2
    0xfa010000 /usr/u/lal/micview/micview2_1_0_beta1/libBitmapImpl.so
    Local Time = Thu Oct 3 13:32:47 2002
    Elapsed Time = 35
    # The exception above was detected in native code outside the VM
    # Java VM: Java HotSpot(TM) Client VM (1.4.1-beta-b14 mixed mode)
    # An error report file has been saved as hs_err_pid27692.log.
    # Please refer to the file for further information.
    Abort
    From this information I think that the problem should be in the native method setDebug. But I have tried to set a breakpoint at the beginning of that function in the C part but with no luck. The application crashes before it reaches that position in the C file.
    What could possibly go wrong between the setDebug function in the C part and the function call in the Java part?
    When using GDB, GDB cannot figure out what is wrong it just returns a hex address, no function name.
    I would really appreciate some help. I have tried everything that I can come up with!
    Best regards
    Lars

    I have figured out that the application fails on its first call to the native methods.
    So I have this Bitmap class that contains all the native calls and it is defined shortly as follow:
    public class Bitmap {
    static {
    System.loadLibrary("BitmapImpl");
    native void setDebug(int debuglevel, int statistics);
    There are many more native methods defined in Bitmap, but I only show the setDebug method because that is the first one that is executed and also the one that immediately fails.
    My setDebug C function is defined as follow in BitmapImpl.c
    #include <time.h>
    #include <stdio.h>
    #include <limits.h>
    #include <fcntl.h>
    #include <jni.h>
    #include <math.h>
    #include <errno.h>
    #include "Bitmap.h"
    #include "data.h"
    jint debug = 0;
    jint statistics = 1;
    JNIEXPORT void JNICALL Java_Bitmap_setDebug
    (JNIEnv *jenv, jobject jo, jint d, jint s)
    debug = d;
    statistics = s;
    My libBitmapImpl.so file is compiled using the following Makefile and using GNU gcc:
    JAVAPATH=$(JAVAINCLUDEPATH)
    LMACRO=-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DSOLARIS
    CSOURCE=BitmapImpl.c
    all:
    gcc -O3 -G $(LMACRO) -I$(JAVAPATH) -I$(JAVAPATH)/solaris \
    $(CSOURCE) -o libBitmapImpl.so
    It is still a total mystory why the application fails. I have tried it on a RedHat Linux machine and there it works fine. But not on Solaris. Only if I use the jdk1.1.8 but not a later one.
    Would really appreiciate some help!
    Best regards
    Lars

  • HELP. Window pops up on Firefox browser that says JavaScript Application, and under that it says 101. There is an OK bitton. when I click OK, up comes the window again and again.

    HELP. Window pops up on Firefox browser that says JavaScript Application, and under that it says 101. There is an OK bitton. when I click OK, up comes the window again. Then after hitting OK again and box goes away, when I move my mouse the box comes up identically again. I even called Apple support. They tried things; told me it may well be some set'''bold text'''ting in Firefox Preferences. This started right after Mac Update Install upon closing. Any help, please. My browser is totally (obviously) stuck in this loop!!! [email protected] jason

    Hi,
    Please check if this happens in [https://support.mozilla.com/en-US/kb/Safe%20Mode Safe Mode].
    [http://kb.mozillazine.org/Problematic_extensions Problematic Extensions]
    [https://support.mozilla.com/en-US/kb/Troubleshooting%20extensions%20and%20themes Troubleshooting Extensions and Themes]
    [http://support.mozilla.com/en-US/kb/Uninstalling+add-ons Uninstalling Add-ons]
    [http://kb.mozillazine.org/Uninstalling_toolbars Uninstalling Toolbars]
    Safe mode disables the installed '''Extensions''', and themes ('''Appearance''') in '''Tools''' ('''Alt''' + '''T''') > '''Add-ons'''. Hardware acceleration is also temporarily disabled - the manual setting is '''Tools''' > '''Options''' > '''Advanced''' > '''General''' > '''Use hardware acceleration when available'''. [https://support.mozilla.org/en-US/kb/Options%20window%20-%20Advanced%20panel?as=u Options > Advanced]. All these settings/add-ons can also be individually or collectively disabled/enabled/changed in Firefox normal mode to check if an extension, theme or hardware acceleration is causing issues.

  • 64-bit JNI C++ to JAVA invocation multiple threads classloader problem

    Hi ALL,
    I have a C++ app that invokes Java classes on 64-bit Solaris 10 with 64-bit JVM.
    Here is the problem:
    The native non-main (not the thread that initializes the JVM) threads would not be able to find any user-define class.
    Here are the symptoms and observations:
    1. JNIEnv::ExceptionDescribe() showed the following StackOverflowError:
    Exception in thread "Thread-0" java.lang.StackOverflowError
            at java.util.Arrays.copyOf(Arrays.java:2734)
            at java.util.Vector.ensureCapacityHelper(Vector.java:226)
            at java.util.Vector.addElement(Vector.java:573)
            at java.lang.ClassLoader.addClass(ClassLoader.java:173)
            at java.lang.ClassLoader.defineClass1(Native Method)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
            at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
            at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)2. The "main thread" that instantiates the JVM has no problem finding and loading any class or method
    3. But the other threads (non-main threads) would not be able to find the user-defined classes unless the classes were already loaded by the main thread.
    4. The non-main threads can find the "standard" java classes with no problem
    5. The same app ran fine on 32-bit system.
    6. Except for the JVM reference is global, each thread acquired JNIEnv by either GetEnv() or AttachCurrentThread().
    Any idea why it is a problem with 64-bit?
    I have the sample program to reproduce this issue in this thread: http://forums.sun.com/thread.jspa?messageID=10885363&#10885363. That was the original thread I raised but I have narrowed it down to a more concrete scenario. That's why I am creating this new thread. I hope this does not break any rule on this forum. If it does, I apologize.
    I really appreciate it if anyone can provide any help/suggestion.
    Regards,
    - Triet

    Here is the sample program. Again, this works on 32-bit but not 64-bit.
    #include <string>
    #include "jni.h"
    #include "TestThread.h"
    static JavaVM *g_pjvm = NULL;  /* denotes a Java VM */
    static JNIEnv *g_penv = NULL;  /* pointer to native method interface */
    void initJVM(char** jvmOptions) {
        printf("RJniTest init starts...\n");
        JavaVMInitArgs vm_args; /* JDK/JRE 6 VM initialization arguments */
        JavaVMOption* poptions;
        int optionLen = 0;
        while (jvmOptions[optionLen]) {
            optionLen++;
        printf("RJniTest::init len=%d\n", optionLen);
        if (optionLen > 0) {
            printf("RJniWrapper::init jvmOptions\n");
            poptions = new JavaVMOption[optionLen];
            //poptions[0].optionString = "-Djava.class.path=/usr/lib/java";
            int idx = 0;
            while (jvmOptions[idx]) {
                poptions[idx].optionString = jvmOptions[idx];
                idx++;
        printf("RJniTest::init vm_args: version(%x), nOptions(%d)\n",
                JNI_VERSION_1_6, optionLen);
        vm_args.version = JNI_VERSION_1_6;
        vm_args.nOptions = optionLen;
        vm_args.options = poptions;
        vm_args.ignoreUnrecognized = JNI_FALSE;
        // load and initialize a Java VM, return a JNI interface
        // pointer in env
        printf("RJniTest::init creates JVM\n");
        JNI_CreateJavaVM(&g_pjvm, (void**)&g_penv, &vm_args);
        printf("RJniTest init ends\n");
    void findClass(const char* classname) {
        static const char* fname = "justFindClasses";
        printf("%s: findClass: %s\n", fname, classname);
        JNIEnv* jenv;
        jint ret = g_pjvm->GetEnv((void**)&jenv, JNI_VERSION_1_6);
        if (ret == JNI_EDETACHED) {
            ret = g_pjvm->AttachCurrentThread((void**)&jenv, NULL);
            if (ret != JNI_OK || jenv == NULL) {
                printf("%s: get env error: ret=%d\n", ret, fname);
            } else {
                printf("%s: got new env\n", fname);
        } else if (ret == JNI_OK) {
            printf("%s: env already there\n");
        jclass classref;
        classref = jenv->FindClass(classname);
        if (classref == NULL) {
            printf("%s: %s class not found!\n", fname, classname);
            if (jenv->ExceptionOccurred()) {
                jenv->ExceptionDescribe();
                jenv->ExceptionClear();
        printf("%s: found class: %s\n", fname, classname);
    class RJniTestThread : public TestThread {
    public:
        void threadmain();
    void RJniTestThread::threadmain() {
        printf("RJniTestThread::threadmain: Starting testing\n");
        findClass("org/apache/commons/logging/Log");
        findClass("java/util/List");
        printf("RJniTestThread::threadmain: done.\n");
    int main(int argc, char** argv) {
        char **jvmOptions = NULL;
        printf("RJniTestDriver starts...\n");
        if (argc > 1) {
            jvmOptions = new char*[argc];
            for (int i = 0; i < argc ; i ++) {
                jvmOptions[i] = argv[i + 1];
            jvmOptions[argc - 1] = NULL;
        } else {
            int size = 8;
            int i = 0;
            jvmOptions = new char*[size];
            jvmOptions[i++] = (char*) "-Djava.class.path=<list of jar files and path here>";
            jvmOptions[i++] = (char*) "-Djava.library.path=/sandbox/mxdev/3rdparty/java/unix/jdk1.6.0_14/jre/lib/sparc";
            jvmOptions[i++] = (char*) "-Djava.compiler=NONE";
            jvmOptions[i++] = (char*) "-verbose:jni";
            jvmOptions[i++] = (char*) "-Xcheck:jni";
            jvmOptions[i++] = NULL;
        printf("init JVM\n");
        initJVM(jvmOptions);
        // UNCOMMENT HERE
        // findClass("org/apache/commons/logging/Log");
        // findClass("java/util/List");
        // UNCOMMENT END
        printf("start test thread\n");
        RJniTestThread testThread;
        ThreadId tid = testThread.launch();
        printf("wait for test thread\n");
        int ret = pthread_join(tid, NULL);
        printf("RJniTestDriver ends\n");
    }

  • UK Payroll Issue :Gross Wage Type /101 missing from RT

    Hi,
    We are facing an issue for some of the employees wherein Gross wage
    type /101 is not being generated when payroll is run .In place of /101 , /A01 wage type
    is getting created.
    This issue is being faced by employees whose claims were entered in
    March ( Payroll Period 12 2008) to be paid in April ( Payroll Period 01
    2009)
    If anybody knows ,please let me know why its happening like that .
    Thanks in advance.
    Anupama

    Hi Surya,
    Folowing is the log for employee not getting claims.
    /101 Total gross                                                       633.52
    /105 Working net                                                       475.08
    /111 EE's Pensio                                                       633.52
    /121 Taxable pay                                                       617.38
    /124 Pre-tax ded                                                        35.94-
    /131 NIable pay                                                        633.52
    /132 Regular NIa                                                       633.52
    /141 Arrestable                                                        493.78
    /211 Salary relv                                                       633.52
    /212 Salary relv                                                       653.32
    /302 Employer NI                                                        25.64
    /501 Tax paid                                                          123.60
    /550 Statutory n                                                       475.08
    /552 Retro. net                                                         18.70
    /559 Bank transf              01                                       493.80
    /560 Amount paid                                                       493.80
    /5A4 Sal.AWE bas                                                        19.80
    /5C2 Retro arstb                                                        18.70
    /5T2 Retro.taxbl                                                        18.70
    /5T4 Retro.preta                                                         1.10-
    /700 WT plus ER                                                        659.16
    /840 Diff.curr.f01                                   1.77
    /851 Total hours                                   103.18
    /P20 Tax-free pe                                                        34.84
    /V03 Net Pay fro                  V 03                                   0.02
    /V41 ME: arrest.                                                         0.02
    /VNS ME: NI paid                             25.64   2.00              653.34
    /VT3 ME:Taxable                                                          0.02
    /VT4 ME:Tax Paid
    9001 Local Gover                                                        34.84
    9101 Local Gover          0002    O 02                                 126.07
    9201 LG Tax Free                                                        34.84
    9N39 Cost dist.o          0002                                          25.64
    9NZ3 Cost dist o          0002    O 02                                  25.64
    9P01 Cost dist.o                                                       126.07
    3 /001 Main Hourly01                       62,173.06
    3 /002 WTD under 501                       71,026.95
    3 /003 WTD over 5y01                       72,617.95
    3 /004 Schools Spe01                       71,250.13
    3 /005 Valuation b01                            6.25
    3 /010 Daily Rate 01                       204361.29
    3 /011 Daily Rate 01                       204361.29
    3 /012 Daily Rate 01                       204361.29
    3 /013 Daily Rate 01                       204361.29
    3 /250 Salary summ                                                       633.52
    3 /251 Basic Annua01                                                   7,602.24
    3 /252 Total Annua01                                                   7,602.24
    3 1000 Basic Pay (01                                                     633.52
    Following is the log for employee getting claims
    /105 Working net                                                     2,761.26
    /111 EE's Pensio                                                     3,166.86
    /121 Taxable pay                                                     2,028.22
    /131 NIable pay                                                      3,166.86
    /133 Irregular N                                                     3,166.86
    /141 Arrestable                                                      1,622.62
    /211 Salary relv                                                     3,166.86
    /212 Salary relv                                                     2,028.22
    /501 Tax paid                                                          405.60
    /550 Statutory n                                                     2,761.26
    /551 Stat.net re                                                     3,166.86-
    /552 Retro. net                                                      2,028.22
    /553 Recalc.diff                                                     3,166.86-
    /5A1 Sal.AWE bas                                     1.00
    /5A3 Sal.AWE bas                                                     3,166.86-
    /5A4 Sal.AWE bas                                                     2,028.22
    /5C1 Arstble ern                                                     3,166.86-
    /5C2 Retro arstb                                                     2,028.22
    /5T1 Txbl.pay re                                                     3,166.86-
    /5T2 Retro.taxbl                                                     2,028.22
    /700 WT plus ER                                                      3,166.86
    /840 Diff.curr.f01                                   2.80
    /851 Total hours                                   162.80
    /A01 Total gross                                                     3,166.86
    /V01 Net Pay on                                                      1,622.62
    3 /001 Main Hourly01                       190940.93
    3 /002 WTD under 501                       218132.27
    3 /001 Main Hourly01                       190940.93
    3 /002 WTD under 501                       218132.27
    3 /003 WTD over 5y01                       223018.42
    3 /004 Schools Spe01                       218817.70
    3 /005 Valuation b01                           19.19
    3 /010 Daily Rate 01                       990267.74
    3 /011 Daily Rate 01                       990267.74
    3 /012 Daily Rate 01                       990267.74
    3 /013 Daily Rate 01                       990267.74
    3 /250 Salary summ                                                     3,069.83
    3 /251 Basic Annua01                                                  36,837.96
    3 /252 Total Annua01                                                  36,837.96
    3 1270 Notional Ba01                                                   3,069.83
    3 3715 Claim WTD >01                       223018.42 142.00            3,166.86
    I have also got this info.
    Retroaction and End of Year 
    Purpose
    If you need to use retroaction over end of year, for example when overtime entered in period 12 is to be paid in period 1, or backdated pay increases applied in the new tax year are to start in the previous tax year, you can do this without this changing any statutory balances in the previous tax year.
    Process Flow
    If you make any changes over end of year that trigger retroaction, this will not affect the statutory balances in the previous tax year.
    However, a change that affects total gross, for example, will be recorded and summed into a wage type called /A01 (Total Gross). The /A01 value will feed a wage type called /Z01 (Total Gross), which will be passed across to the new tax year, ensuring that any retro differences will only affect statutory cumulatives in the new tax year, but will not compromise period 12 statutory cumulatives that may already have been used for end of year reporting.
    The following wage types were introduced to enable retroaction over end of year:
    u2022     /A01
    u2022     /A12
    u2022     /AMP
    u2022     /AP0
    u2022     /AP1
    u2022     /ASP
    u2022     /Z01
    u2022     /Z12
    u2022     /ZMP
    u2022     /ZP0
    u2022     /ZP1
    u2022     /ZSP
    Thanks and Regards,
    Anupama

  • Satellite L20-101: Question about memory modules mixing PC2-4300 and PC2-4200

    Hello
    I have Toshiba Satellite L20-101. It has onboard 512MB RAM (PC2-4300). Today I added another RAM module but this new module is PC2-4200. Is there anything wrong doing this? Both modules are DDR2 and 533MHz and 512MB.

    Hi Pawel,
    In principle there is no problem with mixing RAM modules of slightly different types but normally the total RAM will only run at the speed of the slower module. If your notebook recognises the correct amount of RAM from both sticks then there will ne no problem.
    regards,

Maybe you are looking for

  • How do I access Firefox when Norton 360 firewall seems to be blocking access but all links on Norton 360 default to Mozilla page which can't connect?

    I'm writing this via a Windows Explorer browser window which should tell you the problem, or at least that I can't connect through Mozilla Firefox. Mozilla has been my default for years and I've always had Norton, 360 for the last few years. I've bee

  • Display additional fields in Service Request detail page

    Hi All, Is it possible to display some fields like Account Type, Contact Type etc. in Service Request detail page? Service Request Field Edit page only allows to add default value to the newly created field, that's not the result that I needed. Any s

  • Reports XI: Infoview behavior with Row Level Security

    Post Author: pwilliamsbssp CA Forum: General I have a report that is based off a business view that has project information with an additional table used to assign report users to certain clients (each project has a client).  A filter is used to assi

  • Oracle Performance Management

    Dears, I need to generate a Userhook to make extra validation for the ((TOTAL)) of Objectives Weights, actually my problem is that i cannot find a proper API to locate my User Hook in, because i tried to locate my userhook on (HR_OBJECTIVES_API.CREAT

  • What Is Error Code 10810?

    Suddenly when I click on any apps in my Dock, I get an error message that the application can't be opened and an error code 10810. Even when I tried to reinstall apps (iLife, for example) from the install disk, I get the same error message. I recentl