[otj-users] Strange problem in very simple example

Marco Mosconi mosconi at cs.tu-berlin.de
Thu Jul 10 00:56:10 CEST 2008


Hi Otto,

this seems to be a technical, JUnit-related problem. Running your test() 
method as regular main-method works fine.
We will have a look at this.

Marco

Olaf Otto schrieb:
> Hello!
> 
> I wanted to start working on a very simple team & role example in order 
> to play with persistence in OTJ,
> and for that purpose i installed the latest OTJ (1.2.0) in ganymede.
> 
> I have written  a very simple team, role, baseclass and testcase (pasted 
> at the bottom of the message), which fails with the following exception:
> 
> java.lang.NoSuchMethodError: 
> de.tuberlin.swt.otdt.persistenceplayground.Person.getde$tuberlin$swt$otdt$persistenceplayground$Family_OT$Tag()S 
> 
>    at 
> de.tuberlin.swt.otdt.persistenceplayground.Family._OT$liftTo$Parent(Family.java:13) 
> 
>    at 
> de.tuberlin.swt.otdt.persistenceplayground.Family.setParent(Family.java:22)
>    at 
> de.tuberlin.swt.otdt.persistenceplayground.PlaygroundTest.test(PlaygroundTest.java:11) 
> 
>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>    at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
> 
>    at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
> 
>    at java.lang.reflect.Method.invoke(Method.java:597)
>    at 
> org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99) 
> 
>    at 
> org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81) 
> 
>    at 
> org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34) 
> 
>    at 
> org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75) 
> 
>    at 
> org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
>    at 
> org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:66) 
> 
>    at 
> org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35) 
> 
>    at 
> org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42) 
> 
>    at 
> org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34) 
> 
>    at 
> org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
>    at 
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:45) 
> 
>    at 
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 
> 
>    at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) 
> 
>    at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) 
> 
>    at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) 
> 
>    at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) 
> 
> 
> Here are my classes:
> ---- team and role -------------------------
> 
> package de.tuberlin.swt.otdt.persistenceplayground;
> 
> /**
> * @author Olaf Otto
> *
> */
> public team class Family {
>    private Parent _parent;
> 
>    protected class Parent playedBy Person {
>    }
> 
>    /**
>     * lifting setter.
>     *
>     * @param person
>     *            must not be null.
>     */
>    public void setParent(Person as Parent p) {
>        _parent = p;
>    }
> 
>    /**
>     * lowering getter.
>     *
>     * @return the parent, or null.
>     */
>    public Person getParent() {
>        return _parent;
>    }
> }
> 
> 
> ---- baseclass -------------------------
> 
> package de.tuberlin.swt.otdt.persistenceplayground;
> 
> /**
> * Represents a person.
> *
> * @author Olaf Otto
> */
> public class Person {
>    private String firstname;
>    private String lastname;
> 
>    public Person(String firstname, String lastname) {
>        this.firstname = firstname;
>        this.lastname = lastname;
>    }
> }
> 
> -------------- testcase ---------------
> 
> package de.tuberlin.swt.otdt.persistenceplayground;
> 
> import org.junit.Test;
> 
> public class PlaygroundTest {
>    @Test
>    public void test() {
>        Person person1 = new Person("person1", "person1");
>        Family family = new Family();
>        within (family) {
>            family.setParent(person1);
>        }
>    }
> }
> 
> 
> I run ganymede on Ubuntu 8.04 with a sun j2se jdk 1.6.0_10-beta.
> 
> What am i doing wrong?
> 
> Thanks and greetings,
> Olaf
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> otj-users mailing list
> otj-users at objectteams.org
> http://www.objectteams.org/cgi-bin/mailman/listinfo/otj-users

-- 
Dipl.-Inform. Marco Mosconi
Technische Universität Berlin
Fak. IV, Fachg. Softwaretechnik



More information about the otj-users mailing list