<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to patches</title><link>https://sourceforge.net/p/coverlipse/patches/</link><description>Recent changes to patches</description><atom:link href="https://sourceforge.net/p/coverlipse/patches/feed.rss" rel="self"/><language>en</language><lastBuildDate>Thu, 05 Oct 2006 22:26:14 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/coverlipse/patches/feed.rss" rel="self" type="application/rss+xml"/><item><title>fix for compilation error of runtime plugin in CVS</title><link>https://sourceforge.net/p/coverlipse/patches/7/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;net.sf.coverlipse.runtime.init.SerializedMethodUtil&lt;br /&gt;
compilation fails due to unresolved&lt;br /&gt;
org.eclipse.core.resources.IFile import.&lt;/p&gt;
&lt;p&gt;Solution - add  org.eclipse.core.resources plugin to&lt;br /&gt;
the dependencies. Patch does just that.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Rafal Krzewski</dc:creator><pubDate>Thu, 05 Oct 2006 22:26:14 -0000</pubDate><guid isPermaLink="false">https://sourceforge.net64f4a174e2daee1bba721cdef7af6d65e39b1624</guid></item><item><title>fix for trailing NOP instrumetiation problem</title><link>https://sourceforge.net/p/coverlipse/patches/6/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;I am using Coverlipse to monitor tests coverage in an&lt;br /&gt;
AspectJ enabled project (with quite promising results).&lt;br /&gt;
I encountered a problem with&lt;br /&gt;
BasicBlockIdentifier.insertBlockDelimiters method&lt;br /&gt;
bailing out on an AspectJ modified method. The method&lt;br /&gt;
has a NOP instruction at the very end, after the return&lt;br /&gt;
instruction:&lt;/p&gt;
&lt;p&gt;0 aload_0&lt;br /&gt;
1 invokestatic #81&lt;br /&gt;
&amp;lt;net/java/dev/tap/WorkingCopy.ajc$perObjectBind&amp;gt;&lt;br /&gt;
4 aload_0&lt;br /&gt;
5 invokestatic #77&lt;br /&gt;
&amp;lt;net/java/dev/tap/WorkingCopy.hasAspect&amp;gt;&lt;br /&gt;
8 ifeq 25 (+17)&lt;br /&gt;
11 aload_0&lt;br /&gt;
12 aload_0&lt;br /&gt;
13 invokestatic #65 &amp;lt;net/java/dev/tap/WorkingCopy.aspectOf&amp;gt;&lt;br /&gt;
16 aload_0&lt;br /&gt;
17 aconst_null&lt;br /&gt;
18 invokestatic #69&lt;br /&gt;
&amp;lt;net/java/dev/tap/TestObject.getState_aroundBody1$advice&amp;gt;&lt;br /&gt;
21 checkcast #71 &amp;lt;java/lang/String&amp;gt;&lt;br /&gt;
24 areturn&lt;br /&gt;
25 aload_0&lt;br /&gt;
26 invokestatic #73&lt;br /&gt;
&amp;lt;net/java/dev/tap/TestObject.getState_aroundBody0&amp;gt;&lt;br /&gt;
29 areturn&lt;br /&gt;
30 nop&lt;/p&gt;
&lt;p&gt;Instrumenting this method fails with: &lt;/p&gt;
&lt;p&gt;net.sf.coverlipse.runtime.recording.CoverlipseRecordingException:&lt;br /&gt;
NullPointerException when trying to insert block&lt;br /&gt;
delimiters to method getState in class&lt;br /&gt;
net.java.dev.tap.TestObject&lt;br /&gt;
at&lt;br /&gt;
net.sf.coverlipse.runtime.recording.ByteCodeModifyer.weaveCallbacksToMethod(ByteCodeModifyer.java:103)&lt;br /&gt;
at&lt;br /&gt;
net.sf.coverlipse.runtime.recording.ByteCodeModifyer.weaveCallbacks(ByteCodeModifyer.java:70)&lt;br /&gt;
at&lt;br /&gt;
net.sf.coverlipse.runtime.junit.CoverageClassLoader.modifyClass(CoverageClassLoader.java:53)&lt;br /&gt;
at&lt;br /&gt;
de.uka.ipd.coverage.org.apache.bcel.util.ClassLoader.loadClass(ClassLoader.java:160)&lt;br /&gt;
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)&lt;br /&gt;
at&lt;br /&gt;
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)&lt;br /&gt;
at&lt;br /&gt;
net.java.dev.tap.ConcurrencyTest$1.runInternal(ConcurrencyTest.java:10)&lt;br /&gt;
at&lt;br /&gt;
net.java.dev.tap.util.CoordinatedRunnable.run(CoordinatedRunnable.java:36)&lt;br /&gt;
at&lt;br /&gt;
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)&lt;br /&gt;
at&lt;br /&gt;
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)&lt;br /&gt;
at java.lang.Thread.run(Thread.java:595)&lt;br /&gt;
Caused by: java.lang.NullPointerException&lt;br /&gt;
at&lt;br /&gt;
net.sf.coverlipse.runtime.recording.BasicBlockIdentifyer.insertBlockDelimiters(BasicBlockIdentifyer.java:226)&lt;br /&gt;
at&lt;br /&gt;
net.sf.coverlipse.runtime.recording.ByteCodeModifyer.weaveCallbacksToMethod(ByteCodeModifyer.java:100)&lt;br /&gt;
... 10 more&lt;/p&gt;
&lt;p&gt;I managed to get around this problem by inserting a&lt;br /&gt;
simple null-check in the instruction iteration loop,&lt;br /&gt;
which allowed me to move along with my tests. I am not&lt;br /&gt;
sure if this is the correct way of putting delimiters&lt;br /&gt;
near this weird NOP, but I suspect that it does not&lt;br /&gt;
matter much because it is unreachable anyway.&lt;/p&gt;
&lt;p&gt;Contact me (rafal at caltha.pl) if you would like to&lt;br /&gt;
set up a test workspace with TAP - the toy project I&lt;br /&gt;
use Coverlipse on.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Rafal Krzewski</dc:creator><pubDate>Thu, 05 Oct 2006 22:19:19 -0000</pubDate><guid isPermaLink="false">https://sourceforge.net7320c5aeb8fba556496d26aefdd174e15e26c9fc</guid></item><item><title>fix for URL-encoded paths issue</title><link>https://sourceforge.net/p/coverlipse/patches/5/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;I am running Eclipse on MS Windows XP. When I first&lt;br /&gt;
attempted to use Coverlipse on project, clicking on&lt;br /&gt;
classes in in the Coverage view did nothing - the&lt;br /&gt;
editors would not open or get focus. My investigation&lt;br /&gt;
showed that  the File object embedded in&lt;br /&gt;
ClassFileLocation contains the path that is&lt;br /&gt;
URL-encoded, along the lines of&lt;br /&gt;
C:\Documents%20and%20Settings\rafal\My%20Documents\...&lt;/p&gt;
&lt;p&gt;I must admit that I did not dig into the cause _why_&lt;br /&gt;
those paths are enconded this way. I just decoded the&lt;br /&gt;
path using java.net.URLDecoder and used Coverlipse&lt;br /&gt;
happily everafter. The attached patch does this trick.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Rafal Krzewski</dc:creator><pubDate>Wed, 04 Oct 2006 21:09:38 -0000</pubDate><guid isPermaLink="false">https://sourceforge.netc0822500bb19b03b15b120bd66c194a1291e673b</guid></item><item><title>fix for failed coverage evaluation for a synthetic method</title><link>https://sourceforge.net/p/coverlipse/patches/4/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Here's what happens when Coverlipse tries to evaluate&lt;br /&gt;
coverage for a synthetic glue method that was injected&lt;br /&gt;
by AspectJ:&lt;/p&gt;
&lt;p&gt;java.lang.NullPointerException&lt;br /&gt;
at&lt;br /&gt;
de.uka.ipd.coverage.natures.BlockCoverageNature.evaluateCompleteCoverage(BlockCoverageNature.java:67)&lt;br /&gt;
at&lt;br /&gt;
de.uka.ipd.coverage.natures.TestedClassEvaluation.call(TestedClassEvaluation.java:33)&lt;br /&gt;
at&lt;br /&gt;
de.uka.ipd.coverage.natures.TestedClassEvaluation.run(TestedClassEvaluation.java:50)&lt;/p&gt;
&lt;p&gt;The method does not have a LineNumberTable, which is&lt;br /&gt;
fine because it is not compiled from source. The&lt;br /&gt;
attached part skips the evaluation for that method.&lt;br /&gt;
This is correct behaviour because the goal is checking&lt;br /&gt;
coverage of the sources (including AJ advice bodies)&lt;br /&gt;
and not the glue methods that are injected at bytecode&lt;br /&gt;
level.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Rafal Krzewski</dc:creator><pubDate>Wed, 04 Oct 2006 20:35:13 -0000</pubDate><guid isPermaLink="false">https://sourceforge.neta21183b1a7267f680c77ce9344138f499a03d5f5</guid></item><item><title>fix for an exception on instrumentiation attempt</title><link>https://sourceforge.net/p/coverlipse/patches/3/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Coverlipse is attempting to instrument a class that is&lt;br /&gt;
loaded from a jar - .class file for it is not available&lt;br /&gt;
in the workspace. This causes the following exception&lt;br /&gt;
to be thrown:&lt;/p&gt;
&lt;p&gt;java.lang.IllegalArgumentException: cannot find a&lt;br /&gt;
resource for org\aspectj\lang\NoAspectBoundException.class&lt;br /&gt;
at&lt;br /&gt;
net.sf.coverlipse.runtime.recording.RuntimeClassFileLocator.createFileFromRelativeLocation(RuntimeClassFileLocator.java:75)&lt;br /&gt;
at&lt;br /&gt;
net.sf.coverlipse.runtime.recording.RuntimeClassFileLocator.createFileFor(RuntimeClassFileLocator.java:67)&lt;br /&gt;
at&lt;br /&gt;
net.sf.coverlipse.runtime.recording.RuntimeClassFileLocator.&amp;lt;init&amp;gt;(RuntimeClassFileLocator.java:34)&lt;br /&gt;
at&lt;br /&gt;
net.sf.coverlipse.runtime.junit.CoverageClassLoader.modifyClass(CoverageClassLoader.java:52)&lt;br /&gt;
at&lt;br /&gt;
de.uka.ipd.coverage.org.apache.bcel.util.ClassLoader.loadClass(ClassLoader.java:160)&lt;/p&gt;
&lt;p&gt;I was able to work around this issue by replacing the&lt;br /&gt;
throw in createFileFromRelativeLocation by a return&lt;br /&gt;
null statement. This allows the instrumentiation to&lt;br /&gt;
proceed. Of course coverage infromation for the class&lt;br /&gt;
from the jar is not available, but I am not intersested&lt;br /&gt;
in it anyway.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Rafal Krzewski</dc:creator><pubDate>Tue, 03 Oct 2006 21:45:07 -0000</pubDate><guid isPermaLink="false">https://sourceforge.neta29491e4aaf41665a6b44fd959b5902e0d191955</guid></item><item><title>fix for thread safety issue in BCEL</title><link>https://sourceforge.net/p/coverlipse/patches/2/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;While running tests that involved multiple threads I&lt;br /&gt;
was getting a score of weird exceptions from Coverlipse&lt;br /&gt;
saying that my methods had strange truncated&lt;br /&gt;
signatures. Upon closer examination it turned out that&lt;br /&gt;
BCEL Util and Type classes are not thread safe. Each&lt;br /&gt;
one of them uses private static int consumed_chars;&lt;br /&gt;
field that is used internally by a few methods. What&lt;br /&gt;
shortsightedness...&lt;/p&gt;
&lt;p&gt;The attached patch fixes the problem by putting&lt;br /&gt;
synchronized keyword on each of the methods accessing&lt;br /&gt;
those fields. The methods are themselves static so&lt;br /&gt;
synchronized keyword provides a class wide lock thus&lt;br /&gt;
effectively protecting the fields.&lt;/p&gt;
&lt;p&gt;This isssue should be reported upstream to BCEL if it&lt;br /&gt;
is still being develpoped. Otherwise we'll have to&lt;br /&gt;
reapply the fix each time BCEL sources are upgraded&lt;br /&gt;
within Coverlipse repository.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Rafal Krzewski</dc:creator><pubDate>Tue, 03 Oct 2006 20:27:19 -0000</pubDate><guid isPermaLink="false">https://sourceforge.nete366ca64680726d62cb2796e21542bd11ef80d73</guid></item><item><title>testcase and fix for bug 1230280 (generics support)</title><link>https://sourceforge.net/p/coverlipse/patches/1/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;a test case for&lt;br /&gt;
&lt;a href="http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1230280&amp;amp;group_id=139107&amp;amp;atid=743505"&gt;http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1230280&amp;amp;group_id=139107&amp;amp;atid=743505&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Rafal Krzewski</dc:creator><pubDate>Mon, 11 Jul 2005 12:46:58 -0000</pubDate><guid isPermaLink="false">https://sourceforge.netf85e93df4716a0c4fe2f750a73a4999d962ce461</guid></item></channel></rss>