Travis,

Thank you for the report! It does look like a reasonable change. 
We'll see into including it into HiveMind 1.1.

--knut


On Sat, 23 Oct 2004 14:14:50 -0500, Travis Klotz <[EMAIL PROTECTED]> wrote:
> I have been having some problems getting HiveMind 1.0 to work inside
> of OC4J 9.0.4
> 
> I have a very simple session bean that creats a default registry with
> RegistryBuilder
> 
> Registry r = RegistryBuilder.constructDefaultRegistry();
> 
> With Log4J set to DEBUG mode I get the following output
> 
> 0    [RMICallHandler-6] DEBUG org.apache.hivemind.impl.RegistryBuilder
> - Processing modules visible to
> [EMAIL PROTECTED]
> 
> 16   [RMICallHandler-6] DEBUG
> org.apache.hivemind.parse.DescriptorParser  - Parsing
> jndi:C:\java-lib\hivemind-1.0\hivemind-1.0.jar/META-INF/hivemodule.xml
> 
> 47   [RMICallHandler-6] ERROR org.apache.hivemind.impl.RegistryBuilder
> - Error: null
> 
> java.lang.NullPointerException
> 
>        at 
> org.apache.hivemind.parse.AbstractParser.getLocation(AbstractParser.java:158)
> 
>        at 
> org.apache.hivemind.parse.DescriptorParser.parse(DescriptorParser.java:1420)
> 
>        at 
> org.apache.hivemind.impl.RegistryBuilder.processModule(RegistryBuilder.java:216)
> 
>        at 
> org.apache.hivemind.impl.RegistryBuilder.processModulesResources(RegistryBuilder.java:199)
> 
>        at 
> org.apache.hivemind.impl.RegistryBuilder.processModules(RegistryBuilder.java:172)
> 
>        at 
> org.apache.hivemind.impl.RegistryBuilder.constructDefaultRegistry(RegistryBuilder.java:709)
> 
>        at org.act.hivemind.test.SessionEJBBean.test(SessionEJBBean.java:31)
> 
>        at 
> SessionEJB_StatelessSessionBeanWrapper0.test(SessionEJB_StatelessSessionBeanWrapper0.java:96)
> 
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 
>        at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 
>        at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 
>        at java.lang.reflect.Method.invoke(Method.java:324)
> 
>        at com.evermind.server.rmi.RMICallHandler.run(RMICallHandler.java:124)
> 
>        at com.evermind.server.rmi.RMICallHandler.run(RMICallHandler.java:48)
> 
>        at 
> com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
> 
>        at java.lang.Thread.run(Thread.java:534)
> 
> 63   [RMICallHandler-6] DEBUG
> org.apache.hivemind.parse.DescriptorParser  - Parsing
> jndi:C:\java-lib\hivemind-1.0\hivemind-lib-1.0.jar/META-INF/hivemodule.xml
> 
> 63   [RMICallHandler-6] ERROR org.apache.hivemind.impl.RegistryBuilder
> - Error: null
> 
> java.lang.NullPointerException
> 
>        at 
> org.apache.hivemind.parse.AbstractParser.getLocation(AbstractParser.java:158)
> 
>        at 
> org.apache.hivemind.parse.DescriptorParser.parse(DescriptorParser.java:1420)
> 
>        at 
> org.apache.hivemind.impl.RegistryBuilder.processModule(RegistryBuilder.java:216)
> 
>        at 
> org.apache.hivemind.impl.RegistryBuilder.processModulesResources(RegistryBuilder.java:199)
> 
>        at 
> org.apache.hivemind.impl.RegistryBuilder.processModules(RegistryBuilder.java:172)
> 
>        at 
> org.apache.hivemind.impl.RegistryBuilder.constructDefaultRegistry(RegistryBuilder.java:709)
> 
>        at org.act.hivemind.test.SessionEJBBean.test(SessionEJBBean.java:31)
> 
>        at 
> SessionEJB_StatelessSessionBeanWrapper0.test(SessionEJB_StatelessSessionBeanWrapper0.java:96)
> 
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 
>        at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 
>        at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 
>        at java.lang.reflect.Method.invoke(Method.java:324)
> 
>        at com.evermind.server.rmi.RMICallHandler.run(RMICallHandler.java:124)
> 
>        at com.evermind.server.rmi.RMICallHandler.run(RMICallHandler.java:48)
> 
>        at 
> com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
> 
>        at java.lang.Thread.run(Thread.java:534)
> 
> It appears that the DescriptorParser is having problems with the
> "jndi:/" URLs.  (It doesn't have any problems parsing hivemodule.xml
> files that are not stored in a jar file, in that case they get a
> file:/  URL)
> 
> I went and grabbed the lastest CVS code and built the project.  It
> still has the same problem.
> 
> I dove into DescriptorParser.java and tracked the problem to the
> parseXML method.  Currently it takes the ExternalForm value from the
> resource's URL and uses it to create a SAX InputSource which i'm sure
> tries to open an InputStream.  I'm assuming that the InputSource is
> having a problem with the jndi:/ style URL string.  I went ahead and
> modified parseXML to call openStream on the URL and pass that stream
> directly into the InputSource.
>     /**
>      * Parses a document in the original format: unvalidated XML (with
> no document type).
>      */
>     private void parseXML(Resource resource) throws Exception
>     {
>         InputStream steam = null;
>         URL url = resource.getResourceURL();
> 
>         if (url == null)
>             throw new
> ApplicationRuntimeException(ParseMessages.missingResource(resource),
>                     resource, null, null);
> 
>         try
>         {
>             stream = url.openStream();
>             InputSource source = new InputSource(stream);
>             getSAXParser().parse(source, this);
>         }
>         catch (Exception ex)
>         {
>             _parser = null;
> 
>             throw ex;
>         }
>         finally
>         {
>             try
>             {
>                 if(stream != null) {
>                     stream.close();
>                 }
>             }
>             catch(Exception e) {}
>         }
>     }
> built the project,  it passed all the JUnit tests.  Fired it up in
> OC4J and now i'm not haveing any problems putting together a registry.
> 
> I think this solution should work in other App Servers as well.
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to