Added a check to try and detect the case where a server and
a client are running on the same instance. This should cover 99% of the cases where this would come up... and the others can't really use this service anyway and so must disable it.
This commit is contained in:
parent
4b2f361026
commit
dfe4b083f0
@ -94,7 +94,7 @@ public class SerializerRegistrationsMessage extends AbstractMessage {
|
||||
public static Registration[] compiled;
|
||||
private static final Serializer fieldSerializer = new FieldSerializer();
|
||||
|
||||
private Registration[] registrations;
|
||||
private Registration[] registrations;
|
||||
|
||||
public SerializerRegistrationsMessage() {
|
||||
setReliable(true);
|
||||
@ -132,7 +132,25 @@ public class SerializerRegistrationsMessage extends AbstractMessage {
|
||||
Serializer.setReadOnly(true);
|
||||
}
|
||||
|
||||
public void registerAll() {
|
||||
public void registerAll() {
|
||||
|
||||
// See if we will have problems because our registry is locked
|
||||
if( Serializer.isReadOnly() ) {
|
||||
// Check to see if maybe we are executing this from the
|
||||
// same JVM that sent the message, ie: client and server are running on
|
||||
// the same JVM
|
||||
// There could be more advanced checks than this but for now we'll
|
||||
// assume that if the registry was compiled here then it means
|
||||
// we are also the server process. Note that this wouldn't hold true
|
||||
// under complicated examples where there are clients of one server
|
||||
// that also run their own servers but realistically they would have
|
||||
// to disable the ServerSerializerRegistrationsServer anyway.
|
||||
if( compiled != null ) {
|
||||
log.log( Level.INFO, "Skipping registration as registry is locked, presumably by a local server process.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
for( Registration reg : registrations ) {
|
||||
log.log( Level.INFO, "Registering:{0}", reg);
|
||||
reg.register();
|
||||
|
Loading…
x
Reference in New Issue
Block a user