[rfc][icedtea-web] Reproducer for PR920

Jiri Vanek jvanek at redhat.com
Tue Aug 21 04:15:54 PDT 2012


On 08/14/2012 05:30 PM, Adam Domurad wrote:
> On Tue, 2012-08-14 at 15:16 +0200, Jiri Vanek wrote:
>> On 07/06/2012 08:19 PM, Adam Domurad wrote:
>>> This reproducer encapsulates the problem behind PR920.
>>> A LinkageError occurs, complaining of duplicate class definition, when
>>> an extended class outside of a jar references a common class with its
>>> parent class. The common class attempts to load twice.
>> Thank you for this test, two nitpicks  below.

Sorry for keeping blocking it.If you decide to ignore my below comment then feel free to push. But 
as Custom reproducers are young and concept is not clear, I would recommend to think about it 
earlier rather then later.
.

diff --git a/tests/reproducers/custom/AppletExtendsFromOutsideJar/srcs/Makefile 
b/tests/reproducers/custom/AppletExtendsFromOutsideJar/srcs/Makefile
new file mode 100644
--- /dev/null
+++ b/tests/reproducers/custom/AppletExtendsFromOutsideJar/srcs/Makefile
@@ -0,0 +1,27 @@
+TESTNAME=AppletExtendsFromOutsideJar
+
+DEPLOY_DIR=$(JNLP_TESTS_SERVER_DEPLOYDIR)
+
+SRC_FILES=AppletReferenceInSameJar.java AppletReferenceOutOfJar.java Referenced.java
+JAR_FILES=AppletReferenceInSameJar.class Referenced.class
+OUTER_FILE=AppletReferenceOutOfJar.class
+
+JAVAC_CLASSPATH=$(JNLP_TESTS_ENGINE_DIR):$(NETX_DIR)/lib/classes.jar
+JAVAC=$(BOOT_DIR)/bin/javac
+JAR=$(BOOT_DIR)/bin/jar
+
+prepare-reproducer:
+	echo PREPARING REPRODUCER $(TESTNAME)
+	$(EXPORTED_JAVAC) -classpath $(JAVAC_CLASSPATH) $(SRC_FILES)
+	$(JAR) cvf $(TESTNAME).jar $(JAR_FILES)
+	cp $(OUTER_FILE) $(DEPLOY_DIR)/$(OUTER_FILE)
+	cp $(TESTNAME).jar $(DEPLOY_DIR)/$(TESTNAME).jar
+	echo PREPARED REPRODUCER $(TESTNAME)
+
+clean-reproducer:
+	echo CLEANING REPRODUCER $(TESTNAME)
+	rm -f $(OUTER_FILE)
+	rm -f $(JAR_FILES)
+	rm -f $(TESTNAME).jar
+	echo CLEANED REPRODUCER $(TESTNAME)
+

I must say I do not like this concept. Unless I'm wrong it is creating jars and classes in sources 
dirs. Then during clean it can cause accidentally loses of sources :(. My advice here will be to do 
the build in temp, then mv to deployditr or werever and then just delete in deploy dir.  And then in 
clean .. with some luck probably nothing?

Or at least to work wiht absolute paths so it will be clear where the work is happening.

What do you think?

If you want, push it as it is, but if you agree with me at least a bit, by push later you can fix 
this one and your last one perhaps??

J.



More information about the distro-pkg-dev mailing list