BUGFIX: Extensions.getQuickEntryService() - fixed cache management issue (#742)
Co-authored-by: Andreas <sumerauer@kanzlei-wmv.de>
This commit is contained in:
parent
5f2f6364da
commit
0bb5aa70f6
|
|
@ -265,14 +265,16 @@ public class Extensions {
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param AD_Window_ID
|
* @param AD_Window_ID
|
||||||
* @return IQuickEntryFactory instance or null if AD_Window_ID not found
|
* @return IQuickEntryFactory instance or null if AdWindowID not found
|
||||||
*/
|
*/
|
||||||
private static IQuickEntryFactory getQuickEntryService(Integer AdWindowID) {
|
public static AbstractWQuickEntry getQuickEntry(Integer AdWindowID) {
|
||||||
IServiceReferenceHolder<IQuickEntryFactory> cache = s_quickEntryFactoryCache.get(AdWindowID);
|
IServiceReferenceHolder<IQuickEntryFactory> cache = s_quickEntryFactoryCache.get(AdWindowID);
|
||||||
if (cache != null) {
|
if (cache != null) {
|
||||||
IQuickEntryFactory service = cache.getService();
|
IQuickEntryFactory service = cache.getService();
|
||||||
if (service != null) {
|
if (service != null) {
|
||||||
return service;
|
AbstractWQuickEntry quickEntry = service.newQuickEntryInstance(AdWindowID);
|
||||||
|
if (quickEntry != null)
|
||||||
|
return quickEntry;
|
||||||
}
|
}
|
||||||
s_quickEntryFactoryCache.remove(AdWindowID);
|
s_quickEntryFactoryCache.remove(AdWindowID);
|
||||||
}
|
}
|
||||||
|
|
@ -281,26 +283,14 @@ public class Extensions {
|
||||||
for(IServiceReferenceHolder<IQuickEntryFactory> factory : factories) {
|
for(IServiceReferenceHolder<IQuickEntryFactory> factory : factories) {
|
||||||
IQuickEntryFactory service = factory.getService();
|
IQuickEntryFactory service = factory.getService();
|
||||||
if (service != null) {
|
if (service != null) {
|
||||||
|
AbstractWQuickEntry quickEntry = service.newQuickEntryInstance(AdWindowID);
|
||||||
|
if (quickEntry != null) {
|
||||||
s_quickEntryFactoryCache.put(AdWindowID, factory);
|
s_quickEntryFactoryCache.put(AdWindowID, factory);
|
||||||
return service;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param AD_Window_ID
|
|
||||||
* @return IQuickEntry instance or null if AD_Window_ID not found
|
|
||||||
*/
|
|
||||||
public static AbstractWQuickEntry getQuickEntry(int AD_Window_ID) {
|
|
||||||
IQuickEntryFactory service = getQuickEntryService(AD_Window_ID);
|
|
||||||
if (service != null) {
|
|
||||||
AbstractWQuickEntry quickEntry = service.newQuickEntryInstance(AD_Window_ID);
|
|
||||||
if (quickEntry != null)
|
|
||||||
return quickEntry;
|
return quickEntry;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -309,15 +299,32 @@ public class Extensions {
|
||||||
* @param WindowNo
|
* @param WindowNo
|
||||||
* @param AD_Window_ID
|
* @param AD_Window_ID
|
||||||
* @param TabNo
|
* @param TabNo
|
||||||
* @return IQuickEntry instance or null if AD_Window_ID not found
|
* @return IQuickEntry instance or null if AdWindowID not found
|
||||||
*/
|
*/
|
||||||
public static AbstractWQuickEntry getQuickEntry(int WindowNo, int TabNo, int AD_Window_ID) {
|
public static AbstractWQuickEntry getQuickEntry(int WindowNo, int TabNo, int AdWindowID) {
|
||||||
IQuickEntryFactory service = getQuickEntryService(AD_Window_ID);
|
IServiceReferenceHolder<IQuickEntryFactory> cache = s_quickEntryFactoryCache.get(AdWindowID);
|
||||||
|
if (cache != null) {
|
||||||
|
IQuickEntryFactory service = cache.getService();
|
||||||
if (service != null) {
|
if (service != null) {
|
||||||
AbstractWQuickEntry quickEntry = service.newQuickEntryInstance(WindowNo, TabNo, AD_Window_ID);
|
AbstractWQuickEntry quickEntry = service.newQuickEntryInstance(WindowNo, TabNo, AdWindowID);
|
||||||
if (quickEntry != null)
|
if (quickEntry != null)
|
||||||
return quickEntry;
|
return quickEntry;
|
||||||
}
|
}
|
||||||
|
s_quickEntryFactoryCache.remove(AdWindowID);
|
||||||
|
}
|
||||||
|
List<IServiceReferenceHolder<IQuickEntryFactory>> factories = Service.locator().list(IQuickEntryFactory.class).getServiceReferences();
|
||||||
|
if (factories != null) {
|
||||||
|
for(IServiceReferenceHolder<IQuickEntryFactory> factory : factories) {
|
||||||
|
IQuickEntryFactory service = factory.getService();
|
||||||
|
if (service != null) {
|
||||||
|
AbstractWQuickEntry quickEntry = service.newQuickEntryInstance(WindowNo, TabNo, AdWindowID);
|
||||||
|
if (quickEntry != null) {
|
||||||
|
s_quickEntryFactoryCache.put(AdWindowID, factory);
|
||||||
|
return quickEntry;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue