jesperpedersen / tattletale Goto Github PK
View Code? Open in Web Editor NEWTattletale is a tool that can help you get an overview of the project you are working on or a product that you depend on.
Home Page: http://www.jboss.org/tattletale/
Tattletale is a tool that can help you get an overview of the project you are working on or a product that you depend on.
Home Page: http://www.jboss.org/tattletale/
Sometimes an artifact itself do not have duplicated classes, but once deployed its environment can provide classes already present on it.
I'm thinking on check a BOM like https://mvnrepository.com/artifact/org.jboss.bom/jboss-eap-javaee7/7.1.5.GA
against an artifact and detect such duplicities
Something like:
java -Xmx512m -jar tattletale-eap6.jar yourapplication.war -bom "org.jboss.bom/jboss-eap-javaee7/7.1.5.GA" report
java.io.IOException: invalid constant type: 18
at javassist.bytecode.ConstPool.readOne(ConstPool.java:1090)
at javassist.bytecode.ConstPool.read(ConstPool.java:1033)
at javassist.bytecode.ConstPool.(ConstPool.java:149)
at javassist.bytecode.ClassFile.read(ClassFile.java:764)
at javassist.bytecode.ClassFile.(ClassFile.java:108)
at javassist.CtClassType.(CtClassType.java:94)
at javassist.ClassPool.makeClass(ClassPool.java:717)
at javassist.ClassPool.makeClass(ClassPool.java:695)
at org.jboss.tattletale.analyzers.AbstractScanner.scanClasses(AbstractScanner.java:179)
at org.jboss.tattletale.analyzers.JarScanner.scan(JarScanner.java:106)
at org.jboss.tattletale.Main.execute(Main.java:612)
at org.jboss.tattletale.Main.main(Main.java:1099)
This can be fixed by building Tattletale with <property name="version.javassist" value="3.19.0-GA"/>
in the build.xml.
Expected
That TattleReport run without producing errors, or if an error does occur that it explains what the error is. No unhandled exceptions are expected -- TattleReport is expected to gracefully handle malformed input and similar.
Actual
The following stack trace is shown in our build system:
[ant:tattletaleReport] java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long
[ant:tattletaleReport] at org.jboss.tattletale.analyzers.AbstractScanner.scanClasses(AbstractScanner.java:190)
[ant:tattletaleReport] at org.jboss.tattletale.analyzers.JarScanner.scan(JarScanner.java:106)
[ant:tattletaleReport] at org.jboss.tattletale.Main.execute(Main.java:612)
[ant:tattletaleReport] at org.jboss.tattletale.ant.ReportTask.execute(ReportTask.java:310)
[ant:tattletaleReport] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
[ant:tattletaleReport] at sun.reflect.GeneratedMethodAccessor325.invoke(Unknown Source)
[ant:tattletaleReport] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[ant:tattletaleReport] at java.lang.reflect.Method.invoke(Method.java:498)
[ant:tattletaleReport] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
... snip ...
Repro
Notes
Looking at the code we see the following: https://github.com/jesperpedersen/tattletale/blob/master/src/main/java/org/jboss/tattletale/analyzers/AbstractScanner.java#L190
Long serialVersionUID = null;
try
{
CtField field = ctClz.getField("serialVersionUID");
serialVersionUID = (Long) field.getConstantValue();
}
catch (NotFoundException nfe)
{
// Ignore - not serializable
}
Therefore it seems likely that the serialVersionUID's value is an Integer, and hence why it's having trouble casting this to a Long.
to convert to Maven (pom based) project model, who's blessing is needed ?
Is it possible to have an XML report?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.