One issue: this function does not work with logical data.
Modifying line 196 from:
if ~isempty(g.CData) && (isnumeric(g.CData)|| islogical(g.CData)) && size(g.CData,3)==1,
if ~isempty(g.CData) && isnumeric(g.CData) && size(g.CData,3)==1,
Here is the test code to demonstrate the aliasing problem:
% findjobj test script
tgrp = uitabgroup('Parent',hWnd);
tab1 = uitab('Parent',tgrp,'Title','tab1');
tab2 = uitab('Parent',tgrp,'Title','tab2');
Matlab does not actually render the Java component until it is displayed at least once. So until that time, findjobj will return empty.
In R2014b the entire underlying graphics rendering engine has changed (so-called HG2) so it is not surprising that things that worked well in 14a need to be adapted to work in 14b. In fact, I find it a small miracle that findjobj still works well [most of the time] in 14b... In your case, you can simply activate the tabs programmatically, and call drawnow(), and this should solve your issue.
I had a similar error to Sneha, coming when a findjobj call that worked in 2014a returned an empty results in 2014b.
It my case, I was creating a uitable on a TabPanel from the GUILayoutToolbox. findjobj was not able to find the uitable after creation. It was able to find it after I changed the active tab to be that containing the uitable.
Not sure if that helps - or exactly why findjobj cannot find the object before the tab is activated.