#546 Filter for actor not working in movie module

3.9.18
closed-fixed
nobody
None
5
2013-04-29
2013-01-22
Granni
No

Movie Module:

When I search for Actors in "Quick filter", I get no results, even if I search for an actor who is definitely in the database. Tried this in German and English language. It is also not working when I search with the "Filter" option.

A small side bug: When I type in the Actor and have open the select box, in the "Quick filter" it is not automatically switching to the characters I typed in. In the "Filter" dialog it does.

Discussion

  • Hi,

    Can you attach the log file, located in your user folder (data_crow.log)?
    Please make sure you have tried to search once more before sending it.

    Thanks, Robert

     
  • Confirmed in 3.9.19 with error 12:55:32 - java.lang.ClassCastException

     
  • Same result if using Filter Dialog

     
  • Found the log file!
    ERROR [Thread-10011] (FileTreePanel.java:270) - java.lang.ClassCastException: java.lang.String cannot be cast to net.datacrow.core.objects.DcObject
    java.lang.ClassCastException: java.lang.String cannot be cast to net.datacrow.core.objects.DcObject
    at net.datacrow.core.data.DataFilter.addEntries(DataFilter.java:699)
    at net.datacrow.core.data.DataFilter.toSQL(DataFilter.java:576)
    at net.datacrow.core.db.DatabaseManager.getKeys(DatabaseManager.java:269)
    at net.datacrow.core.data.DataManager.getKeyList(DataManager.java:682)
    at net.datacrow.console.components.panels.tree.FileTreePanel$TreeHugger.createTree(FileTreePanel.java:227)
    at net.datacrow.console.components.panels.tree.FileTreePanel$TreeHugger.createTree(FileTreePanel.java:191)
    at net.datacrow.console.components.panels.tree.FileTreePanel$TreeHugger.run(FileTreePanel.java:143)
    ERROR [Thread-10009] (FieldTreePanel.java:479) - java.lang.ClassCastException: java.lang.String cannot be cast to net.datacrow.core.objects.DcObject
    java.lang.ClassCastException: java.lang.String cannot be cast to net.datacrow.core.objects.DcObject
    at net.datacrow.core.data.DataFilter.addEntries(DataFilter.java:699)
    at net.datacrow.core.data.DataFilter.toSQL(DataFilter.java:576)
    at net.datacrow.core.db.DatabaseManager.getKeys(DatabaseManager.java:269)
    at net.datacrow.core.data.DataManager.getKeys(DataManager.java:686)
    at net.datacrow.console.components.panels.tree.FieldTreePanel$TreeHugger.createTree(FieldTreePanel.java:407)
    at net.datacrow.console.components.panels.tree.FieldTreePanel$TreeHugger.createTree(FieldTreePanel.java:371)
    at net.datacrow.console.components.panels.tree.FieldTreePanel$TreeHugger.createTree(FieldTreePanel.java:165)
    at net.datacrow.console.components.panels.tree.FieldTreePanel$TreeHugger.run(FieldTreePanel.java:148)

     
  • still present in 3.9.20

     
  • Which platform are you running on? Can you attach the whole log file to this ticket?
    It wokrs here on both Ubuntu, Windows XP and Windows 7. Daunting!

    Best, Robert

     
  • ubuntu 12.04 but not been very happy with its stability.

    log file attached. you can see the problems I had with imports!

    curious error at around line 177
    ERROR [Thread-1] (SettingsFile.java:60) - Could not save settings to file /usr/share/datacrow/datacrow_3_9_20/data/data_crow.properties

    I checked name filter in actors and directors and it worked as expected.

    Good Luck and thanks

     
    Attachments
  • Please don't state different problems in a ticket about a particular problem.

    1 - The messages are clear; you tried to import names/text into a number field.
    2 - I have fixed the issue woth the properties file, that happens after selecting the user folder - fixed for next version.
    3 - So now the filter works?

     
  • The imports were not a problem with the app except for the out of memory issues. I mentioned it only FYI. But the data has all been cleaned and it is not the source of the zero records found result. The drop down list is correctly populated as far as I can see, The function is expecting an object reference? The dataset is around 850 movies and 6800 actors.

     
  • Gerald Cox
    Gerald Cox
    2013-03-08

    I'm having the same issue with 3.9.21

    Here are the message from the log when I try to apply the filter:
    12:53:10 - Memory usage (max 911 MB) (used 355 MB) (available 556 MB)

    12:53:05 - java.lang.ClassCastException: java.lang.String cannot be cast to net.datacrow.core.objects.DcObject

    12:53:05 - java.lang.ClassCastException: java.lang.String cannot be cast to net.datacrow.core.objects.DcObject

    When I select from the Actor module and look at the related items the information appears to be correctly populated.

    Let me know if I can provide any additional information to assist in resolving.

     
  • Still a headscratcher for me - it works wonderful on all my test systems. Alas, I really would like to fix this. If someone can give me a step by step screenshot doc that would be very helpful!

    Cheers, Robert

     
  • Gerald Cox
    Gerald Cox
    2013-03-10

    I haven't yet done full scale testing, but noticed that after I implemented the work around for the double-quote problem (") I haven't experienced this problem.

     
  • Gerald Cox
    Gerald Cox
    2013-03-10

    OK, the problem has returned as I am able to add more records to the database. It worked with I had 1056 actors. Now with 1434 actors the issue is back. Could this have something to do with number of records in the database? Here is the messages from the event log:
    02:44:05 - java.lang.ClassCastException: java.lang.String cannot be cast to net.datacrow.core.objects.DcObject

    02:43:11 - java.lang.NullPointerException

    02:43:10 - checkpointClose end

    02:43:07 - checkpointClose start

    02:42:59 - Modules have been loaded

    02:42:57 - System is being started

    Basically, I just:

    1. Started Datacrow
    2. Select Movie Module
    3. All Movies appear, grouped by Studio (which I defined)
    4. Quick Filter set to Actors, with the content blank
    5. If I select "Is Filled" and press the green checkmark, everything appears to work fine, the Grouping Items popup is quickly showed and then all movies appear again, grouped by Studio... which is what I would expect
    6. If I select "Is Empty" and press the green checkmark, the Grouping Items popup quickly appears and then I see in the Group by window:
      Movies by Studio (0) - which is what I would expect, unless I made an error and didn't populate a Studio field in a record.
    7. If I change back to "Is Filled" everything reappears fine.
    8. Now if I select any Actor name from the pulldown, the Grouping Items popup quickly appears and then I receive:
      Movies by Studio (0).
      The log file then records the following:
      02:51:25 - java.lang.ClassCastException: java.lang.String cannot be cast to net.datacrow.core.objects.DcObject
      This message appears each time when I select any actor name. It does not appear when I select "Is Filled" or "Is Empty".

    Again, this was working fine when I had fewer records.
    Let me know if there is anything else I could provide which would help...

     
  • Gerald Cox
    Gerald Cox
    2013-03-11

    Ok, just a little more information... I wanted to see if maybe there was something in the record which was causing this issue, like I found with the double-quote problem in the description. It appears that once the actor count gets somewhere between 973 and 1014 the problem occurs. I did several tests where is parsed the csv input files and found that it doesn't appear that it is related to the actual record contents that cause the issue, but rather the number of actors. Hope these two issues can be resolved because I would sure like to migrate my stuff from GCSTAR. Let me know if you need additional information. Thanks!

     
  • Gerald Cox
    Gerald Cox
    2013-03-11

    Here is a quick test csv file I prepared. If you import this, it should recreate the problem for you.

     
  • Gerald Cox
    Gerald Cox
    2013-03-22

    Were you able to reproduce the error with the testcase csv I had attached? I just ran another test, populating the database with about 1200 records which had approximately 300 actors, everything worked fine. I then imported the testcase information and restarted. The actor search predictably broke and the log information is below.

    If I then delete the movie records which were imported with the testcase csv (including the actors which were created) and restart datacrow, everything appears to be back to normal and I can use the actor search function fine.

    There is something which is occuring when those additional records are imported and it appears to me it is associated with the number of actors.

    Let me know if there is anything else I can do to help resolve.

    Thanks!

    03:18:39 - java.lang.ClassCastException: java.lang.String cannot be cast to net.datacrow.core.objects.DcObject

    03:18:21 - java.lang.ClassCastException: java.lang.String cannot be cast to net.datacrow.core.objects.DcObject

    03:18:10 - java.lang.ClassCastException: java.lang.String cannot be cast to net.datacrow.core.objects.DcObject

    03:17:42 - java.lang.NullPointerException

    03:17:41 - checkpointClose end

    03:17:39 - checkpointClose start

    03:17:31 - Modules have been loaded

    03:17:29 - System is being started

    Here is information which appears in the console log:

    Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to net.datacrow.core.objects.DcObject
    at net.datacrow.core.data.DataFilter.addEntries(DataFilter.java:701)
    at net.datacrow.core.data.DataFilter.toSQL(DataFilter.java:578)
    at net.datacrow.core.db.DatabaseManager.getKeys(DatabaseManager.java:272)
    at net.datacrow.core.data.DataManager.getKeys(DataManager.java:687)
    at net.datacrow.console.MainFrame.applyView(MainFrame.java:458)
    at net.datacrow.console.MainFrame.changeModule(MainFrame.java:518)
    at net.datacrow.console.components.lists.DcModuleList.setActiveModule(DcModuleList.java:178)
    at net.datacrow.console.components.lists.DcModuleList.valueChanged(DcModuleList.java:245)
    at javax.swing.JList.fireSelectionValueChanged(Unknown Source)
    at javax.swing.JList$ListSelectionHandler.valueChanged(Unknown Source)
    at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
    at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
    at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
    at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)
    at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)
    at javax.swing.DefaultListSelectionModel.setSelectionInterval(Unknown Source)
    at javax.swing.JList.setSelectionInterval(Unknown Source)
    at javax.swing.plaf.basic.BasicListUI$Handler.adjustSelection(Unknown Source)
    at javax.swing.plaf.basic.BasicListUI$Handler.mousePressed(Unknown Source)
    at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$200(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
    Exception in thread "Thread-142" java.lang.ClassCastException: java.lang.String cannot be cast to net.datacrow.core.objects.DcObject
    at net.datacrow.core.data.DataFilter.addEntries(DataFilter.java:701)
    at net.datacrow.core.data.DataFilter.toSQL(DataFilter.java:578)
    at net.datacrow.core.db.DatabaseManager.getKeys(DatabaseManager.java:272)
    at net.datacrow.core.data.DataManager.getKeys(DataManager.java:687)
    at net.datacrow.console.components.panels.tree.TreePanel.sort(TreePanel.java:152)
    at net.datacrow.console.components.panels.tree.FileTreePanel$TreeHugger.createTree(FileTreePanel.java:273)
    at net.datacrow.console.components.panels.tree.FileTreePanel$TreeHugger.createTree(FileTreePanel.java:191)
    at net.datacrow.console.components.panels.tree.FileTreePanel$TreeHugger.run(FileTreePanel.java:143)
    Exception in thread "Thread-157" java.lang.ClassCastException: java.lang.String cannot be cast to net.datacrow.core.objects.DcObject
    at net.datacrow.core.data.DataFilter.addEntries(DataFilter.java:701)
    at net.datacrow.core.data.DataFilter.toSQL(DataFilter.java:578)
    at net.datacrow.core.db.DatabaseManager.getKeys(DatabaseManager.java:272)
    at net.datacrow.core.data.DataManager.getKeys(DataManager.java:687)
    at net.datacrow.console.components.panels.tree.TreePanel.sort(TreePanel.java:152)
    at net.datacrow.console.components.panels.tree.FileTreePanel$TreeHugger.createTree(FileTreePanel.java:273)
    at net.datacrow.console.components.panels.tree.FileTreePanel$TreeHugger.createTree(FileTreePanel.java:191)
    at net.datacrow.console.components.panels.tree.FileTreePanel$TreeHugger.run(FileTreePanel.java:143)
    Exception in thread "Thread-601" java.lang.ClassCastException: java.lang.String cannot be cast to net.datacrow.core.objects.DcObject
    at net.datacrow.core.data.DataFilter.addEntries(DataFilter.java:701)
    at net.datacrow.core.data.DataFilter.toSQL(DataFilter.java:578)
    at net.datacrow.core.db.DatabaseManager.getKeys(DatabaseManager.java:272)
    at net.datacrow.core.data.DataManager.getKeys(DataManager.java:687)
    at net.datacrow.console.components.panels.tree.TreePanel.sort(TreePanel.java:152)
    at net.datacrow.console.components.panels.tree.FileTreePanel$TreeHugger.createTree(FileTreePanel.java:273)
    at net.datacrow.console.components.panels.tree.FileTreePanel$TreeHugger.createTree(FileTreePanel.java:191)
    at net.datacrow.console.components.panels.tree.FileTreePanel$TreeHugger.run(FileTreePanel.java:143)
    Exception in thread "Thread-622" java.lang.ClassCastException: java.lang.String cannot be cast to net.datacrow.core.objects.DcObject
    at net.datacrow.core.data.DataFilter.addEntries(DataFilter.java:701)
    at net.datacrow.core.data.DataFilter.toSQL(DataFilter.java:578)
    at net.datacrow.core.db.DatabaseManager.getKeys(DatabaseManager.java:272)
    at net.datacrow.core.data.DataManager.getKeys(DataManager.java:687)
    at net.datacrow.console.components.panels.tree.TreePanel.sort(TreePanel.java:152)
    at net.datacrow.console.components.panels.tree.FileTreePanel$TreeHugger.createTree(FileTreePanel.java:273)
    at net.datacrow.console.components.panels.tree.FileTreePanel$TreeHugger.createTree(FileTreePanel.java:191)
    at net.datacrow.console.components.panels.tree.FileTreePanel$TreeHugger.run(FileTreePanel.java:143)
    Exception in thread "Thread-633" java.lang.ClassCastException: java.lang.String cannot be cast to net.datacrow.core.objects.DcObject
    at net.datacrow.core.data.DataFilter.addEntries(DataFilter.java:701)
    at net.datacrow.core.data.DataFilter.toSQL(DataFilter.java:578)
    at net.datacrow.core.db.DatabaseManager.getKeys(DatabaseManager.java:272)
    at net.datacrow.core.data.DataManager.getKeys(DataManager.java:687)
    at net.datacrow.console.components.panels.tree.TreePanel.sort(TreePanel.java:152)
    at net.datacrow.console.components.panels.tree.FileTreePanel$TreeHugger.createTree(FileTreePanel.java:273)
    at net.datacrow.console.components.panels.tree.FileTreePanel$TreeHugger.createTree(FileTreePanel.java:191)
    at net.datacrow.console.components.panels.tree.FileTreePanel$TreeHugger.run(FileTreePanel.java:143)
    Exception in thread "Thread-652" java.lang.ClassCastException: java.lang.String cannot be cast to net.datacrow.core.objects.DcObject
    at net.datacrow.core.data.DataFilter.addEntries(DataFilter.java:701)
    at net.datacrow.core.data.DataFilter.toSQL(DataFilter.java:578)
    at net.datacrow.core.db.DatabaseManager.getKeys(DatabaseManager.java:272)
    at net.datacrow.core.data.DataManager.getKeys(DataManager.java:687)
    at net.datacrow.console.components.panels.tree.TreePanel.sort(TreePanel.java:152)
    at net.datacrow.console.components.panels.tree.FileTreePanel$TreeHugger.createTree(FileTreePanel.java:273)
    at net.datacrow.console.components.panels.tree.FileTreePanel$TreeHugger.createTree(FileTreePanel.java:191)
    at net.datacrow.console.components.panels.tree.FileTreePanel$TreeHugger.run(FileTreePanel.java:143)
    Exception in thread "Thread-716" java.lang.ClassCastException: java.lang.String cannot be cast to net.datacrow.core.objects.DcObject
    at net.datacrow.core.data.DataFilter.addEntries(DataFilter.java:701)
    at net.datacrow.core.data.DataFilter.toSQL(DataFilter.java:578)
    at net.datacrow.core.db.DatabaseManager.getKeys(DatabaseManager.java:272)
    at net.datacrow.core.data.DataManager.getKeys(DataManager.java:687)
    at net.datacrow.console.components.panels.tree.TreePanel.sort(TreePanel.java:152)
    at net.datacrow.console.components.panels.tree.FileTreePanel$TreeHugger.createTree(FileTreePanel.java:273)
    at net.datacrow.console.components.panels.tree.FileTreePanel$TreeHugger.createTree(FileTreePanel.java:191)
    at net.datacrow.console.components.panels.tree.FileTreePanel$TreeHugger.run(FileTreePanel.java:143)

     
  • I have tried with the import file;
    a) It imported OK fully
    b) After the import I could filter for movies on the actor field

    I'll try further.. I did found smaller issues with the importer which will be fixed with the next version.

     
  • Gerald Cox
    Gerald Cox
    2013-03-24

    Hope this isn't a duplicate post... I tried again and got the same thing. I took snapshots this time so hopefully this might help figure out what is happening. Could it be a Java issue? I'm running Oracle Java SE 7u17. As you can see from the snapshots, I create a new datacrow_data directory and import the data. I'm using the movies module. Also, I noticed that the same thing is happening with the director pulldown. BTW, the "Is Filled" "Is Empty" work, it's just that if I select a particular entry it has an issue. Let me know if there are some special traces or something I can run to help get this figured out. Thanks!

     
  • Gerald Cox
    Gerald Cox
    2013-03-25

    OK, I did two more tests to try to narrow this down:

    1. I installed Datacrow 3.9.14 on my Fedora machine - same result.
    2. I installed Datacrow 3.9.21 on a Windows XP machine running Oracle Java SE 7u17... same result. Same error message in log:
      java.lang.ClassCastException: java.lang.String cannot be cast to net.datacrow.core.objects.DcObject

    What type of machine and Java version are you testing on? I'm extremely curious now since I can replicate this issue at will on a Windows machine and a Linux machine. Maybe if I can duplicate your environment I can get it to work.

     
  • Thanks! I finally have found it. I'll release a version this week so you can check as well.

    Cheers, Robert

     
  • Gerald Cox
    Gerald Cox
    2013-03-25

    Excellent. Thank you very much!

     
  • Gerald Cox
    Gerald Cox
    2013-04-22

    Robert, do you know when you might be releasing the new version with those fixes? Thanks!

     
  • Fixed in version 3.9.22. Please confirm, I am crossing my fingers.. :)

     
    • status: open --> closed-fixed