Closed pankaj28843 closed 6 years ago
LineagePlotController.initializeData fails if an empty array is a passed.
LineagePlotController.initializeData
This is the buggy line: https://github.com/biosustain/ancestry/blob/6a8eb71d94483491e158428c8023c04f5b4272ea/lib/base-lineage-plot/base-lineage-plot.js#L218
10:57:19.525 console.js:32 TypeError: Cannot read property 'date' of undefined at LineagePlotController.initializeData (base-lineage-plot.js:218) at LineagePlotController.$onChanges (base-lineage-plot.js:89) at angular.js:9951 at forEach (angular.js:416) at nodeLinkFn (angular.js:9947) at compositeLinkFn (angular.js:9240) at publicLinkFn (angular.js:9105) at lazyCompilation (angular.js:9496) at boundTranscludeFn (angular.js:9283) at controllersBoundTransclude (angular.js:10050) at ngIfWatchAction (angular.js:27982) at Scope.$digest (angular.js:18359) at Scope.$apply (angular.js:18628) at angular.js:20553 at completeOutstandingRequest (angular.js:6419) at angular.js:6699 at wrapped (raven.js:351) undefined console.(anonymous function) @ console.js:32 (anonymous) @ angular.js:14794 (anonymous) @ angular.js:11210 (anonymous) @ angular.js:35 (anonymous) @ angular.js:9953 forEach @ angular.js:416 nodeLinkFn @ angular.js:9947 compositeLinkFn @ angular.js:9240 publicLinkFn @ angular.js:9105 lazyCompilation @ angular.js:9496 boundTranscludeFn @ angular.js:9283 controllersBoundTransclude @ angular.js:10050 ngIfWatchAction @ angular.js:27982 $digest @ angular.js:18359 $apply @ angular.js:18628 (anonymous) @ angular.js:20553 completeOutstandingRequest @ angular.js:6419 (anonymous) @ angular.js:6699 wrapped @ raven.js:351 setTimeout (async) (anonymous) @ raven.js:992 Browser.self.defer @ angular.js:6697 timeout @ angular.js:20543 (anonymous) @ stateDirectives.js:53 defaultHandlerWrapper @ angular.js:3785 eventHandler @ angular.js:3773 wrapped @ raven.js:351 10:57:20.082 base-lineage-plot.js:218 Uncaught TypeError: Cannot read property 'date' of undefined at LineagePlotController.initializeData (base-lineage-plot.js:218) at BaseLineagePlotController.__webpack_require__.i (base-lineage-plot.js:34) at wrapped (raven.js:351) initializeData @ base-lineage-plot.js:218 BaseLineagePlotController.__webpack_require__.i @ base-lineage-plot.js:34 wrapped @ raven.js:351 setTimeout (async) (anonymous) @ raven.js:992 (anonymous) @ shared-features.js:801 callListenerProxy @ element-resize-detector.js:153 utils.forEach @ collection-utils.js:14 onResizeCallback @ element-resize-detector.js:152 (anonymous) @ scroll.js:517 utils.forEach @ collection-utils.js:14 notifyListenersIfNeeded @ scroll.js:516 (anonymous) @ scroll.js:484 process @ batch-processor.js:124 processBatch @ batch-processor.js:37 wrapped @ raven.js:351 setTimeout (async) (anonymous) @ raven.js:992 raf @ batch-processor.js:82 requestFrame @ batch-processor.js:83 processBatchAsync @ batch-processor.js:64 addFunction @ batch-processor.js:24 updateDetectorElements @ scroll.js:435 handleScroll @ scroll.js:552 onExpandScroll @ scroll.js:397 wrapped @ raven.js:351 scroll (async) positionScrollbars @ scroll.js:268 finalizeDomMutation @ scroll.js:583 process @ batch-processor.js:124 processBatch @ batch-processor.js:37 wrapped @ raven.js:351 setTimeout (async) (anonymous) @ raven.js:992 raf @ batch-processor.js:82 requestFrame @ batch-processor.js:83 processBatchAsync @ batch-processor.js:64 addFunction @ batch-processor.js:24 install @ scroll.js:595 makeDetectable @ scroll.js:616 attachListenerToElement @ element-resize-detector.js:229 utils.forEach @ collection-utils.js:14 listenTo @ element-resize-detector.js:197 attachActionOnResize @ shared-features.js:794 BaseLineagePlotController @ base-lineage-plot.js:31 LineagePlotController @ lineage-plot.js:42 invoke @ angular.js:5100 $controllerInit @ angular.js:11068 nodeLinkFn @ angular.js:9931 compositeLinkFn @ angular.js:9240 publicLinkFn @ angular.js:9105 lazyCompilation @ angular.js:9496 boundTranscludeFn @ angular.js:9283 controllersBoundTransclude @ angular.js:10050 ngIfWatchAction @ angular.js:27982 $digest @ angular.js:18359 $apply @ angular.js:18628 (anonymous) @ angular.js:20553 completeOutstandingRequest @ angular.js:6419 (anonymous) @ angular.js:6699 wrapped @ raven.js:351 setTimeout (async) (anonymous) @ raven.js:992 Browser.self.defer @ angular.js:6697 timeout @ angular.js:20543 (anonymous) @ stateDirectives.js:53 defaultHandlerWrapper @ angular.js:3785 eventHandler @ angular.js:3773 wrapped @ raven.js:351
Thanks for reporting, this should be fixed now: https://github.com/biosustain/ancestry/commit/625d659452f9b0b243be7df723ff210fe06a36a8
LineagePlotController.initializeData
fails if an empty array is a passed.This is the buggy line: https://github.com/biosustain/ancestry/blob/6a8eb71d94483491e158428c8023c04f5b4272ea/lib/base-lineage-plot/base-lineage-plot.js#L218
How to reproduce?
Javascript console log