I ran the "findbugs" static analysis utility against a copy of axis.jar. I'm attaching the resulting report, which was created with the "textui" in "sort by class" mode. It looks like there are several things that could be trivially fixed and several others which merit further investigation. Findbugs comes with an ant task and so if there's consensus about the usefulness of this report, it might make sense to add a target to the axis build file so that this can be run from time to time.
Findbugs, if you don't already know, was created by David Hovemeyer and Bill Pugh (of skip list fame). The original paper describing the tool and its goals is available here: http://www.cs.umd.edu/~pugh/java/bugs/docs/findbugsPaper.pdf. The site for findbugs is here: http://www.cs.umd.edu/~pugh/java/bugs/ And here's a report for axis. I recommend trying it out yourselves with the GUI -- that includes slightly more verbose descriptions of the patterns that findbugs considers to be problematic. Eric PS -- I'd be most concerned about the classes that have problems with the equals/hashCode contract, as those can result in serious and difficult to reproduce runtime failures. Also, there are places where Axis is using the "double checked locking" idiom for lazy initialization -- this is known to not work in Java and should be fixed as soon as possible. See http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html for information about why this is so. Apart from that, it's up to the committers (of which I am not one) to decide what other errors are worth fixing. The several unread/unused instance variables are probably easy, low-hanging fruit.... <<byClass.txt>>
MS: org.apache.axis.AxisEngine.log isn't final but should be Dm: org.apache.axis.AxisFault.dumpToString() invokes dubious new String() constructor; just use "" MS: org.apache.axis.AxisFault.log isn't final but should be Se: org.apache.axis.AxisFault is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.AxisProperties.log isn't final but should be MS: org.apache.axis.ConfigurationException.copyStackByDefault isn't final but should be MS: org.apache.axis.ConfigurationException.log isn't final but should be Se: org.apache.axis.ConfigurationException is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.Constants.QNAMES_NIL is a mutable array MS: org.apache.axis.Constants.URIS_SCHEMA_XSD is a mutable array MS: org.apache.axis.Constants.URIS_SCHEMA_XSI is a mutable array MS: org.apache.axis.Constants.URIS_SOAP_ENC is a mutable array MS: org.apache.axis.Constants.NS_URIS_WSDL should be package protected MS: org.apache.axis.Constants.NS_URIS_WSDL_SOAP should be package protected MS: org.apache.axis.Constants.URIS_SOAP_ENV should be package protected MS: org.apache.axis.FaultableHandler.entLog isn't final but should be MS: org.apache.axis.FaultableHandler.log isn't final but should be Se: org.apache.axis.FaultableHandler is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.InternalException.log isn't final but should be Se: org.apache.axis.InternalException is Serializable; consider declaring a serialVersionUID IS2: Inconsistent synchronization of org.apache.axis.Message.attachImpl; locked 50% of time MS: org.apache.axis.Message.log isn't final but should be Se: org.apache.axis.Message is Serializable; consider declaring a serialVersionUID Dm: org.apache.axis.MessageContext.getProperty(String) invokes dubious Boolean constructor; use Boolean.valueOf(...) instead MS: org.apache.axis.MessageContext.log isn't final but should be MS: org.apache.axis.MessageContext.systemTempDir isn't final but should be Nm: Confusing to have methods org.apache.axis.MessageContext.setSOAPConstants(org.apache.axis.soap.SOAPConstants) and org.apache.axis.message.SOAPEnvelope.setSoapConstants(org.apache.axis.soap.SOAPConstants) EI: org.apache.axis.SOAPPart.getAsBytes() may expose internal representation by returning org.apache.axis.SOAPPart.currentMessageAsBytes MS: org.apache.axis.SOAPPart.log isn't final but should be MS: org.apache.axis.SimpleChain.log isn't final but should be Se: org.apache.axis.SimpleChain is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.SimpleTargetedChain.log isn't final but should be Se: org.apache.axis.SimpleTargetedChain is Serializable; consider declaring a serialVersionUID SIC: Should org.apache.axis.SimpleTargetedChain$PivotIndicator be a _static_ inner class? FI: org.apache.axis.attachments.AttachmentPart.finalize() missing call to super.finalize(), so org.apache.axis.attachments.AttachmentPart.finalize() doesn't get called MS: org.apache.axis.attachments.AttachmentPart.log isn't final but should be MS: org.apache.axis.attachments.AttachmentsImpl.log isn't final but should be Se: org.apache.axis.attachments.AttachmentsImpl is Serializable; consider declaring a serialVersionUID IS2: Inconsistent synchronization of org.apache.axis.attachments.BoundaryDelimitedStream.boundaryPos; locked 87% of time IS2: Inconsistent synchronization of org.apache.axis.attachments.BoundaryDelimitedStream.readBufEnd; locked 87% of time IS2: Inconsistent synchronization of org.apache.axis.attachments.BoundaryDelimitedStream.readBufPos; locked 84% of time MS: org.apache.axis.attachments.BoundaryDelimitedStream.log isn't final but should be DE: org.apache.axis.attachments.DimeBodyPart.send(java.io.OutputStream,byte,javax.activation.DataHandler,long) might ignore java.io.IOException MS: org.apache.axis.attachments.DimeBodyPart.log isn't final but should be IS2: Inconsistent synchronization of org.apache.axis.attachments.DimeDelimitedInputStream.bytesRead; locked 94% of time IS2: Inconsistent synchronization of org.apache.axis.attachments.DimeDelimitedInputStream.dataPadLength; locked 81% of time IS2: Inconsistent synchronization of org.apache.axis.attachments.DimeDelimitedInputStream.recordLength; locked 80% of time IS2: Inconsistent synchronization of org.apache.axis.attachments.DimeDelimitedInputStream.theEnd; locked 50% of time MS: org.apache.axis.attachments.DimeDelimitedInputStream.streamCount should be package protected MS: org.apache.axis.attachments.DimeDelimitedInputStream.log isn't final but should be HE: org.apache.axis.attachments.DimeTypeNameFormat defines equals and uses Object.hashCode() MS: org.apache.axis.attachments.ImageDataSource.log isn't final but should be UuF: Unused field: org.apache.axis.attachments.ImageDataSource.is DE: org.apache.axis.attachments.ManagedMemoryDataSource.delete() might ignore java.lang.Exception IS2: Inconsistent synchronization of org.apache.axis.attachments.ManagedMemoryDataSource.currentMemoryBufSz; locked 85% of time MS: org.apache.axis.attachments.ManagedMemoryDataSource.is_log isn't final but should be MS: org.apache.axis.attachments.ManagedMemoryDataSource.log isn't final but should be UrF: Unread field: org.apache.axis.attachments.ManagedMemoryDataSource.ss DE: org.apache.axis.attachments.MimeMultipartDataSource.<init>(String,javax.mail.internet.MimeMultipart) might ignore java.lang.Exception UuF: Unused field: org.apache.axis.attachments.MimeMultipartDataSource.is MS: org.apache.axis.attachments.MimeUtils.filter should be both final and package protected MS: org.apache.axis.attachments.MimeUtils.log isn't final but should be MS: org.apache.axis.attachments.MultiPartDimeInputStream.READ_ALL should be package protected MS: org.apache.axis.attachments.MultiPartDimeInputStream.log isn't final but should be MS: org.apache.axis.attachments.MultiPartRelatedInputStream.READ_ALL should be package protected MS: org.apache.axis.attachments.MultiPartRelatedInputStream.log isn't final but should be RR: org.apache.axis.attachments.MultiPartRelatedInputStream.<init>(String,java.io.InputStream) ignores result of java.io.InputStream.read(byte[]) EI: org.apache.axis.attachments.OctetStream.getBytes() may expose internal representation by returning org.apache.axis.attachments.OctetStream.bytes UuF: Unused field: org.apache.axis.attachments.PlainTextDataSource.is RR: org.apache.axis.attachments.SourceDataSource.<init>(String,String,javax.xml.transform.stream.StreamSource) ignores result of java.io.InputStream.read(byte[],int,int) UuF: Unused field: org.apache.axis.attachments.SourceDataSource.is MS: org.apache.axis.client.AdminClient.log isn't final but should be MS: org.apache.axis.client.AxisClient.log isn't final but should be Se: org.apache.axis.client.AxisClient is Serializable; consider declaring a serialVersionUID DE: org.apache.axis.client.Call.getTransportForProtocol(String) might ignore java.lang.InstantiationException DE: org.apache.axis.client.Call.getTransportForProtocol(String) might ignore java.lang.IllegalAccessException DE: org.apache.axis.client.Call.setOperation(String) might ignore java.lang.Exception MS: org.apache.axis.client.Call.entLog isn't final but should be MS: org.apache.axis.client.Call.log isn't final but should be Se: org.apache.axis.client.Service is Serializable; consider declaring a serialVersionUID DE: org.apache.axis.client.ServiceFactory.getService(java.util.Map) might ignore javax.naming.NamingException Dm: org.apache.axis.client.Stub._getProperty(String) invokes dubious Boolean constructor; use Boolean.valueOf(...) instead Dm: org.apache.axis.client.Stub.setMaintainSession(boolean) invokes dubious Boolean constructor; use Boolean.valueOf(...) instead Nm: Confusing to have methods org.apache.axis.client.Transport.getUrl() and org.apache.axis.utils.Options.getURL() MS: org.apache.axis.components.compiler.CompilerFactory.log isn't final but should be MS: org.apache.axis.components.compiler.Javac.log isn't final but should be MS: org.apache.axis.components.compiler.Jikes.log isn't final but should be SIC: Should org.apache.axis.components.compiler.Jikes$StreamPumper be a _static_ inner class? UrF: Unread field: org.apache.axis.components.compiler.Jikes$StreamPumper.stopSignal MS: org.apache.axis.components.image.ImageIOFactory.log isn't final but should be MS: org.apache.axis.components.net.DefaultSocketFactory.log isn't final but should be MS: org.apache.axis.components.net.SocketFactoryFactory.log isn't final but should be MS: org.apache.axis.components.net.SunFakeTrustSocketFactory.log isn't final but should be MS: org.apache.axis.components.net.SunFakeTrustSocketFactory$FakeX509TrustManager.log isn't final but should be MS: org.apache.axis.components.net.TransportClientPropertiesFactory.log isn't final but should be MS: org.apache.axis.components.script.ScriptFactory.log isn't final but should be IS2: Inconsistent synchronization of org.apache.axis.components.threadpool.ThreadPool.threadcount; locked 70% of time MS: org.apache.axis.components.threadpool.ThreadPool.log isn't final but should be Dm: org.apache.axis.components.uuid.SimpleUUIDGen.nextUUID() invokes dubious new String() constructor; just use "" MS: org.apache.axis.configuration.EngineConfigurationFactoryDefault.log isn't final but should be MS: org.apache.axis.configuration.EngineConfigurationFactoryFinder.log isn't final but should be DE: org.apache.axis.configuration.EngineConfigurationFactoryFinder$1.run() might ignore java.lang.Exception MS: org.apache.axis.configuration.EngineConfigurationFactoryServlet.log isn't final but should be MS: org.apache.axis.configuration.FileProvider.log isn't final but should be IS2: Inconsistent synchronization of org.apache.axis.deployment.wsdd.WSDDDeployableItem.singletonInstance; locked 66% of time MS: org.apache.axis.deployment.wsdd.WSDDDeployableItem.scopeStrings should be both final and package protected MS: org.apache.axis.deployment.wsdd.WSDDDeployableItem.log isn't final but should be UR: Unitialized read of org.apache.axis.deployment.wsdd.WSDDDeployableItem.parameters in org.apache.axis.deployment.wsdd.WSDDDeployableItem.<init>(org.w3c.dom.Element) MS: org.apache.axis.deployment.wsdd.WSDDDeployment.log isn't final but should be Se: org.apache.axis.deployment.wsdd.WSDDDeployment is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.deployment.wsdd.WSDDDocument.log isn't final but should be UrF: Unread field: org.apache.axis.deployment.wsdd.WSDDDocument.doc Se: org.apache.axis.deployment.wsdd.WSDDHandler is Serializable; consider declaring a serialVersionUID EI: org.apache.axis.deployment.wsdd.WSDDJAXRPCHandlerInfo.getHeaders() may expose internal representation by returning org.apache.axis.deployment.wsdd.WSDDJAXRPCHandlerInfo._headers DE: org.apache.axis.deployment.wsdd.WSDDJAXRPCHandlerInfoChain.<init>(org.w3c.dom.Element) might ignore java.lang.ClassNotFoundException EI: org.apache.axis.deployment.wsdd.WSDDJAXRPCHandlerInfoChain.getRoles() may expose internal representation by returning org.apache.axis.deployment.wsdd.WSDDJAXRPCHandlerInfoChain._roles MS: org.apache.axis.deployment.wsdd.WSDDProvider.log isn't final but should be Nm: Confusing to have methods org.apache.axis.description.FaultDesc.getXmlType() and org.apache.axis.wsdl.symbolTable.FaultInfo.getXMLType() MS: org.apache.axis.description.OperationDesc.log isn't final but should be Se: org.apache.axis.description.ParameterDesc is Serializable; consider declaring a serialVersionUID DE: org.apache.axis.description.ServiceDesc.loadSkeletonOperations() might ignore java.lang.NoSuchMethodException DE: org.apache.axis.description.ServiceDesc.loadSkeletonOperations() might ignore java.lang.SecurityException IS2: Inconsistent synchronization of org.apache.axis.description.ServiceDesc.qname2OperationsMap; locked 80% of time MS: org.apache.axis.description.ServiceDesc.log isn't final but should be SIC: Should org.apache.axis.description.ServiceDesc$1 be a _static_ inner class? DE: org.apache.axis.description.TypeDesc.getTypeDescForClass(Class) might ignore java.lang.NoSuchMethodException EI: org.apache.axis.description.TypeDesc.getFields() may expose internal representation by returning org.apache.axis.description.TypeDesc.fields EI: org.apache.axis.description.TypeDesc.getFields(boolean) may expose internal representation by returning org.apache.axis.description.TypeDesc.fields EI: org.apache.axis.description.TypeDesc.getPropertyDescriptors() may expose internal representation by returning org.apache.axis.description.TypeDesc.propertyDescriptors DE: org.apache.axis.encoding.DeserializationContextImpl.parse() might ignore org.xml.sax.SAXException MS: org.apache.axis.encoding.DeserializationContextImpl.log isn't final but should be MS: org.apache.axis.encoding.DeserializerImpl.log isn't final but should be MS: org.apache.axis.encoding.FieldTarget.log isn't final but should be MS: org.apache.axis.encoding.MethodTarget.log isn't final but should be MS: org.apache.axis.encoding.SerializationContextImpl.log isn't final but should be SIC: Should org.apache.axis.encoding.SerializationContextImpl$MultiRefItem be a _static_ inner class? UrF: Unread field: org.apache.axis.encoding.SerializationContextImpl$MultiRefItem.sendType DE: org.apache.axis.encoding.TypeMappingImpl.getClassForQName(javax.xml.namespace.QName) might ignore java.lang.ClassNotFoundException MS: org.apache.axis.encoding.TypeMappingImpl.log isn't final but should be SIC: Should org.apache.axis.encoding.TypeMappingImpl$Pair be a _static_ inner class? DE: org.apache.axis.encoding.ser.ArrayDeserializer.valueComplete() might ignore java.lang.RuntimeException MS: org.apache.axis.encoding.ser.ArrayDeserializer.log isn't final but should be SIC: Should org.apache.axis.encoding.ser.ArrayDeserializer$ArrayListExtension be a _static_ inner class? MS: org.apache.axis.encoding.ser.ArraySerializer.log isn't final but should be DE: org.apache.axis.encoding.ser.BaseDeserializerFactory.createFactory(Class,Class,javax.xml.namespace.QName) might ignore java.lang.InstantiationException DE: org.apache.axis.encoding.ser.BaseDeserializerFactory.createFactory(Class,Class,javax.xml.namespace.QName) might ignore java.lang.IllegalAccessException DE: org.apache.axis.encoding.ser.BaseSerializerFactory.createFactory(Class,Class,javax.xml.namespace.QName) might ignore java.lang.InstantiationException DE: org.apache.axis.encoding.ser.BaseSerializerFactory.createFactory(Class,Class,javax.xml.namespace.QName) might ignore java.lang.IllegalAccessException DE: org.apache.axis.encoding.ser.BeanDeserializer.<init>(Class,javax.xml.namespace.QName,org.apache.axis.description.TypeDesc,java.util.Map) might ignore java.lang.Exception MS: org.apache.axis.encoding.ser.BeanDeserializer.log isn't final but should be Se: org.apache.axis.encoding.ser.BeanDeserializer is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.encoding.ser.BeanPropertyTarget.log isn't final but should be MS: org.apache.axis.encoding.ser.BeanSerializer.log isn't final but should be Se: org.apache.axis.encoding.ser.BeanSerializer is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.encoding.ser.DocumentDeserializer.log isn't final but should be MS: org.apache.axis.encoding.ser.ElementDeserializer.log isn't final but should be MS: org.apache.axis.encoding.ser.EnumSerializer.log isn't final but should be DE: org.apache.axis.encoding.ser.ImageDataHandlerDeserializer.startElement(String,String,String,org.xml.sax.Attributes,org.apache.axis.encoding.DeserializationContext) might ignore java.lang.Exception MS: org.apache.axis.encoding.ser.ImageDataHandlerDeserializer.log isn't final but should be MS: org.apache.axis.encoding.ser.ImageDataHandlerSerializer.log isn't final but should be MS: org.apache.axis.encoding.ser.JAFDataHandlerDeserializer.log isn't final but should be MS: org.apache.axis.encoding.ser.JAFDataHandlerDeserializerFactory.log isn't final but should be MS: org.apache.axis.encoding.ser.JAFDataHandlerSerializer.log isn't final but should be MS: org.apache.axis.encoding.ser.MapDeserializer.log isn't final but should be SIC: Should org.apache.axis.encoding.ser.MapDeserializer$ItemHandler be a _static_ inner class? MS: org.apache.axis.encoding.ser.MapSerializer.log isn't final but should be MS: org.apache.axis.encoding.ser.MimeMultipartDataHandlerDeserializer.log isn't final but should be MS: org.apache.axis.encoding.ser.MimeMultipartDataHandlerSerializer.log isn't final but should be MS: org.apache.axis.encoding.ser.OctetStreamDataHandlerDeserializer.log isn't final but should be MS: org.apache.axis.encoding.ser.OctetStreamDataHandlerSerializer.log isn't final but should be DE: org.apache.axis.encoding.ser.PlainTextDataHandlerDeserializer.startElement(String,String,String,org.xml.sax.Attributes,org.apache.axis.encoding.DeserializationContext) might ignore java.io.IOException MS: org.apache.axis.encoding.ser.PlainTextDataHandlerDeserializer.log isn't final but should be MS: org.apache.axis.encoding.ser.PlainTextDataHandlerSerializer.log isn't final but should be DE: org.apache.axis.encoding.ser.SourceDataHandlerDeserializer.startElement(String,String,String,org.xml.sax.Attributes,org.apache.axis.encoding.DeserializationContext) might ignore java.io.IOException MS: org.apache.axis.encoding.ser.SourceDataHandlerDeserializer.log isn't final but should be MS: org.apache.axis.encoding.ser.SourceDataHandlerSerializer.log isn't final but should be MS: org.apache.axis.encoding.ser.VectorDeserializer.log isn't final but should be MS: org.apache.axis.encoding.ser.VectorSerializer.log isn't final but should be HE: org.apache.axis.enum.Enum defines equals and uses Object.hashCode() MS: org.apache.axis.enum.Enum.log isn't final but should be MS: org.apache.axis.handlers.BasicHandler.log isn't final but should be MS: org.apache.axis.handlers.DebugHandler.log isn't final but should be Se: org.apache.axis.handlers.DebugHandler is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.handlers.EchoHandler.log isn't final but should be Se: org.apache.axis.handlers.EchoHandler is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.handlers.ErrorHandler.log isn't final but should be Se: org.apache.axis.handlers.ErrorHandler is Serializable; consider declaring a serialVersionUID EI: org.apache.axis.handlers.HandlerChainImpl.getRoles() may expose internal representation by returning org.apache.axis.handlers.HandlerChainImpl._roles UrF: Unread field: org.apache.axis.handlers.HandlerChainImpl.roles EI: org.apache.axis.handlers.HandlerInfoChainFactory.getRoles() may expose internal representation by returning org.apache.axis.handlers.HandlerInfoChainFactory._roles MS: org.apache.axis.handlers.JAXRPCHandler.log isn't final but should be Se: org.apache.axis.handlers.JAXRPCHandler is Serializable; consider declaring a serialVersionUID DE: org.apache.axis.handlers.JWSHandler.getDefaultClasspath(org.apache.axis.MessageContext) might ignore java.io.IOException MS: org.apache.axis.handlers.JWSHandler.log isn't final but should be MS: org.apache.axis.handlers.JWSHandler.soapServices isn't final but should be Se: org.apache.axis.handlers.JWSHandler is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.handlers.LogHandler.log isn't final but should be Se: org.apache.axis.handlers.LogHandler is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.handlers.LogMessage.log isn't final but should be Se: org.apache.axis.handlers.LogMessage is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.handlers.MD5AttachHandler.log isn't final but should be Se: org.apache.axis.handlers.MD5AttachHandler is Serializable; consider declaring a serialVersionUID Dm: org.apache.axis.handlers.SOAPMonitorHandler.invoke(org.apache.axis.MessageContext) invokes dubious new String() constructor; just use "" UrF: Unread field: org.apache.axis.handlers.SOAPMonitorHandler.portQName UrF: Unread field: org.apache.axis.handlers.SOAPMonitorHandler.serviceQName UrF: Unread field: org.apache.axis.handlers.SOAPMonitorHandler.wsdlURL MS: org.apache.axis.handlers.SimpleAuthenticationHandler.log isn't final but should be Se: org.apache.axis.handlers.SimpleAuthenticationHandler is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.handlers.SimpleAuthorizationHandler.log isn't final but should be Se: org.apache.axis.handlers.SimpleAuthorizationHandler is Serializable; consider declaring a serialVersionUID IS2: Inconsistent synchronization of org.apache.axis.handlers.SimpleSessionHandler.defaultSessionTimeout; locked 50% of time IS2: Inconsistent synchronization of org.apache.axis.handlers.SimpleSessionHandler.reapPeriodicity; locked 50% of time MS: org.apache.axis.handlers.SimpleSessionHandler.log isn't final but should be Se: org.apache.axis.handlers.SimpleSessionHandler is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.handlers.http.HTTPActionHandler.log isn't final but should be Se: org.apache.axis.handlers.http.HTTPActionHandler is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.handlers.http.HTTPAuthHandler.log isn't final but should be Se: org.apache.axis.handlers.http.HTTPAuthHandler is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.handlers.http.URLMapper.log isn't final but should be Se: org.apache.axis.handlers.http.URLMapper is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.handlers.soap.SOAPService.log isn't final but should be Se: org.apache.axis.handlers.soap.SOAPService is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.i18n.ProjectResourceBundle.log isn't final but should be SIC: Should org.apache.axis.i18n.ProjectResourceBundle$1 be a _static_ inner class? DE: org.apache.axis.i18n.RB.loadProperties(String,ClassLoader) might ignore java.lang.Exception MS: org.apache.axis.message.BodyBuilder.log isn't final but should be MS: org.apache.axis.message.HeaderBuilder.log isn't final but should be MS: org.apache.axis.message.InputStreamBody.log isn't final but should be MS: org.apache.axis.message.MessageElement.log isn't final but should be Se: org.apache.axis.message.MessageElement is Serializable; consider declaring a serialVersionUID HE: org.apache.axis.message.PrefixedQName defines equals and uses Object.hashCode() MS: org.apache.axis.message.RPCHandler.log isn't final but should be MS: org.apache.axis.message.RPCParam.log isn't final but should be Se: org.apache.axis.message.RPCParam is Serializable; consider declaring a serialVersionUID UrF: Unread field: org.apache.axis.message.RPCParam.myCall SIC: Should org.apache.axis.message.SAX2EventRecorder$objArrayVector be a _static_ inner class? MS: org.apache.axis.message.SAXOutputter.log isn't final but should be MS: org.apache.axis.message.SOAPEnvelope.log isn't final but should be DE: org.apache.axis.message.SOAPFaultDetailsBuilder.onStartChild(String,String,String,org.xml.sax.Attributes,org.apache.axis.encoding.DeserializationContext) might ignore java.lang.ClassNotFoundException DE: org.apache.axis.message.SOAPFaultDetailsBuilder.setValue(Object,Object) might ignore java.lang.ClassNotFoundException DE: org.apache.axis.monitor.SOAPMonitorService.destroy() might ignore java.lang.Exception DE: org.apache.axis.monitor.SOAPMonitorService$ConnectionThread.<init>(SOAPMonitorService,java.net.Socket) might ignore java.lang.Exception DE: org.apache.axis.monitor.SOAPMonitorService$ConnectionThread.close() might ignore java.io.IOException DE: org.apache.axis.monitor.SOAPMonitorService$ConnectionThread.run() might ignore java.io.IOException IS2: Inconsistent synchronization of org.apache.axis.monitor.SOAPMonitorService$ConnectionThread.out; locked 76% of time SIC: Should org.apache.axis.monitor.SOAPMonitorService$ConnectionThread be a _static_ inner class? DE: org.apache.axis.monitor.SOAPMonitorService$ServerSocketThread.run() might ignore java.io.IOException MS: org.apache.axis.providers.BSFProvider.log isn't final but should be Se: org.apache.axis.providers.BSFProvider is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.providers.BasicProvider.entLog isn't final but should be MS: org.apache.axis.providers.BasicProvider.log isn't final but should be MS: org.apache.axis.providers.java.CORBAProvider.entLog isn't final but should be MS: org.apache.axis.providers.java.CORBAProvider.log isn't final but should be Se: org.apache.axis.providers.java.CORBAProvider is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.providers.java.EJBProvider.entLog isn't final but should be MS: org.apache.axis.providers.java.EJBProvider.log isn't final but should be Se: org.apache.axis.providers.java.EJBProvider is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.providers.java.JavaProvider.entLog isn't final but should be MS: org.apache.axis.providers.java.JavaProvider.log isn't final but should be SIC: Should org.apache.axis.providers.java.JavaProvider$LockObject be a _static_ inner class? MS: org.apache.axis.providers.java.RMIProvider.entLog isn't final but should be MS: org.apache.axis.providers.java.RMIProvider.log isn't final but should be Se: org.apache.axis.providers.java.RMIProvider is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.providers.java.RPCProvider.log isn't final but should be Se: org.apache.axis.providers.java.RPCProvider is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.schema.SchemaVersion1999.QNAME_NIL isn't final but should be Se: org.apache.axis.schema.SchemaVersion1999 is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.schema.SchemaVersion2000.QNAME_NIL isn't final but should be Se: org.apache.axis.schema.SchemaVersion2000 is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.schema.SchemaVersion2001.QNAME_NIL isn't final but should be Se: org.apache.axis.schema.SchemaVersion2001 is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.security.servlet.ServletSecurityProvider.log isn't final but should be IS2: Inconsistent synchronization of org.apache.axis.security.simple.SimpleSecurityProvider.initialized; locked 66% of time MS: org.apache.axis.security.simple.SimpleSecurityProvider.log isn't final but should be UrF: Unread field: org.apache.axis.security.simple.SimpleSecurityProvider.perms MS: org.apache.axis.server.AxisServer.log isn't final but should be Se: org.apache.axis.server.AxisServer is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.server.DefaultAxisServerFactory.log isn't final but should be DE: org.apache.axis.server.JNDIAxisServerFactory.getServer(java.util.Map) might ignore javax.naming.NamingException MS: org.apache.axis.server.Transport.log isn't final but should be Se: org.apache.axis.server.Transport is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.transport.http.AxisServlet.log isn't final but should be DC: Possible doublecheck on org.apache.axis.transport.http.AxisServletBase.axisServer in org.apache.axis.transport.http.AxisServletBase.destroy() IS2: Inconsistent synchronization of org.apache.axis.transport.http.ChunkedInputStream.chunkSize; locked 92% of time MS: org.apache.axis.transport.http.CommonsHTTPSender.log isn't final but should be Se: org.apache.axis.transport.http.CommonsHTTPSender is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.transport.http.HTTPConstants.MC_HTTP_SERVLET isn't final but should be MS: org.apache.axis.transport.http.HTTPConstants.MC_HTTP_SERVLETLOCATION isn't final but should be MS: org.apache.axis.transport.http.HTTPConstants.MC_HTTP_SERVLETPATHINFO isn't final but should be MS: org.apache.axis.transport.http.HTTPConstants.MC_HTTP_SERVLETREQUEST isn't final but should be MS: org.apache.axis.transport.http.HTTPConstants.MC_HTTP_SERVLETRESPONSE isn't final but should be MS: org.apache.axis.transport.http.HTTPConstants.MC_HTTP_SOAPACTION isn't final but should be MS: org.apache.axis.transport.http.HTTPConstants.MC_HTTP_STATUS_CODE isn't final but should be MS: org.apache.axis.transport.http.HTTPConstants.MC_HTTP_STATUS_MESSAGE isn't final but should be MS: org.apache.axis.transport.http.HTTPSender.log isn't final but should be Se: org.apache.axis.transport.http.HTTPSender is Serializable; consider declaring a serialVersionUID DE: org.apache.axis.transport.http.SimpleAxisServer.run() might ignore java.io.InterruptedIOException MS: org.apache.axis.transport.http.SimpleAxisServer.sessionIndex should be package protected MS: org.apache.axis.transport.http.SimpleAxisServer.log isn't final but should be DE: org.apache.axis.transport.http.SimpleAxisWorker.run() might ignore java.lang.Exception MS: org.apache.axis.transport.http.SimpleAxisWorker.log isn't final but should be MS: org.apache.axis.transport.java.JavaSender.log isn't final but should be Se: org.apache.axis.transport.java.JavaSender is Serializable; consider declaring a serialVersionUID SC: org.apache.axis.transport.jms.JMSConnector.<init>(javax.jms.ConnectionFactory,int,int,long,long,long,boolean,String,String,String,org.apache.axis.components.jms.JMSVendorAdapter) invokes org.apache.axis.transport.jms.JMSConnector$AsyncConnection.start() SC: org.apache.axis.transport.jms.JMSConnector.<init>(javax.jms.ConnectionFactory,int,int,long,long,long,boolean,String,String,String,org.apache.axis.components.jms.JMSVendorAdapter) invokes org.apache.axis.transport.jms.JMSConnector$SyncConnection.start() DE: org.apache.axis.transport.jms.JMSConnector$AsyncConnection$ListenerSession.cleanup() might ignore java.lang.Exception UW: Unconditional wait in org.apache.axis.transport.jms.JMSConnector$Connection.run() DC: Possible doublecheck on org.apache.axis.transport.jms.JMSTransport.defaultConnector in org.apache.axis.transport.jms.JMSTransport.initConnectorIfNecessary() MS: org.apache.axis.transport.jms.JMSTransport.log isn't final but should be DE: org.apache.axis.transport.jms.MapUtils.removeBooleanProperty(java.util.Map,String,boolean) might ignore java.lang.Exception DE: org.apache.axis.transport.jms.MapUtils.removeIntProperty(java.util.Map,String,int) might ignore java.lang.Exception DE: org.apache.axis.transport.jms.MapUtils.removeLongProperty(java.util.Map,String,long) might ignore java.lang.Exception DE: org.apache.axis.transport.jms.MapUtils.removeStringProperty(java.util.Map,String,String) might ignore java.lang.Exception HE: org.apache.axis.transport.jms.QueueConnector$QueueEndpoint defines equals but not hashCode MS: org.apache.axis.transport.jms.SimpleJMSListener.log isn't final but should be UuF: Unused field: org.apache.axis.transport.jms.SimpleJMSListener.server DE: org.apache.axis.transport.jms.SimpleJMSWorker.run() might ignore java.lang.Exception MS: org.apache.axis.transport.jms.SimpleJMSWorker.log isn't final but should be DE: org.apache.axis.transport.jms.TopicConnector$TopicAsyncConnection$TopicListenerSession.cleanup() might ignore java.lang.Exception HE: org.apache.axis.transport.jms.TopicConnector$TopicEndpoint defines equals but not hashCode HE: org.apache.axis.transport.jms.TopicConnector$TopicSubscription defines equals but not hashCode SIC: Should org.apache.axis.transport.jms.TopicConnector$TopicSubscription be a _static_ inner class? MS: org.apache.axis.transport.local.LocalResponder.log isn't final but should be Se: org.apache.axis.transport.local.LocalResponder is Serializable; consider declaring a serialVersionUID MS: org.apache.axis.transport.local.LocalSender.log isn't final but should be Se: org.apache.axis.transport.local.LocalSender is Serializable; consider declaring a serialVersionUID HE: org.apache.axis.types.Day defines equals and uses Object.hashCode() EI: org.apache.axis.types.HexBinary.getBytes() may expose internal representation by returning org.apache.axis.types.HexBinary.m_value MS: org.apache.axis.types.HexBinary.DEC should be package protected HE: org.apache.axis.types.IDRefs defines equals but not hashCode HE: org.apache.axis.types.Month defines equals and uses Object.hashCode() HE: org.apache.axis.types.MonthDay defines equals and uses Object.hashCode() HE: org.apache.axis.types.NMTokens defines equals but not hashCode HE: org.apache.axis.types.Notation defines equals and uses Object.hashCode() Se: org.apache.axis.types.Notation is Serializable; consider declaring a serialVersionUID EI: org.apache.axis.types.Schema.get_any() may expose internal representation by returning org.apache.axis.types.Schema._any Se: org.apache.axis.types.Schema is Serializable; consider declaring a serialVersionUID HE: org.apache.axis.types.Time defines equals and uses Object.hashCode() Dm: org.apache.axis.types.URI.initialize(URI,String) invokes dubious new String() constructor; just use "" HE: org.apache.axis.types.Year defines equals and uses Object.hashCode() HE: org.apache.axis.types.YearMonth defines equals and uses Object.hashCode() MS: org.apache.axis.utils.Admin.log isn't final but should be MS: org.apache.axis.utils.BeanPropertyDescriptor.log isn't final but should be MS: org.apache.axis.utils.BeanUtils.log isn't final but should be EI: org.apache.axis.utils.CLArgsParser.getUnparsedArgs() may expose internal representation by returning org.apache.axis.utils.CLArgsParser.m_unparsedArgs MS: org.apache.axis.utils.DefaultEntityResolver.log isn't final but should be DE: org.apache.axis.utils.FieldPropertyDescriptor.<init>(String,java.lang.reflect.Field) might ignore java.lang.Exception MS: org.apache.axis.utils.JavaUtils.log isn't final but should be MS: org.apache.axis.utils.NSStack.log isn't final but should be MS: org.apache.axis.utils.Options.log isn't final but should be MS: org.apache.axis.utils.SessionUtils.digest should be package protected MS: org.apache.axis.utils.SessionUtils.random should be package protected MS: org.apache.axis.utils.SessionUtils.algorithm isn't final but should be MS: org.apache.axis.utils.SessionUtils.log isn't final but should be MS: org.apache.axis.utils.SessionUtils.randomClass isn't final but should be MS: org.apache.axis.utils.WSDLUtils.log isn't final but should be Dm: org.apache.axis.utils.XMLUtils.<clinit>() invokes dubious new String(String) constructor; just use the argument MS: org.apache.axis.utils.XMLUtils.log isn't final but should be MS: org.apache.axis.utils.XMLUtils$ParserErrorHandler.log isn't final but should be MS: org.apache.axis.utils.bytecode.ParamNameExtractor.log isn't final but should be UrF: Unread field: org.apache.axis.utils.bytecode.ParamReader$MethodInfo.maxLocals EI: org.apache.axis.utils.cache.JavaMethod.getMethod() may expose internal representation by returning org.apache.axis.utils.cache.JavaMethod.methods Se: org.apache.axis.utils.tcpmon$AdminPage is Serializable; consider declaring a serialVersionUID NN: Naked notify in org.apache.axis.utils.tcpmon$Connection.wakeUp() UrF: Unread field: org.apache.axis.utils.tcpmon$Connection.active UrF: Unread field: org.apache.axis.utils.tcpmon$Connection.clientThread UrF: Unread field: org.apache.axis.utils.tcpmon$Connection.serverThread UW: Unconditional wait in org.apache.axis.utils.tcpmon$Connection.run() Dm: org.apache.axis.utils.tcpmon$Listener.save() invokes dubious new String(String) constructor; just use the argument DE: org.apache.axis.utils.tcpmon$NumberField.getValue(int) might ignore java.lang.NumberFormatException SIC: Should org.apache.axis.utils.tcpmon$SocketRR be a _static_ inner class? SIC: Should org.apache.axis.wsdl.SkeletonImpl$MetaInfo be a _static_ inner class? MS: org.apache.axis.wsdl.WSDL2Java.options should be package protected EI: org.apache.axis.wsdl.fromJava.Emitter.getExtraClasses() may expose internal representation by returning org.apache.axis.wsdl.fromJava.Emitter.extraClasses MS: org.apache.axis.wsdl.fromJava.Emitter.standardTypes isn't final but should be MS: org.apache.axis.wsdl.fromJava.Types.log isn't final but should be UrF: Unread field: org.apache.axis.wsdl.fromJava.Types.schemaUniqueElementNames UrF: Unread field: org.apache.axis.wsdl.fromJava.Types.wrapperMap SIC: Should org.apache.axis.wsdl.gen.NoopFactory$1 be a _static_ inner class? DE: org.apache.axis.wsdl.gen.WSDL2.checkForAuthInfo(String) might ignore java.net.MalformedURLException SIC: Should org.apache.axis.wsdl.toJava.Emitter$1 be a _static_ inner class? SIC: Should org.apache.axis.wsdl.toJava.Emitter$2 be a _static_ inner class? SIC: Should org.apache.axis.wsdl.toJava.GeneratedFileInfo$Entry be a _static_ inner class? MS: org.apache.axis.wsdl.toJava.JavaBindingWriter.INTERFACE_NAME isn't final but should be DE: org.apache.axis.wsdl.toJava.JavaGeneratorFactory.setFaultContext(org.apache.axis.wsdl.symbolTable.FaultInfo,org.apache.axis.wsdl.symbolTable.SymbolTable) might ignore java.io.IOException Dm: org.apache.axis.wsdl.toJava.JavaGeneratorFactory.determineIfHoldersNeeded(org.apache.axis.wsdl.symbolTable.SymbolTable) invokes dubious Boolean constructor; use Boolean.valueOf(...) instead Dm: org.apache.axis.wsdl.toJava.JavaGeneratorFactory.setFaultContext(org.apache.axis.wsdl.symbolTable.FaultInfo,org.apache.axis.wsdl.symbolTable.SymbolTable) invokes dubious Boolean constructor; use Boolean.valueOf(...) instead MS: org.apache.axis.wsdl.toJava.JavaGeneratorFactory.COMPLEX_TYPE_FAULT isn't final but should be MS: org.apache.axis.wsdl.toJava.JavaGeneratorFactory.EXCEPTION_CLASS_NAME isn't final but should be MS: org.apache.axis.wsdl.toJava.JavaGeneratorFactory.EXCEPTION_DATA_TYPE isn't final but should be SIC: Should org.apache.axis.wsdl.toJava.JavaGeneratorFactory$1 be a _static_ inner class?
