You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Jeffrey Starker (JIRA)" <ji...@apache.org> on 2012/11/30 18:46:01 UTC

[jira] [Reopened] (AMQ-4131) Duplicated classes in activemq-core and activemq-protobuf artifacts

     [ https://issues.apache.org/jira/browse/AMQ-4131?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jeffrey Starker reopened AMQ-4131:
----------------------------------


Hello, not to be a pain, but I think there is a duplication. Here are more steps to show you what I am talking about. Sorry for being unclear before.
Steps:
Download the activemq-core-5.7.0.jar and activemq-protobuf-1.1.jar via Maven. Using the central maven repository. You can also find them via the web at: http://search.maven.org/remotecontent?filepath=org/apache/activemq/activemq-core/5.7.0/activemq-core-5.7.0.jar and http://search.maven.org/remotecontent?filepath=org/apache/activemq/protobuf/activemq-protobuf/1.1/activemq-protobuf-1.1.jar respectively.
Expand the jar files in to a directory:
jar -xvf activemq-core-5.7.0.jar
jar -xvf activemq-protobuf-1.1.jar
You will notice that the org.apache.activemq.protobuf package is also included in activemq-core-5.7.0.jar file when expanded.
After extracting the two jar files, you can do a diff on any file I listed above in the previous comment to show they are identical:
diff ${directory_of_core_jar_extract}/org/apache/activemq/protobuf/PBMessage.class ${directory_of_protobuf_jar_extract}/org/apache/activemq/protobuf/PBMessage.class
                
> Duplicated classes in activemq-core and activemq-protobuf artifacts
> -------------------------------------------------------------------
>
>                 Key: AMQ-4131
>                 URL: https://issues.apache.org/jira/browse/AMQ-4131
>             Project: ActiveMQ
>          Issue Type: Bug
>    Affects Versions: 5.7.0
>         Environment: Maven
>            Reporter: Jeffrey Starker
>            Priority: Minor
>
> When adding activemq-core as a dependency in a java maven project, the activemq-core pulls in a dependency for activemq-protobuf. However, the activemq-core artifact duplicates all of the classes located in the activemq-protobuf.
> Doing a diff between the two jars for activemq-spring-5.7.0.jar and activemq-protobuf-1.1.jar, the following classes are duplicated:
> {noformat}
> [WARNING] Found duplicate classes in [org.apache.activemq:activemq-core:5.7.0,org.apache.activemq.protobuf:activemq-protobuf:1.1] :
> [WARNING]   org.apache.activemq.protobuf.AsciiBuffer
> [WARNING]   org.apache.activemq.protobuf.BaseMessage
> [WARNING]   org.apache.activemq.protobuf.Buffer
> [WARNING]   org.apache.activemq.protobuf.BufferInputStream
> [WARNING]   org.apache.activemq.protobuf.BufferOutputStream
> [WARNING]   org.apache.activemq.protobuf.CodedInputStream
> [WARNING]   org.apache.activemq.protobuf.CodedOutputStream
> [WARNING]   org.apache.activemq.protobuf.DeferredDecodeMessage
> [WARNING]   org.apache.activemq.protobuf.InvalidProtocolBufferException
> [WARNING]   org.apache.activemq.protobuf.Message
> [WARNING]   org.apache.activemq.protobuf.MessageBuffer
> [WARNING]   org.apache.activemq.protobuf.MessageBufferSupport
> [WARNING]   org.apache.activemq.protobuf.PBMessage
> [WARNING]   org.apache.activemq.protobuf.UTF8Buffer
> [WARNING]   org.apache.activemq.protobuf.UninitializedMessageException
> [WARNING]   org.apache.activemq.protobuf.WireFormat
> [WARNING]   org.apache.activemq.protobuf.compiler.AltJavaGenerator
> [WARNING]   org.apache.activemq.protobuf.compiler.CommandLineSupport
> [WARNING]   org.apache.activemq.protobuf.compiler.CompilerException
> [WARNING]   org.apache.activemq.protobuf.compiler.EnumDescriptor
> [WARNING]   org.apache.activemq.protobuf.compiler.EnumFieldDescriptor
> [WARNING]   org.apache.activemq.protobuf.compiler.ExtensionsDescriptor
> [WARNING]   org.apache.activemq.protobuf.compiler.FieldDescriptor
> [WARNING]   org.apache.activemq.protobuf.compiler.IntrospectionSupport
> [WARNING]   org.apache.activemq.protobuf.compiler.JavaGenerator
> [WARNING]   org.apache.activemq.protobuf.compiler.MessageDescriptor
> [WARNING]   org.apache.activemq.protobuf.compiler.MethodDescriptor
> [WARNING]   org.apache.activemq.protobuf.compiler.OptionDescriptor
> [WARNING]   org.apache.activemq.protobuf.compiler.ParserSupport
> [WARNING]   org.apache.activemq.protobuf.compiler.ProtoDescriptor
> [WARNING]   org.apache.activemq.protobuf.compiler.ProtoMojo
> [WARNING]   org.apache.activemq.protobuf.compiler.ServiceDescriptor
> [WARNING]   org.apache.activemq.protobuf.compiler.TextFormat
> [WARNING]   org.apache.activemq.protobuf.compiler.TypeDescriptor
> [WARNING]   org.apache.activemq.protobuf.compiler.parser.ParseException
> [WARNING]   org.apache.activemq.protobuf.compiler.parser.ProtoParser
> [WARNING]   org.apache.activemq.protobuf.compiler.parser.ProtoParserConstants
> [WARNING]   org.apache.activemq.protobuf.compiler.parser.ProtoParserTokenManager
> [WARNING]   org.apache.activemq.protobuf.compiler.parser.SimpleCharStream
> [WARNING]   org.apache.activemq.protobuf.compiler.parser.Token
> [WARNING]   org.apache.activemq.protobuf.compiler.parser.TokenMgrError
> {noformat}
> activemq-core is currently packaged incorrectly because of this. This will cause classloader issues as these classes are duplicated. However, luckily the classes are identical, but if something changes down the road it could cause unexpected behavior.
> Current workaround:
> {code:xml}
> <dependency>
> 	<groupId>org.apache.activemq</groupId>
> 	<artifactId>activemq-core</artifactId>
> 	<version>5.7.0</version>
> 	<exclusions>
> 		<exclusion>
> 			<artifactId>activemq-protobuf</artifactId>
> 		 	<groupId>org.apache.activemq.protobuf</groupId>
> 		</exclusion>
> 	</exclusions>
> </dependency>
> {code}
> Suggested fix is to remove the duplicated classes from activemq-core and instead bring them in through the activemq-protobuf dependency.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira