# This patch file was generated by NetBeans IDE # Following Index: paths are relative to: /home/oleksiys/Projects/glassfish/3.1/core/kernel/src/main/java/com/sun/enterprise/v3/services/impl # This patch can be applied using context Tools: Patch action on respective folder. # It uses platform neutral UTF-8 encoding and \n newlines. # Above lines and this line are ignored by the patching process. Index: ServiceInitializerHandler.java --- ServiceInitializerHandler.java Base (BASE) +++ ServiceInitializerHandler.java Locally Modified (Based On LOCAL) @@ -87,29 +87,31 @@ } SelectableChannel channel = acceptWithoutRegistration(key); if(targetInitializer == null) { - synchronized(LOCK_OBJ) { - if(targetInitializer == null) { - for(LazyServiceInitializer initializer : initializerImplList) { + synchronized (LOCK_OBJ) { + LazyServiceInitializer localInitializer = targetInitializer; + if (localInitializer == null) { + for (LazyServiceInitializer initializer : initializerImplList) { String listenerName = selectorThread.getGrizzlyListener().getListener().getName(); - if(listenerName.equalsIgnoreCase(initializer.getServiceName())) { - targetInitializer = initializer; + if (listenerName.equalsIgnoreCase(initializer.getServiceName())) { + localInitializer = initializer; break; } } - } - if(targetInitializer == null) { - logger.severe("NO Lazy Initialiser implementation was found for port = " + - selectorThread.getGrizzlyListener().getListener().getPort()); + if (localInitializer == null) { + logger.severe("NO Lazy Initialiser implementation was found for port = " + + selectorThread.getGrizzlyListener().getListener().getPort()); return false; } - if(!targetInitializer.initializeService()) { - targetInitializer = null; - logger.severe("Lazy Service initialization failed for port = " + - selectorThread.getGrizzlyListener().getListener().getPort()); + if (!localInitializer.initializeService()) { + logger.severe("Lazy Service initialization failed for port = " + + selectorThread.getGrizzlyListener().getListener().getPort()); return false; } + + targetInitializer = localInitializer; } } + } if (channel != null) { targetInitializer.handleRequest(channel); }