[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[xmlblaster] Socket protocol and plugin info



Hi folks.

While around with the socket protocol, I have come across the
SocketConnection.init(Global, PluginInfo) method which is laid out as
follows:

  public void init(org.xmlBlaster.util.Global glob, PluginInfo
pluginInfo) throws XmlBlasterException 
 {
      this.glob = (glob == null) ? Global.instance() : glob;

      this.pluginInfo = pluginInfo;
      String tmp =
pluginInfo.getParameters().getProperty("useUdpForOneway",
""+this.useUdpForOneway);
      this.useUdpForOneway = Boolean.valueOf(tmp).booleanValue();
      if (log.isLoggable(Level.FINER)) log.finer("Entering
init(useUdpForOneway="+this.useUdpForOneway+")");
      // Put this instance in the NameService, will be looked up by
SocketCallbackImpl
 
this.glob.addObjectEntry("org.xmlBlaster.client.protocol.socket.SocketCo
nnection", this);
  }

The difficult part is if not relying on a XmlBlasterAccess object but
directly working with the SocketConnection class.
In this case there is no PluginInfo object which leads to a
NullPointerException when fetching the useUdpForOneWay parameter.
I believe someone has already thought about this scenario because
getVersion handles a non-existent PluginInfo:

   public String getVersion() 
   {
      return (this.pluginInfo == null) ? "1.0" :
this.pluginInfo.getVersion();
   }

So that looks somehow like a bug. One solution could be to move the
useUdpForOneway property into Global, the other to catch this faulty
condition by testing the PluginInfo object for null reference.

Any comments ?

Best regards,

Oliver