Firstly,I am sorry,This is talking about project openejb.but this mail list is used to project geronimo.But,I really hope everyone can give me some advice.Thanks.

I review code at org.apache.openejb.server.activemq.BrokerServer,I don't know this class want to do anything,but I think some code is no auality,like this:

   public void init(Properties properties) throws Exception {
       String port = properties.getProperty("port", "1527");
       String bind = properties.getProperty("bind");
       String disabled = properties.getProperty("disabled");
       this.port = Integer.parseInt(port);
       this.disabled = Boolean.parseBoolean(disabled);
       @0
       host = InetAddress.getByName(bind);

       @1
       if (this.disabled) {
           return;
       }
       URI uri = new URI("tcp", null, bind, this.port, null, null, null);

       broker = new BrokerService();
       broker.setPersistent(false);
       broker.addConnector(uri);
   }

   public void start() throws ServiceException {
       @2
       if (disabled) return;
       try {
           broker.start();
       } catch (Exception e) {
           throw new ServiceException(e);
       }
   }

due to @1 and @2,I think if the field of disabled is false,this class(or call service,it implements ServerService) will not working,so ,the prob is,you specify the field type is boolean(then sometimes it will value of false),but the @0 is working every time,this invocation(InetAddress.getByName(..)) will use a great many system resources,following invocation code(the char 'l:' means 'line:'):

  l:956  public static InetAddress getByName(String host)
                throws UnknownHostException {
                return InetAddress.getAllByName(host)[0];
  l:959  }

  l:1000  public static InetAddress[] getAllByName(String host)
                throws UnknownHostException {

                ......

                return getAllByName0(host);
  l:1061  }

  l:1095  private static InetAddress[] getAllByName0 (String host)
                throws UnknownHostException
                {
                return getAllByName0(host, true);
  l:1099  }

  l:1104  static InetAddress[] getAllByName0 (String host, boolean check)
                throws UnknownHostException  {
                .....
                /* Make a copy of the InetAddress array */
                objcopy = ((InetAddress [])obj).clone();
                return (InetAddress [])objcopy;
  l:1139  }

so,you see,I deem you review code to here,to a certainty found some prob.yes ,it will work fine,but this project is from Apache,isn't all best developer working with apache project?(I nill write more.very tired now.I am going to bed..)

  I think just change to:
   public void init(Properties properties) throws Exception {
       String disabled = properties.getProperty("disabled");
       this.disabled = Boolean.parseBoolean(disabled);
       @1
       if (this.disabled) {
           return;
       }

       String port = properties.getProperty("port", "1527");
       this.port = Integer.parseInt(port);
       String bind = properties.getProperty("bind");
       @0
       host = InetAddress.getByName(bind);
       URI uri = new URI("tcp", null, bind, this.port, null, null, null);

       broker = new BrokerService();
       broker.setPersistent(false);
       broker.addConnector(uri);
   }

        if you see this message,give me some idea please,thanks.

- A Fei -

_________________________________________________________________
From predictions to trailers, check out the MSN Entertainment Guide to the
Academy Awards® http://movies.msn.com/movies/oscars2007/?icid=ncoscartagline1

Reply via email to