DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24293>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24293 CastorRegistryService deadlocks when calling changeBase method on early init Summary: CastorRegistryService deadlocks when calling changeBase method on early init Product: Jetspeed Version: 1.4b4 Platform: PC OS/Version: Windows NT/2K Status: NEW Severity: Blocker Priority: Other Component: Registry AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] Hi! I'm running the JPortal tutorial over JetSpeed version v1.4 b4 along with JBoss- 3.2.2RC2. I have applied the tutorial-1 and tutorial-2 ant targets to the jportal base and deployed it to the JBoss server. When running the server (Tomcat 4.1.27) it never finishes initializing the Registry and causes a deadlock. The server never finishes initializing so no requests can be performed. The problem seems to be that while doing early initialization of the CastorRegistryService it tries to change the base directory that contains the .xreg files (and therefore initializing the portlets contained over there) before setting the init field to true (setInit(true)). I've detected that as a part of that changeBase() process a fragment gets loaded that calls again the init() method of the CastorRegistryService (this time called late initalization) and since this method does nothing but wait until the service itself is initialized so a deadlock appears because the same thread who calls the changeBase() method on init(ServletConfig) it also finishes calling init() and never being able to call the setInit(true). Here is the calling stack in reverse order: Thread.sleep(long) line: not available [native method] CastorRegistryService.init() line: 529 <---- TurbineServices(BaseServiceBroker).getService(String) line: 304 Registry.getService() line: 101 Registry.getEntry(String, String) line: 135 BasePortletEntry.getParentEntry() line: 327 BasePortletEntry.getClassname() line: 223 GeneratedMethodAccessor112.invoke(Object, Object[]) line: not available DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25 Method.invoke(Object, Object[]) line: 324 FieldHandlerImpl.getValue(Object) line: 373 FieldValidator.validate(Object, ValidationContext) line: 190 XMLClassDescriptorAdapter(XMLClassDescriptorImpl).validate(Object, ValidationContext) line: 885 FieldValidator(Validator).validate(Object, ValidationContext) line: 122 FieldValidator.validate(Object, ValidationContext) line: 233 XMLClassDescriptorAdapter(XMLClassDescriptorImpl).validate(Object, ValidationContext) line: 885 Validator.validate(Object, ValidationContext) line: 122 UnmarshalHandler.endElement(String) line: 690 DOMEventProducer.process(Element, DocumentHandler) line: 249 DOMEventProducer.process(Node, DocumentHandler) line: 182 DOMEventProducer.processChildren(Node, DocumentHandler) line: 333 DOMEventProducer.process(Document, DocumentHandler) line: 134 DOMEventProducer.process(Node, DocumentHandler) line: 170 DOMEventProducer.start() line: 110 Unmarshaller.unmarshal(EventProducer) line: 507 Unmarshaller.unmarshal(Node) line: 591 CastorRegistryService.loadFragment(String) line: 601 RegistryWatcher.findFiles(File) line: 249 RegistryWatcher.changeBase(File) line: 214 CastorRegistryService.init(ServletConfig) line: 458 <----- CastorRegistryService(TurbineBaseService).init(Object) line: 108 TurbineServices(BaseInitableBroker).initClass(String, Object) line: 149 TurbineServices(BaseServiceBroker).doInitService(Object, String) line: 224 TurbineServices(BaseServiceBroker).initServices(Object, boolean) line: 193 Turbine.init() line: 257 .... I have applied the FixPack #20076 that sincrhonizes the watcher but same behaviour. I have also placed the call to setInit(true) before the changeBase() call and it seems to work but I´m getting lots of NullPointerExceptions while getEntry() looks for some fragments that are not yet initialized. Can someone look at this please? Thanks mates. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
