ObjectMarshallingStrategy strategyObject = context.resolverStrategyFactory.getStrategyObject( _entry.getName() );
if ( strategyObject == null ) {
throw new IllegalStateException( "No strategy of type " + _entry.getName() + " available." );
}
context.usedStrategies.put( _entry.getId(), strategyObject );
Context ctx = strategyObject.createContext();
context.strategyContexts.put( strategyObject, ctx );
if( _entry.hasData() && ctx != null ) {
ClassLoader classLoader = null;
if (context.classLoader != null ){
classLoader = context.classLoader;
} else if(context.ruleBase != null){
classLoader = context.ruleBase.getRootClassLoader();
}
ctx.read( new DroolsObjectInputStream( _entry.getData().newInput(), classLoader) );
}
}
}