Skip to content

JavaMOP not working with tradebeans and tradesoap #250

@JesperStromblad

Description

@JesperStromblad

Hi, I am trying to run JavaMOP on Dacapo benchmark. However, I am getting this exception only on two workloads.

Exception initializing client: org.apache.geronimo.kernel.config.LifecycleException: load of org.apache.geronimo.daytrader/daytrader-dacapo/2.2-SNAPSHOT/car failedorg.apache.geronimo.kernel.config.LifecycleException: load of org.apache.geronimo.daytrader/daytrader-dacapo/2.2-SNAPSHOT/car failed
at org.apache.geronimo.kernel.config.SimpleConfigurationManager.loadConfiguration(SimpleConfigurationManager.java:328)
at org.apache.geronimo.kernel.config.SimpleConfigurationManager.loadConfiguration(SimpleConfigurationManager.java:281)
at org.apache.geronimo.kernel.config.SimpleConfigurationManager.loadConfiguration(SimpleConfigurationManager.java:256)
at org.apache.geronimo.kernel.config.KernelConfigurationManager.loadConfiguration(KernelConfigurationManager.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34)
at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124)
at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:832)
at org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)
at org.apache.geronimo.kernel.config.EditableConfigurationManager$$EnhancerByCGLIB$$6b66b72e.loadConfiguration()
at org.dacapo.daytrader.DaCapoClientRunner.initialize(DaCapoClientRunner.java:44)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.dacapo.daytrader.Launcher.initialize(Launcher.java:77)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.dacapo.harness.Tradesoap.prepare(Tradesoap.java:45)
at org.dacapo.harness.Benchmark.run(Benchmark.java:163)
at org.dacapo.harness.TestHarness.runBenchmark(TestHarness.java:199)
at org.dacapo.harness.TestHarness.main(TestHarness.java:152)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at Harness.main(Unknown Source)
Caused by: org.apache.geronimo.kernel.config.InvalidConfigException: Error starting configuration gbean org.apache.geronimo.daytrader/daytrader-dacapo/2.2-SNAPSHOT/car
at org.apache.geronimo.kernel.config.KernelConfigurationManager.load(KernelConfigurationManager.java:181)
at org.apache.geronimo.kernel.config.SimpleConfigurationManager.loadConfiguration(SimpleConfigurationManager.java:313)
... 33 more
Caused by: org.apache.geronimo.gbean.InvalidConfigurationException: Configuration gbean failed to start org.apache.geronimo.daytrader/daytrader-dacapo/2.2-SNAPSHOT/car
reason: Unable to deserialize GBeanState in classloader: [org.apache.geronimo.kernel.config.MultiParentClassLoader id=org.apache.geronimo.daytrader/daytrader-dacapo/2.2-SNAPSHOT/car]
at org.apache.geronimo.kernel.config.KernelConfigurationManager.load(KernelConfigurationManager.java:164)
... 34 more

Instrumentation code is -

aspect BaseAspect {
pointcut notwithin() :
!within(sun..) &&
!within(java..
) &&
!within(javax..) &&
!within(com.sun..
) &&
!within(org.dacapo.harness..) &&
!within(org.apache.commons..
) &&
!within(org.apache.geronimo..) &&
!within(net.sf.cglib..
) &&
!within(mop..) &&
!within(javamoprt..
) &&
!within(rvmonitorrt..) &&
!within(com.runtimeverification..
);
}

public aspect ArrayDeque_NonNullMonitorAspect implements com.runtimeverification.rvmonitor.java.rt.RVMObject {
public ArrayDeque_NonNullMonitorAspect(){
}

    // Declarations for the Lock
  static ReentrantLock ArrayDeque_NonNull_MOPLock = new ReentrantLock();
   static Condition ArrayDeque_NonNull_MOPLock_cond = ArrayDeque_NonNull_MOPLock.newCondition();

   pointcut MOP_CommonPointCut() : !within(com.runtimeverification.rvmonitor.java.rt.RVMObject+) && !adviceexecution() && BaseAspect.notwithin();
    pointcut ArrayDeque_NonNull_insertnull(Object e) : ((call(* ArrayDeque.add*(..)) || call(* ArrayDeque.offer*(..)) || call(* ArrayDeque.push(..))) && args(Object+) && args(e)) && MOP_CommonPoin    tCut();
    before (Object e) : ArrayDeque_NonNull_insertnull(e) {
           ArrayDeque_NonNullRuntimeMonitor.insertnullEvent(e);
     }

}

Thank you.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions