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.

Running exception at step 5

Hi guys,

I'm trying to use XESame19 for the example in Buijs's master thesis. But when running the example, I get the following exception at Step 5 of 5 Converting CacheDB to XES:

2022-03-07 16:38:22: (PROGRESS) Starting step 1 of 5: initialization.
2022-03-07 16:38:28: (PROGRESS) Starting step 2 of 5: Extracting log info.
2022-03-07 16:38:28: (DEBUG) We are about to run the following query to extract the items for Log:
SELECT 'TestLog' AS concept_name, 'standard' AS lifecycle_model FROM events AS events
2022-03-07 16:38:29: (PROGRESS) Starting step 3 of 5: Extracting traces.
2022-03-07 16:38:29: (DEBUG) We are about to run the following query to extract the items for Trace:
SELECT DISTINCT orderID AS traceID, 'order' & orderID AS concept_name FROM events AS events   WHERE orderID < 100
2022-03-07 16:38:29: (PROGRESS) Starting step 4 of 5: Extracting Event: Generated Event.
2022-03-07 16:38:29: (DEBUG) We are about to run the following query to extract the items for Event: Generated Event:
SELECT orderID AS traceID, timestamp AS orderAttribute, eventname AS concept_name, eventType AS lifecycle_transition, users.userName AS org_resource, users.userGroup AS org_group, users.userRole AS org_role, timestamp  AS time_timestamp, "New!" AS New_Attribute FROM events AS events  INNER JOIN users AS users ON users.userID = events.userID
2022-03-07 16:38:29: (PROGRESS) Starting step 5 of 5: Converting Cache DB to XES.
Exception in thread "Thread-0" java.lang.NoClassDefFoundError: org/mapdb/DBException$FileLocked
        at org.xeslite.external.XFactoryExternalStore$MapDBDiskImpl.<init>(XFactoryExternalStore.java:77)
        at org.xeslite.external.XFactoryExternalStore$MapDBDiskSequentialAccessImpl.<init>(XFactoryExternalStore.java:183)
        at org.processmining.xeslite.external.XFactoryExternalStore$MapDBDiskSequentialAccessImpl.<init>(XFactoryExternalStore.java:15)
        at org.processmining.mapper.controller.ExecutionController.convertDBtoXES(ExecutionController.java:1564)
        at org.processmining.mapper.controller.ExecutionController.run(ExecutionController.java:755)
        at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.ClassNotFoundException: org.mapdb.DBException$FileLocked
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)


By the way, it seems that I cannot change CacheDB location because of the following exception:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at org.processmining.mapper.controller.MappingController.setCacheLocation(MappingController.java:781)
        at org.processmining.mapper.ui.browsers.ExecutionSettingsBrowser$2.actionPerformed(ExecutionSettingsBrowser.java:341)
        at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
        at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
        at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
        at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
        at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
        at java.desktop/java.awt.Component.processMouseEvent(Component.java:6635)
        at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
        at java.desktop/java.awt.Component.processEvent(Component.java:6400)
        at java.desktop/java.awt.Container.processEvent(Container.java:2263)
        at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5011)
        at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
        at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843)
        at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
        at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
        at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
        at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
        at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772)
        at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843)
        at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
        at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
        at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
        at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
        at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

I'm using Windows 10 64 bit.

I'm not sure if this is a bug or I'm doing something wrong. Maybe someone can help me. Thanks!

Li

Comments

  • Hi Li,

    Is the location set for the cacheDB an existing folder? It seems as if the cacheDB is correctly filled but when the cacheDB is queried the exception is raised. 
    Joos Buijs

    Senior Data Scientist and process mining expert at APG (Dutch pension fund executor).
    Previously Assistant Professor in Process Mining at Eindhoven University of Technology
  • Hi Buijs,

    The locations set for the cacheDB is the default folder F:\ProM\prom-6.9-all-platforms\cacheDB, and it seems that I cannot change the cacheDB location, cuz this will raise an exception.
  • Did you try launching XESAme in admin/elevated modus?
    If this doesn't work then I'm afraid I'm out of ideas for now (too long ago). You might want to browse the forums to see if this is a known issue.
    Joos Buijs

    Senior Data Scientist and process mining expert at APG (Dutch pension fund executor).
    Previously Assistant Professor in Process Mining at Eindhoven University of Technology
  • Hi Buijs,

    Thanks for your reply. I tried the admin mode but it didn't work.

    It seems to me that the cacheDB is correctly created but things go wrong when it is converted to XES. If so, do you know where can I find the cacheDB? Is it in the cacheDB/seg0 file? Cuz I found there several .dat files created after running XESame but do not know how to open them, is there a way to view the cacheDB like a csv table? Thanks a lot!
  • Hi Dunyuan,

    The CacheDB is not like a CSV file, it is a proper file-based database. Not sure which type, but it had a Java library to read/write it.
    As it is created, the step where it fails tries to read from the CacheDB, so not sure where/why it fails exactly.
    Joos Buijs

    Senior Data Scientist and process mining expert at APG (Dutch pension fund executor).
    Previously Assistant Professor in Process Mining at Eindhoven University of Technology
  • Hi,

    Did you already have a look at https://www.win.tue.nl/promforum/discussion/436/error-in-step-5-following-tutorial-for-csv-to-xes#latest? Here, the solution was to use XESame 1.5.1, which comes with ProM 6.5.1.

    Kind regards,
    Eric.

  • Hi hverbeek,

    Thanks for your quick reply. I changed to XESame 1.5.1 but got another exception at step 5:

    Exception in thread "Thread-0" java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
            at org.deckfour.xes.util.XsDateTimeConversion.format(XsDateTimeConversion.java:165)
            at org.deckfour.xes.util.XsDateTimeConversionJava7.format(XsDateTimeConversionJava7.java:131)
            at org.deckfour.xes.out.XesXmlSerializer.addAttributes(XesXmlSerializer.java:227)
            at org.deckfour.xes.out.XesXmlSerializer.addGlobalAttributes(XesXmlSerializer.java:189)
            at org.deckfour.xes.out.XesXmlSerializer.serialize(XesXmlSerializer.java:151)
            at org.deckfour.xes.out.XesXmlGZIPSerializer.serialize(XesXmlGZIPSerializer.java:91)
            at org.processmining.mapper.controller.ExecutionController.convertDBtoXES(ExecutionController.java:1829)
            at org.processmining.mapper.controller.ExecutionController.run(ExecutionController.java:750)
            at java.base/java.lang.Thread.run(Thread.java:834)
    Caused by: java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter
            at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
            at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
            at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)

    Do you know anything about this exception? May something wrong with my running environment (I'm using Windows 10 64 bit, Java 11)?

  • I guess you are using Java 9 or later. As from Java 9, this javax/xml/bind/DatatypeConverter class is not included by default anymore.

    If you happen to have Java 8 (or 7) on your system, then I would advice to use that.

    If not, and if you still happen to have ProM 6.9 installed, then please go tot the folder whether you have installed its packages. By default, this would be the .ProM69/packages folder in your home folder. In this folder, please go to the jaxb-6.9.6/lib folder. Here, you will find two jar files: javax.activation-api-1.2.0.jar and jaxb-api-2.4.0-b180830.0359.jar. These jar files contain the missing classes. Please copy them to the folder where you have installed ProM 6.5.1, and add them to the class path of XESame 1.5.1 (like editing the XESame151.bat file and adding them, something like follows:
    java -classpath "XESame15.jar;javax.activation-api-1.2.0.jar;jaxb-api-2.4.0-b180830.0359.jar" org.processmining.mapper.ui.MainFrame

    Kind regards,
    Eric.




  • Hi hverbeek, aftering importing the missing classes as you suggested, I finally run XESame successfully. Thanks a lot for all your help! : )

  • Thanks for letting us know. Apparently, to use XESame successfully:
    1. it is best to use XESame 1.5.1, which is part of ProM 6.5.1, and
    2. if using Java 9 or later, one needs to install these two JAXB-related jar files.
    Kind regards,
    Eric.
  • Great to read it's working Dunyuan! Happy mining ;) 
    Joos Buijs

    Senior Data Scientist and process mining expert at APG (Dutch pension fund executor).
    Previously Assistant Professor in Process Mining at Eindhoven University of Technology
Sign In or Register to comment.