![]() |
|
SageTV Software Discussion related to the SageTV application produced by SageTV. Questions, issues, problems, suggestions, etc. relating to the SageTV software application should be posted here. (Check the descriptions of the other forums; all hardware related questions go in the Hardware Support forum, etc. And, post in the customizations forum instead if any customizations are active.) |
![]() |
|
Thread Tools | Search this Thread | Display Modes |
#1
|
|||
|
|||
Search for actor yields no results and Java Exception
I am running SageTV v9 in a docker on unRaid using Schedules Direct. The wiz.bin was copied from a v7 windows install after v9 was installed.
I am encountering an error when I try to search for a Person. Below is from the log when I search for Tom Hanks from the airing for Big. Code:
Sun 3/12 17:49:58.847 [EventRouter-001d6a4bfb2a@2852cff8] processOptionsMenu optionsMenu=default:OPUS4A-122528|OptionsMenu:People In Show Options Sun 3/12 17:49:58.850 [EventRouter-001d6a4bfb2a@2852cff8] ERROR Could not resolve aliased person back to original person id=62982 name=Tom Hanks Sun 3/12 17:49:58.850 [EventRouter-001d6a4bfb2a@2852cff8] ERROR Could not resolve aliased person back to original person id=62982 name=Tom Hanks Sun 3/12 17:49:58.850 [EventRouter-001d6a4bfb2a@2852cff8] ERROR Could not resolve aliased person back to original person id=1335 name=Elizabeth Perkins Sun 3/12 17:49:58.851 [EventRouter-001d6a4bfb2a@2852cff8] ERROR Could not resolve aliased person back to original person id=1335 name=Elizabeth Perkins Sun 3/12 17:49:58.851 [EventRouter-001d6a4bfb2a@2852cff8] ERROR Could not resolve aliased person back to original person id=55343 name=Robert Loggia Sun 3/12 17:49:58.851 [EventRouter-001d6a4bfb2a@2852cff8] ERROR Could not resolve aliased person back to original person id=55343 name=Robert Loggia Sun 3/12 17:49:58.852 [EventRouter-001d6a4bfb2a@2852cff8] ERROR Could not resolve aliased person back to original person id=749 name=John Heard Sun 3/12 17:49:58.852 [EventRouter-001d6a4bfb2a@2852cff8] ERROR Could not resolve aliased person back to original person id=749 name=John Heard Sun 3/12 17:49:58.852 [EventRouter-001d6a4bfb2a@2852cff8] ERROR Could not resolve aliased person back to original person id=29840 name=Jared Rushton Sun 3/12 17:49:58.852 [EventRouter-001d6a4bfb2a@2852cff8] ERROR Could not resolve aliased person back to original person id=29840 name=Jared Rushton Sun 3/12 17:49:58.853 [EventRouter-001d6a4bfb2a@2852cff8] ERROR Could not resolve aliased person back to original person id=62982 name=Tom Hanks Sun 3/12 17:49:58.853 [EventRouter-001d6a4bfb2a@2852cff8] ERROR Could not resolve aliased person back to original person id=62982 name=Tom Hanks Sun 3/12 17:49:58.853 [EventRouter-001d6a4bfb2a@2852cff8] ERROR Could not resolve aliased person back to original person id=1335 name=Elizabeth Perkins Sun 3/12 17:49:58.853 [EventRouter-001d6a4bfb2a@2852cff8] ERROR Could not resolve aliased person back to original person id=1335 name=Elizabeth Perkins Sun 3/12 17:49:58.853 [EventRouter-001d6a4bfb2a@2852cff8] ERROR Could not resolve aliased person back to original person id=55343 name=Robert Loggia Sun 3/12 17:49:58.854 [EventRouter-001d6a4bfb2a@2852cff8] ERROR Could not resolve aliased person back to original person id=55343 name=Robert Loggia Sun 3/12 17:49:58.854 [EventRouter-001d6a4bfb2a@2852cff8] ERROR Could not resolve aliased person back to original person id=749 name=John Heard Sun 3/12 17:49:58.854 [EventRouter-001d6a4bfb2a@2852cff8] ERROR Could not resolve aliased person back to original person id=749 name=John Heard Sun 3/12 17:49:58.854 [EventRouter-001d6a4bfb2a@2852cff8] ERROR Could not resolve aliased person back to original person id=29840 name=Jared Rushton Sun 3/12 17:49:58.854 [EventRouter-001d6a4bfb2a@2852cff8] ERROR Could not resolve aliased person back to original person id=29840 name=Jared Rushton Sun 3/12 17:49:58.927 [FinalRender-001d6a4bfb2a@4b8b6b9e] MiniClient did not succeed with menu hint change to:menuName:LiveTVGuide w/ Optional Preview, popupName:People In Show Options, hasTextInput:false, errcode=1 Sun 3/12 17:50:01.820 [EventRouter-001d6a4bfb2a@2852cff8] processUserEvent-UserEvent[down] evtTime=Sun 3/12 17:50:01.820 Sun 3/12 17:50:01.821 [EventRouter-001d6a4bfb2a@2852cff8] ERROR Could not resolve aliased person back to original person id=62982 name=Tom Hanks Sun 3/12 17:50:01.821 [EventRouter-001d6a4bfb2a@2852cff8] ERROR Could not resolve aliased person back to original person id=62982 name=Tom Hanks Sun 3/12 17:50:02.528 [EventRouter-001d6a4bfb2a@2852cff8] processUserEvent-UserEvent[select] evtTime=Sun 3/12 17:50:02.528 Sun 3/12 17:50:02.528 [EventRouter-001d6a4bfb2a@2852cff8] ERROR Could not resolve aliased person back to original person id=62982 name=Tom Hanks Sun 3/12 17:50:02.528 [EventRouter-001d6a4bfb2a@2852cff8] java.lang.NullPointerException Sun 3/12 17:50:02.529 [EventRouter-001d6a4bfb2a@2852cff8] at sage.Wizard.getAliasesForPerson(Wizard.java:7039) Sun 3/12 17:50:02.529 [EventRouter-001d6a4bfb2a@2852cff8] at sage.Wizard.searchByExactPerson(Wizard.java:7022) Sun 3/12 17:50:02.529 [EventRouter-001d6a4bfb2a@2852cff8] at sage.api.Database$13.runSafely(Database.java:2145) Sun 3/12 17:50:02.529 [EventRouter-001d6a4bfb2a@2852cff8] at sage.PredefinedJEPFunction.run(PredefinedJEPFunction.java:110) Sun 3/12 17:50:02.529 [EventRouter-001d6a4bfb2a@2852cff8] at sage.jep.JEP$CommandEvaluator.evaluate(JEP.java:586) Sun 3/12 17:50:02.529 [EventRouter-001d6a4bfb2a@2852cff8] at sage.jep.JEP.getValueAsObject(JEP.java:428) Sun 3/12 17:50:02.529 [EventRouter-001d6a4bfb2a@2852cff8] at sage.Catbert.evaluateExpression(Catbert.java:641) Sun 3/12 17:50:02.529 [EventRouter-001d6a4bfb2a@2852cff8] at sage.ZPseudoComp.processChain(ZPseudoComp.java:4641) Sun 3/12 17:50:02.529 [EventRouter-001d6a4bfb2a@2852cff8] at sage.ZPseudoComp.processChain(ZPseudoComp.java:4579) Sun 3/12 17:50:02.529 [EventRouter-001d6a4bfb2a@2852cff8] at sage.ZPseudoComp.actionPerformed(ZPseudoComp.java:4562) Sun 3/12 17:50:02.530 [EventRouter-001d6a4bfb2a@2852cff8] at sage.ZPseudoComp.action(ZPseudoComp.java:3800) Sun 3/12 17:50:02.530 [EventRouter-001d6a4bfb2a@2852cff8] at sage.PseudoMenu.action(PseudoMenu.java:225) Sun 3/12 17:50:02.530 [EventRouter-001d6a4bfb2a@2852cff8] at sage.EventRouter.processUserEvent(EventRouter.java:882) Sun 3/12 17:50:02.530 [EventRouter-001d6a4bfb2a@2852cff8] at sage.EventRouter.run(EventRouter.java:942) Sun 3/12 17:50:02.530 [EventRouter-001d6a4bfb2a@2852cff8] at java.lang.Thread.run(Thread.java:745) Sun 3/12 17:50:02.530 [EventRouter-001d6a4bfb2a@2852cff8] EXCEPTION in getValueAsObject:sage.jep.ParseException: Error in method reflection of SearchByPerson of java.lang.NullPointerException for:SearchByPerson(Person,"TVD") Sun 3/12 17:50:02.530 [EventRouter-001d6a4bfb2a@2852cff8] sage.jep.ParseException: Error in method reflection of SearchByPerson of java.lang.NullPointerException Sun 3/12 17:50:02.530 [EventRouter-001d6a4bfb2a@2852cff8] at sage.PredefinedJEPFunction.run(PredefinedJEPFunction.java:119) Sun 3/12 17:50:02.530 [EventRouter-001d6a4bfb2a@2852cff8] at sage.jep.JEP$CommandEvaluator.evaluate(JEP.java:586) Sun 3/12 17:50:02.531 [EventRouter-001d6a4bfb2a@2852cff8] at sage.jep.JEP.getValueAsObject(JEP.java:428) Sun 3/12 17:50:02.531 [EventRouter-001d6a4bfb2a@2852cff8] at sage.Catbert.evaluateExpression(Catbert.java:641) Sun 3/12 17:50:02.531 [EventRouter-001d6a4bfb2a@2852cff8] at sage.ZPseudoComp.processChain(ZPseudoComp.java:4641) Sun 3/12 17:50:02.531 [EventRouter-001d6a4bfb2a@2852cff8] at sage.ZPseudoComp.processChain(ZPseudoComp.java:4579) Sun 3/12 17:50:02.531 [EventRouter-001d6a4bfb2a@2852cff8] at sage.ZPseudoComp.actionPerformed(ZPseudoComp.java:4562) Sun 3/12 17:50:02.531 [EventRouter-001d6a4bfb2a@2852cff8] at sage.ZPseudoComp.action(ZPseudoComp.java:3800) Sun 3/12 17:50:02.531 [EventRouter-001d6a4bfb2a@2852cff8] at sage.PseudoMenu.action(PseudoMenu.java:225) Sun 3/12 17:50:02.531 [EventRouter-001d6a4bfb2a@2852cff8] at sage.EventRouter.processUserEvent(EventRouter.java:882) Sun 3/12 17:50:02.531 [EventRouter-001d6a4bfb2a@2852cff8] at sage.EventRouter.run(EventRouter.java:942) Sun 3/12 17:50:02.531 [EventRouter-001d6a4bfb2a@2852cff8] at java.lang.Thread.run(Thread.java:745) Sun 3/12 17:50:02.532 [EventRouter-001d6a4bfb2a@2852cff8] Caused by: java.lang.NullPointerException Sun 3/12 17:50:02.532 [EventRouter-001d6a4bfb2a@2852cff8] at sage.Wizard.getAliasesForPerson(Wizard.java:7039) Sun 3/12 17:50:02.532 [EventRouter-001d6a4bfb2a@2852cff8] at sage.Wizard.searchByExactPerson(Wizard.java:7022) Sun 3/12 17:50:02.532 [EventRouter-001d6a4bfb2a@2852cff8] at sage.api.Database$13.runSafely(Database.java:2145) Sun 3/12 17:50:02.532 [EventRouter-001d6a4bfb2a@2852cff8] at sage.PredefinedJEPFunction.run(PredefinedJEPFunction.java:110) Sun 3/12 17:50:02.532 [EventRouter-001d6a4bfb2a@2852cff8] ... 11 more Sun 3/12 17:50:02.532 [EventRouter-001d6a4bfb2a@2852cff8] processOptionsMenu optionsMenu=default:BASE-63501|OptionsMenu:Your search returned no results. Sun 3/12 17:50:02.542 [FinalRender-001d6a4bfb2a@4b8b6b9e] MiniClient did not succeed with menu hint change to:menuName:LiveTVGuide w/ Optional Preview, popupName:Your search returned no results., hasTextInput:false, errcode=1 ^C
__________________
unRaid Server:Quad-Core Xenon, 20 GB Ram, openDCT/sageTV Dockers, HDHR,HDHR Prime Network Encoder:Dell Inspiron 1000 Laptop, 512MB Ram, Windows XP, HDPVR |
#2
|
||||
|
||||
It looks like we're not checking for a null condition because Fiber always had the real names for all of the Persons. Unfortunately Schedules Direct does not provide nearly as much data as Google did and doesn't provide any way to get that information outside of the shows airing right now. I didn't want to provide an alias as an original name (because it's not correct), but it doesn't look like we have a choice if we are trying to do lookups like this. The way I'd attack it is to put the alias in as the original name and always overwrite the original name any time we encounter an instance of the original name. It's just very inefficient logic and I'm thinking I'd rather just handle the null pointer exception and remove all of that alias error logging instead because then we won't have incorrect aliases.
__________________
SageTV v9 Server: ASRock Z97 Extreme4, Intel i7-4790K @ 4.4Ghz, 32GB RAM, 6x 3TB 7200rpm HD, 2x 5TB 7200rpm HD, 2x 6TB 7200rpm HD, 4x 256GB SSD, 4x 500GB SSD, unRAID Pro 6.7.2 (Dual Parity + SSD Cache). Capture: 1x Ceton InfiniTV 4 (ClearQAM), 2x Ceton InfiniTV 6, 1x BM1000-HDMI, 1x BM3500-HDMI. Clients: 1x HD300 (Living Room), 1x HD200 (Master Bedroom). Software: OpenDCT :: WMC Live TV Tuner :: Schedules Direct EPG |
#3
|
|||
|
|||
I just started looking at the code, so forgive me if I'm off base....
I think there may be an issue in my DB. I dumped the DB by setting dump_db_on_startup to true. In my Wiz.dump, I have a number of Person objects with extID with negative numbers. I think this means it is an alias and there should be another Person object with a non-negative extID, but there is not. Am I correct?
__________________
unRaid Server:Quad-Core Xenon, 20 GB Ram, openDCT/sageTV Dockers, HDHR,HDHR Prime Network Encoder:Dell Inspiron 1000 Laptop, 512MB Ram, Windows XP, HDPVR |
#4
|
||||
|
||||
Quote:
__________________
SageTV v9 Server: ASRock Z97 Extreme4, Intel i7-4790K @ 4.4Ghz, 32GB RAM, 6x 3TB 7200rpm HD, 2x 5TB 7200rpm HD, 2x 6TB 7200rpm HD, 4x 256GB SSD, 4x 500GB SSD, unRAID Pro 6.7.2 (Dual Parity + SSD Cache). Capture: 1x Ceton InfiniTV 4 (ClearQAM), 2x Ceton InfiniTV 6, 1x BM1000-HDMI, 1x BM3500-HDMI. Clients: 1x HD300 (Living Room), 1x HD200 (Master Bedroom). Software: OpenDCT :: WMC Live TV Tuner :: Schedules Direct EPG |
#5
|
|||
|
|||
Still following up on this. Had some time to look into the code and the JSON returned from Schedules direct, trying to come up to speed.
Using Bruce Willis as an example, since he is in my wiz.bin with a negative extID of -9653. I found an episode of Late Night with Jimmy Fallon with Bruce Wilis and this is his cast entry: Code:
{ "billingOrder": "02", "role": "Guest", "nameId": "9653", "personId": "9653", "name": "Bruce Willis" } Code:
public boolean isAlias() { return personId != null && personId.length() > 0 && personId.equals(nameId); } Why is personId == nameId an alias? so in SDUtils.java:512 getPerson() Code:
if (person.isAlias()) personId *= -1;
__________________
unRaid Server:Quad-Core Xenon, 20 GB Ram, openDCT/sageTV Dockers, HDHR,HDHR Prime Network Encoder:Dell Inspiron 1000 Laptop, 512MB Ram, Windows XP, HDPVR |
#6
|
||||
|
||||
If you haven't already, upgrade to v9.0.14. The null pointer issue should be resolved.
__________________
SageTV v9 Server: ASRock Z97 Extreme4, Intel i7-4790K @ 4.4Ghz, 32GB RAM, 6x 3TB 7200rpm HD, 2x 5TB 7200rpm HD, 2x 6TB 7200rpm HD, 4x 256GB SSD, 4x 500GB SSD, unRAID Pro 6.7.2 (Dual Parity + SSD Cache). Capture: 1x Ceton InfiniTV 4 (ClearQAM), 2x Ceton InfiniTV 6, 1x BM1000-HDMI, 1x BM3500-HDMI. Clients: 1x HD300 (Living Room), 1x HD200 (Master Bedroom). Software: OpenDCT :: WMC Live TV Tuner :: Schedules Direct EPG |
#7
|
||||
|
||||
Quote:
__________________
SageTV v9 Server: ASRock Z97 Extreme4, Intel i7-4790K @ 4.4Ghz, 32GB RAM, 6x 3TB 7200rpm HD, 2x 5TB 7200rpm HD, 2x 6TB 7200rpm HD, 4x 256GB SSD, 4x 500GB SSD, unRAID Pro 6.7.2 (Dual Parity + SSD Cache). Capture: 1x Ceton InfiniTV 4 (ClearQAM), 2x Ceton InfiniTV 6, 1x BM1000-HDMI, 1x BM3500-HDMI. Clients: 1x HD300 (Living Room), 1x HD200 (Master Bedroom). Software: OpenDCT :: WMC Live TV Tuner :: Schedules Direct EPG Last edited by EnterNoEscape; 04-02-2017 at 09:56 AM. |
#8
|
|||
|
|||
The NPE was fixed after 9.0.14 ( a few days). I built the latest on my dev machine, and I now get results for person searches.
Will there be any other ill effects for the thousands of people in the DB that are now aliases? Still wondering about alias though. From an episode of Shades of Blue, Drea de Matteo's person entry: Code:
{ "billingOrder": "03", "role": "Actor", "nameId": "202520", "personId": "200635", "name": "Drea de Matteo", "characterName": "Tess Nazario" } Sorry if I'm becoming a pain, just trying to understand the code. ![]()
__________________
unRaid Server:Quad-Core Xenon, 20 GB Ram, openDCT/sageTV Dockers, HDHR,HDHR Prime Network Encoder:Dell Inspiron 1000 Laptop, 512MB Ram, Windows XP, HDPVR |
#9
|
||||
|
||||
Schedules Direct doesn't really explain what's going on here very well. It does explain the that personID is used to get images. It doesn't explain that if the personID does not match the nameID, it's a former name/alias. The nameID correlates with a name. The personID correlates with the actual person which will not change regardless of what they call themselves today.
There really aren't any significant problems with having an alias, but no actual person. The alias from what I can tell is mostly just used to improve searches. The request/implementation in SageTV starts being discussed in detail here. Edit: You're right about the post 9.0.14 fix. I was looking at the wrong commit when I said that.
__________________
SageTV v9 Server: ASRock Z97 Extreme4, Intel i7-4790K @ 4.4Ghz, 32GB RAM, 6x 3TB 7200rpm HD, 2x 5TB 7200rpm HD, 2x 6TB 7200rpm HD, 4x 256GB SSD, 4x 500GB SSD, unRAID Pro 6.7.2 (Dual Parity + SSD Cache). Capture: 1x Ceton InfiniTV 4 (ClearQAM), 2x Ceton InfiniTV 6, 1x BM1000-HDMI, 1x BM3500-HDMI. Clients: 1x HD300 (Living Room), 1x HD200 (Master Bedroom). Software: OpenDCT :: WMC Live TV Tuner :: Schedules Direct EPG Last edited by EnterNoEscape; 04-02-2017 at 05:43 PM. |
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
YouTube - how to see more search results | bastafidli | SageTV Software | 1 | 07-21-2009 06:37 AM |
IMDB Search Actor picture still missing! | mkanet | SageMC Custom Interface | 4 | 04-09-2008 07:14 AM |
strange Favorite search results | dvd_maniac | SageTV Software | 2 | 09-19-2006 07:51 PM |
Search brings up expired results | malore | SageTV Software | 0 | 09-05-2003 10:52 AM |
Beta V1.2.2 Java java.lang Null Pointer Exception | hamptonhills | SageTV Beta Test Software | 1 | 03-27-2003 12:11 PM |