IDEMPIERE-2124 Extensibility issue - OSGi callouts being called before official
This commit is contained in:
parent
057b657b82
commit
0fae275b28
|
@ -2811,37 +2811,6 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
|
||||||
|
|
||||||
Object value = field.getValue();
|
Object value = field.getValue();
|
||||||
Object oldValue = field.getOldValue();
|
Object oldValue = field.getOldValue();
|
||||||
List<IColumnCallout> callouts = Core.findCallout(getTableName(), field.getColumnName());
|
|
||||||
if (callouts != null && !callouts.isEmpty()) {
|
|
||||||
for(IColumnCallout co : callouts)
|
|
||||||
{
|
|
||||||
String retValue = "";
|
|
||||||
|
|
||||||
String cmd = co.getClass().getName();
|
|
||||||
//detect infinite loop
|
|
||||||
if (activeCallouts.contains(cmd)) continue;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
activeCallouts.add(cmd);
|
|
||||||
retValue = co.start(m_vo.ctx, m_vo.WindowNo, this, field, value, oldValue);
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
log.log(Level.SEVERE, "start", e);
|
|
||||||
retValue = "Callout Invalid: " + e.toString();
|
|
||||||
return retValue;
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
activeCallouts.remove(cmd);
|
|
||||||
}
|
|
||||||
if (!Util.isEmpty(retValue)) // interrupt on first error
|
|
||||||
{
|
|
||||||
log.severe (retValue);
|
|
||||||
return retValue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
String callout = field.getCallout();
|
String callout = field.getCallout();
|
||||||
if (callout.length() == 0)
|
if (callout.length() == 0)
|
||||||
|
@ -2963,6 +2932,39 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
|
||||||
return retValue;
|
return retValue;
|
||||||
}
|
}
|
||||||
} // for each callout
|
} // for each callout
|
||||||
|
|
||||||
|
List<IColumnCallout> callouts = Core.findCallout(getTableName(), field.getColumnName());
|
||||||
|
if (callouts != null && !callouts.isEmpty()) {
|
||||||
|
for(IColumnCallout co : callouts)
|
||||||
|
{
|
||||||
|
String retValue = "";
|
||||||
|
|
||||||
|
String cmd = co.getClass().getName();
|
||||||
|
//detect infinite loop
|
||||||
|
if (activeCallouts.contains(cmd)) continue;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
activeCallouts.add(cmd);
|
||||||
|
retValue = co.start(m_vo.ctx, m_vo.WindowNo, this, field, value, oldValue);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
log.log(Level.SEVERE, "start", e);
|
||||||
|
retValue = "Callout Invalid: " + e.toString();
|
||||||
|
return retValue;
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
activeCallouts.remove(cmd);
|
||||||
|
}
|
||||||
|
if (!Util.isEmpty(retValue)) // interrupt on first error
|
||||||
|
{
|
||||||
|
log.severe (retValue);
|
||||||
|
return retValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return "";
|
return "";
|
||||||
} // processCallout
|
} // processCallout
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue