Java error - Bemelegítő házi

0 votes
asked Mar 15, 2016 in Rendszermodellezés A00 by adamk (34 points)  

Sziasztok,

2.4-es Statechart Tools-t tettem fel, ahogy a pdf-ben volt (az Eclipse update-elve), 1.8-as a fordító. Úgy látom, hogy a tesztesetek jól lefutnak (a hiba try/catch-ben van, ezért fut tovább), különben nem jutnának el a printf-ig, viszont közben problémázik:

    java.lang.NoSuchMethodException: org.yakindu.scr.chessclockuaaa5i.ChessClockUAAA5IStatemachine.setTimer(org.yakindu.scr.ITimer)
    at java.lang.Class.getMethod(Class.java:1786)
    at hu.bme.mit.inf.symod.homework.generic.tests.ReflectiveTimeInterfaceProvider.setTimer(ReflectiveTimeInterfaceProvider.java:36)
    at hu.bme.mit.inf.symod.homework.generic.tests.TesterAPI.<init>(TesterAPI.java:20)
    at hu.bme.mit.inf.symod.homework.generic.tests.TestCases.neptun1(TestCases.java:13)
    at hu.bme.mit.inf.symod.homework.generic.tests.TestCases.main(TestCases.java:8)
neptun1 Succeeded!
neptun2 Succeeded!
neptun3 Succeeded!
neptun4 Succeeded!
java.lang.NoSuchMethodException: org.yakindu.scr.chessclockuaaa5i.ChessClockUAAA5IStatemachine.setTimer(org.yakindu.scr.ITimer)
    at java.lang.Class.getMethod(Class.java:1786)
    at hu.bme.mit.inf.symod.homework.generic.tests.ReflectiveTimeInterfaceProvider.setTimer(ReflectiveTimeInterfaceProvider.java:36)
    at hu.bme.mit.inf.symod.homework.generic.tests.TesterAPI.<init>(TesterAPI.java:20)
    at hu.bme.mit.inf.symod.homework.generic.tests.TestCases.neptun2(TestCases.java:20)
    at hu.bme.mit.inf.symod.homework.generic.tests.TestCases.main(TestCases.java:8)
java.lang.NoSuchMethodException: org.yakindu.scr.chessclockuaaa5i.ChessClockUAAA5IStatemachine.setTimer(org.yakindu.scr.ITimer)
    at java.lang.Class.getMethod(Class.java:1786)
    at hu.bme.mit.inf.symod.homework.generic.tests.ReflectiveTimeInterfaceProvider.setTimer(ReflectiveTimeInterfaceProvider.java:36)
    at hu.bme.mit.inf.symod.homework.generic.tests.TesterAPI.<init>(TesterAPI.java:20)
    at hu.bme.mit.inf.symod.homework.generic.tests.TestCases.neptun3(TestCases.java:28)
    at hu.bme.mit.inf.symod.homework.generic.tests.TestCases.main(TestCases.java:8)
java.lang.NoSuchMethodException: org.yakindu.scr.chessclockuaaa5i.ChessClockUAAA5IStatemachine.setTimer(org.yakindu.scr.ITimer)
    at java.lang.Class.getMethod(Class.java:1786)
    at hu.bme.mit.inf.symod.homework.generic.tests.ReflectiveTimeInterfaceProvider.setTimer(ReflectiveTimeInterfaceProvider.java:36)
    at hu.bme.mit.inf.symod.homework.generic.tests.TesterAPI.<init>(TesterAPI.java:20)
    at hu.bme.mit.inf.symod.homework.generic.tests.TestCases.neptun4(TestCases.java:37)
    at hu.bme.mit.inf.symod.homework.generic.tests.TestCases.main(TestCases.java:8)

Mi lehet a baja?

Köszi!
Ádám

2 Answers

+1 vote
answered Mar 16, 2016 by oszkar.semerath (1,599 points)  
selected Mar 16, 2016 by benedekh
 
Best answer

A modell helyesen viselkedik, a tesztelés is lefut, csak kiírunk extra hibaüzeneteket.

Ez amiatt van, mert a Yakindu kódgenerátorának jelenlegi változata állapottal rendelkezik, ami esetünkben úgy jött elő hogy az időzítéssel kapcsolatos kódrészletek korábbról megmaradtak annak ellenére, hogy már nincs is a modellben óra használva. Emiatt fut rá a tesztelő kód hibára.

Megoldás:
Töröljük a org.yakindu.scr és a org.yakindu.scr.chessclockxxxxxx packageket a yakindu mappából, és hagyjuk hogy újragenerálja a kódot.

A nagy házi feladatba olyan tesztkörnyezetet adunk ki majd, ami ezt az esetet is figyelembe fogja venni.

0 votes
answered Mar 15, 2016 by oszkar.semerath (1,599 points)  

Tettél bele valami időbeli dolgot? Például "after 0 s" kifejezést?

commented Mar 15, 2016 by adamk (34 points)  
Szia,

Entry-t.
commented Mar 15, 2016 by oszkar.semerath (1,599 points)  
Bocsi, ezt most nem értem, az entriből menő nyílra írtál időbeli kifejezést?
El tudnád küldeni a megoldásod semerath@mit.bme.hu-ra?
...