mirror of
https://github.com/DSheirer/sdrtrunk.git
synced 2026-11-12 16:47:31 -05:00
#1221 resolves null pointer exception in tuner editor when attempting to restart an error tuner. (#1222)
Co-authored-by: Dennis Sheirer <dsheirer@github.com>
This commit is contained in:
@@ -246,8 +246,10 @@ public class DiscoveredTunerModel extends AbstractTableModel implements Listener
|
||||
* @param bus usb
|
||||
* @param port usb
|
||||
*/
|
||||
public void removeUsbTuner(int bus, int port)
|
||||
public DiscoveredTuner removeUsbTuner(int bus, int port)
|
||||
{
|
||||
DiscoveredTuner removed = null;
|
||||
|
||||
mLock.lock();
|
||||
|
||||
try
|
||||
@@ -259,12 +261,15 @@ public class DiscoveredTunerModel extends AbstractTableModel implements Listener
|
||||
if(discoveredTuner != null)
|
||||
{
|
||||
removeDiscoveredTuner(discoveredTuner);
|
||||
removed = discoveredTuner;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
mLock.unlock();
|
||||
}
|
||||
|
||||
return removed;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -33,7 +33,6 @@ import io.github.dsheirer.source.tuner.manager.IDiscoveredTunerStatusListener;
|
||||
import io.github.dsheirer.source.tuner.manager.TunerManager;
|
||||
import io.github.dsheirer.source.tuner.manager.TunerStatus;
|
||||
import io.github.dsheirer.util.SwingUtils;
|
||||
import io.github.dsheirer.util.ThreadPool;
|
||||
import net.miginfocom.swing.MigLayout;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -372,11 +371,7 @@ public abstract class TunerEditor<T extends Tuner,C extends TunerConfiguration>
|
||||
if(!hasTuner() && getDiscoveredTuner().getTunerStatus() == TunerStatus.ERROR)
|
||||
{
|
||||
mLog.info("Restarting " + getDiscoveredTuner().getTunerClass() + " tuner");
|
||||
getDiscoveredTuner().reset();
|
||||
if(getDiscoveredTuner().isEnabled())
|
||||
{
|
||||
ThreadPool.CACHED.submit(() -> getDiscoveredTuner().start());
|
||||
}
|
||||
getDiscoveredTuner().restart();
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -469,15 +464,18 @@ public abstract class TunerEditor<T extends Tuner,C extends TunerConfiguration>
|
||||
@Override
|
||||
public void tunerStatusUpdated(DiscoveredTuner discoveredTuner, TunerStatus previous, TunerStatus current)
|
||||
{
|
||||
SwingUtils.run(() -> tunerStatusUpdated());
|
||||
|
||||
if(current == TunerStatus.ENABLED)
|
||||
SwingUtils.run(() ->
|
||||
{
|
||||
if(hasTuner())
|
||||
tunerStatusUpdated();
|
||||
|
||||
if(current == TunerStatus.ENABLED)
|
||||
{
|
||||
getTuner().addTunerEventListener(this);
|
||||
if(hasTuner())
|
||||
{
|
||||
getTuner().addTunerEventListener(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -507,12 +505,7 @@ public abstract class TunerEditor<T extends Tuner,C extends TunerConfiguration>
|
||||
{
|
||||
mDiscoveredTuner.getTuner().removeTunerEventListener(this);
|
||||
}
|
||||
|
||||
mDiscoveredTuner = null;
|
||||
}
|
||||
|
||||
mUserPreferences = null;
|
||||
mTunerManager = null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user