You need to sign in to do that
Don't have an account?
Molson94
Help Needed: System.NullPointerException: Attempt to de-reference a null object
Hello,
Banging my head against the wall trying to figure out why "System.NullPointerException: Attempt to de-reference a null object" error is occuring on an After Update trigger. For the 200 records that are not being updated because of this trigger's error, i am stumped because those records do not meet the criteria in the initial for loop (line 7) to even be included in the list of recrods i am targeting. Does anyone know why this error is being thrown on line 68 (bolded).
Thanks in advance.
Banging my head against the wall trying to figure out why "System.NullPointerException: Attempt to de-reference a null object" error is occuring on an After Update trigger. For the 200 records that are not being updated because of this trigger's error, i am stumped because those records do not meet the criteria in the initial for loop (line 7) to even be included in the list of recrods i am targeting. Does anyone know why this error is being thrown on line 68 (bolded).
Thanks in advance.
trigger PrintJobCreate on Title__c (after update) { List<Title__c> ProductionTitles = new List<Title__c>(); List<masterID__c> masterIDs = new List<masterID__c>(); List<Print_Job__c> NewJobs = new List<Print_Job__c>(); List<Vendor__c> printer = new List<Vendor__c>([SELECT id FROM Vendor__c WHERE Name = 'Printer' LIMIT 1]); for (Title__c t : Trigger.new) { //all titles that were updated if (t.status__c != Trigger.oldMap.get(t.Id).status__c) { //only look at titles that had a status change if (t.Status__c == 'Production' || t.Status__c == 'Art In Progress') { //isolate titles that have moved into production or art creation ProductionTitles.add(t); } } } if (!ProductionTitles.isEmpty()) { //Get current list of masterIDs to avoid duplicates //compare masterIDs in OpenJobs with masterIDs in ProductionTitles system.debug(ProductionTitles); Set<String> OJ = new Set<String>(); Set<Print_job__c> OpenJobs = new Set<Print_Job__C>([SELECT masterID_Format__c FROM Print_Job__c WHERE Print_Job_Status__c != 'Complete']); Set<String> OA = new Set<String>(); // Set<masterID__c> OpenmasterIDs = new Set<masterID__c>([SELECT id, Name FROM masterID__c WHERE Name NOT IN ('Digital', 'Digital Audio', 'Physical Audio') AND x3p__c = false AND Title__r.id IN:ProductionTitles]); //Grab all masterID Ids of all open jobs for(Print_Job__c OJS : OpenJobs){ OJ.add(String.valueOf(OJS.masterID_Format__c)); //system.debug('Open Print Job '+ OJ); } //Grab all masterID Ids of triggered masterIDs that meet print criteria for(masterID__c OAS : OpenmasterIDs){ OA.add(String.valueOf(OAS.Id)); system.debug('masterID Matching Criteria: '+ OA); } //Remove current open jobs from list of masterIDs that meet criteria for(String job : OJ){ if (OA.contains(job)){ OA.remove(job); system.debug('Remaining DeDuped masterIDS ' +OA); } } //Requery the list for the masterIDs = [SELECT id, Name, masterID__c, x3p__c, Color_BW_Interior__c, pub_Publish_Date__c, title__r.id, title__r.internal_imprint__c FROM masterID__c WHERE id IN :OA ]; system.debug(masterIDs); } if (!masterIDs.isEmpty()) { for (masterID__c a : masterIDs) { Print_Job__c pj = new Print_Job__c(); pj.Title__c = a.Title__c; pj.masterID_Format__c = a.Id; pj.Job_Type__c = 'Initial Print Run'; pj.Print_Job_Status__c = 'Pending'; pj.Printer__c = printer.get(0).id; if(a.Color_BW_Interior__c == '1/1' && a.Name == 'Paperback'){ //standard pub paperback //standard location pj.Print_Location__c = 'Printer US'; //standard schedule pj.Units_Spec_Due_Date__c = a.pub_Publish_Date__c - 56; pj.Files_Due_At_Printer__c = a. _Publish_Date__c - 56; pj.Estimated_Ship__c = a.pub_Publish_Date__c - 35; pj.BPI_Forecast_Due__c = pj.Units_Spec_Due_Date__c - 7; pj.Standard_CPU__c = true; NewJobs.add(pj); }else if(a.Color_BW_Interior__c == '1/1' && a.Name == 'Hardcover'){ //1C Hardcover //standard location pj.Print_Location__c = 'Printer US'; //standard hc schedule pj.Units_Spec_Due_Date__c = a.pub_Publish_Date__c - 84; pj.Files_Due_At_Printer__c = a.pub_Publish_Date__c - 63; pj.Estimated_Ship__c = a.pub_Publish_Date__c - 35; pj.BPI_Forecast_Due__c = pj.Units_Spec_Due_Date__c - 7; pj.Standard_CPU__c = false; pj.RFQ_Required__c = true; NewJobs.add(pj); }else if(a.Color_BW_Interior__c != '1/1' && a.Color_BW_Interior__c != '' && a.Name == 'Hardcover' && a.Title__r.Internal_imprint__c == 'Two Lions'){ //TL Hardcover //standard location pj.Print_Location__c = 'Printer China'; //standard TL schedule pj.Units_Spec_Due_Date__c = a.pub_Publish_Date__c - 140; pj.Files_Due_At_Printer__c = a.pub_Publish_Date__c - 126; pj.Estimated_Ship__c = a.pub_Publish_Date__c - 84; pj.BPI_Forecast_Due__c = pj.Units_Spec_Due_Date__c - 7; pj.Standard_CPU__c = false; pj.RFQ_Required__c = true; NewJobs.add(pj); }else if(a.Color_BW_Interior__c != '1/1' && a.Color_BW_Interior__c != '' && a.Name == 'Paperback' && a.Title__r.Internal_imprint__c == 'Two Lions'){ //TL Paperback //standard location pj.Print_Location__c = 'Printer China'; //standard TL schedule pj.Units_Spec_Due_Date__c = a.pub_Publish_Date__c - 140; pj.Files_Due_At_Printer__c = a.pub_Publish_Date__c - 126; pj.Estimated_Ship__c = a.pub_Publish_Date__c - 84; pj.BPI_Forecast_Due__c = pj.Units_Spec_Due_Date__c - 7; pj.Standard_CPU__c = false; pj.RFQ_Required__c = true; NewJobs.add(pj); }else if(a.Color_BW_Interior__c != '1/1' && a.Color_BW_Interior__c != '' && a.Title__r.Internal_imprint__c == 'Jet City Comics'){ //standard location pj.Print_Location__c = 'Printer US'; pj.Standard_CPU__c = false; pj.RFQ_Required__c = true; pj.Print_Job_Status__c = 'Attention Required'; pj.Schedule_Exception__c = true; pj.notes__c = 'Jet City 4-Color Project. Confirm with JCC tracker for initial schedule.'; Newjobs.add(pj); }else{ pj.Print_Job_Status__c = 'Attention Required'; pj.Schedule_Exception__c = true; pj.notes__c = 'Error regarding masterID Spec. Consult with PXM / AE to confirm spec and schedule.'; Newjobs.add(pj); } } } if (!NewJobs.isEmpty()){ insert(NewJobs); } }
Best Answer chosen by Molson94
Molson94
Nevermind, figured it out and added in a Null Check above that section.