To prevent spam users, you can only post on this forum after registration, which is by invitation. If you want to post on the forum, please send me a mail (h DOT m DOT w DOT verbeek AT tue DOT nl) and I'll send you an invitation in return for an account.

Exception using Plugin "Data-Aware History-Based Conformance Checking"

Hi,

I have a question regarding the above-mentioned plugin. Whenever I choose an attribute with the datatype Double for the cost function I receive the following class cast exception. I tried on ProM6.10 as well as on an older version (6.6).

"java.lang.ClassCastException: org.deckfour.xes.model.impl.XAttributeContinuousImpl cannot be cast to org.deckfour.xes.model.impl.XAttributeLiteralImpl"

Thanks in advance and kind regards,
Nico

Comments

  • Hi Nico,

    I see in the sources that such casts are indeed being made: First, it gets the string value of an attribute, then it converts this value to a double. Of course, if you have a Float attribute (a Double datatype, I guess), the value of the attribute is already a double, and not a string.

    It would help if you could provide me with a stack trace of the exception. If you run, say, ProM 6.10 using the ProM610.bat file instead of the ProM610.exe file (seethe folder where you have installed ProM 6.10), then a command prompt will be opened where additional information gets written to. This will include such a stack trace. If you can copy-paste such a stack trace here, then I can check whether it is indeed the issue.

    Note that we cannot replace released packages, so I cannot fix this for any of the releases you mention. The only work-around I can think of is to replace all float elements in the XES file by string elements (like global-search-and-replace of "float" to "string"). 

    Kind regards,
    Eric.
  • Nico
    edited September 2021
    Hi Eric,

    thanks for your quick reply. Replacing the elements within the XES file indeed helps. The stack trace was the following:

    -------- The following exception was logged by the framework:
             The exception was probalby handled properly.
    java.util.concurrent.ExecutionException: java.lang.ClassCastException: org.deckfour.xes.model.impl.XAttributeContinuousImpl cannot be cast to org.deckfour.xes.model.impl.XAttributeLiteralImpl
            at java.util.concurrent.FutureTask.report(FutureTask.java:122)
            at java.util.concurrent.FutureTask.get(FutureTask.java:192)
            at javax.swing.SwingWorker.get(SwingWorker.java:602)
            at org.processmining.framework.plugin.ProMFuture.get(ProMFuture.java:119)
            at org.processmining.framework.plugin.impl.AbstractPluginDescriptor$1.done(AbstractPluginDescriptor.java:192)
            at org.processmining.framework.plugin.ProMFuture$1.done(ProMFuture.java:66)
            at javax.swing.SwingWorker$5.run(SwingWorker.java:737)
            at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(SwingWorker.java:832)
            at sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:112)
            at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(SwingWorker.java:842)
            at javax.swing.Timer.fireActionPerformed(Timer.java:313)
            at javax.swing.Timer$DoPostEvent.run(Timer.java:245)
            at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
            at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
            at java.awt.EventQueue.access$500(EventQueue.java:97)
            at java.awt.EventQueue$3.run(EventQueue.java:709)
            at java.awt.EventQueue$3.run(EventQueue.java:703)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
            at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
            at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
    Caused by: java.lang.ClassCastException: org.deckfour.xes.model.impl.XAttributeContinuousImpl cannot be cast to org.deckfour.xes.model.impl.XAttributeLiteralImpl
            at org.processmining.plugins.historyAwareReplayer.replayer.costFunction.data.DataMining.getAttributeValue(DataMining.java:538)
            at org.processmining.plugins.historyAwareReplayer.replayer.costFunction.data.DataMining.discretizeData(DataMining.java:515)
            at org.processmining.plugins.historyAwareReplayer.replayer.costFunction.data.DataMining.<init>(DataMining.java:83)
            at org.processmining.plugins.historyAwareReplayer.replayer.costFunction.HistoryAwareCostFunction.init(HistoryAwareCostFunction.java:49)
            at org.processmining.plugins.historyAwareReplayer.DataConformanceChecking.initParameters(DataConformanceChecking.java:184)
            at org.processmining.plugins.historyAwareReplayer.replayer.HistoryAwareConformanceCheckingWithDataPlugin.dataAwareHistoryBasedReplayer(HistoryAwareConformanceCheckingWithDataPlugin.java:50)
            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.processmining.framework.plugin.impl.PluginDescriptorImpl.execute(PluginDescriptorImpl.java:329)
            at org.processmining.framework.plugin.impl.AbstractPluginDescriptor$1.doInBackground(AbstractPluginDescriptor.java:154)
            at org.processmining.framework.plugin.ProMFuture$1.doInBackground(ProMFuture.java:56)
            at javax.swing.SwingWorker$1.call(SwingWorker.java:295)
            at java.util.concurrent.FutureTask.run(FutureTask.java:266)
            at javax.swing.SwingWorker.run(SwingWorker.java:334)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
            at java.lang.Thread.run(Thread.java:748)
    --------------------------------------------------------------


    However, for some reason the plugin still does not align log and model correctly (although it should) but instead shows the following behavior for all traces (using a part of the road traffic fines log):



    Do you maybe have an idea what the problem for this behavior might be or is it something I should ask the author of the plugin for?

    Thank you and kind regards,
    Nico

  • Hi Nico,

    This is the stack trace I expected. The plugin here assumes that all attributes are string attributes.

    Unfortunately, I do not know the ins and outs of this plugin. I guess it is related to this publication (see http://ceur-ws.org/Vol-1293/paper1.pdf) of the developer of the plugin, Mahdi Alizadeh. At the time, Mahdi was a PhD student at our department, bu ti have no idea where is working now, and how you can reach him. The third author of the paper, Nicola Zannone, is still working in our department, his email address should still work. Perhaps you could ask Nicola?

    Kind regards,
    Eric.

  • Thanks for your help Eric, I'll try to reach out to him :smile: 

Sign In or Register to comment.