From owner-freebsd-java@FreeBSD.ORG Wed Jun 2 12:43:04 2004 Return-Path: Delivered-To: freebsd-java@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7311816A4CE for ; Wed, 2 Jun 2004 12:43:04 -0700 (PDT) Received: from amsfep14-int.chello.nl (amsfep14-int.chello.nl [213.46.243.22]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5192443D4C for ; Wed, 2 Jun 2004 12:43:03 -0700 (PDT) (envelope-from ronald@cs.vu.nl) Received: from laptop.thuis.klop.ws ([24.132.246.115]) by amsfep14-int.chello.nlSMTP <20040602194301.XUKR2698.amsfep14-int.chello.nl@laptop.thuis.klop.ws> for ; Wed, 2 Jun 2004 21:43:01 +0200 Received: (qmail 1441 invoked from network); 2 Jun 2004 19:43:01 -0000 Received: from unknown (HELO guido.thuis.klop.ws) (192.168.0.2) by 192.168.0.16 with SMTP; 2 Jun 2004 19:43:01 -0000 Received: (qmail 2695 invoked from network); 2 Jun 2004 19:43:00 -0000 Received: from localhost.thuis.klop.ws (HELO outgoing.local) (127.0.0.1) by localhost.thuis.klop.ws with SMTP; 2 Jun 2004 19:43:00 -0000 Date: Wed, 02 Jun 2004 21:42:59 +0200 To: "Daniel Fisher" , java@freebsd.org References: <20040601154601.0869f5b4@psych.iad.vt.edu> <40BD7C06.5050205@noc.ntua.gr> <20040602095245.48cb3c44@psych.iad.vt.edu> From: "Ronald Klop" Organization: Vrije Universiteit, Amsterdam, The Netherlands Content-Type: text/plain; format=flowed; delsp=yes; charset=iso-8859-1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-ID: In-Reply-To: <20040602095245.48cb3c44@psych.iad.vt.edu> User-Agent: Opera M2/7.50 (FreeBSD, build 673) Subject: Re: possible threading problem X-BeenThere: freebsd-java@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting Java to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jun 2004 19:43:04 -0000 On Wed, 2 Jun 2004 09:52:45 -0400, Daniel Fisher wrote: > On Wed, 02 Jun 2004 10:04:38 +0300 > Panagiotis Astithas wrote: > >> Daniel Fisher wrote: >> > I'm experiencing a weird threading problem with jdk-1.4.2p6_3 that I >> don't >> > see on Linux. >> > It looks like the BSD JDK is not honoring sychronize statements. >> > Has anyone seen this before? >> > If not, who should I send sample code to? >> >> Um, the list? >> -- >> Panagiotis Astithas > > Alrighty then.... > attached is a tarball with the sample classes in it. > Untar and cd into the directory. > Execute: java -jar prop.jar > These classes monitor the main.properties file and echo the changes to > stdout. > Edit main.properties while the java job is running. > FreeBSD JVM throws an InterruptedIOException, Linux JVM does not throw an > exception. Add debugging like, so you can make sure synchronized is (not) working. synchronized (a) { System.out.println("In a 1"); ... System.out.println("Out a 1"); } If I recompile your program I get other results after modifying the properties file. java.lang.NoClassDefFoundError: prop/PropEvent at prop.PropSingleton.removeProperties(PropSingleton.java:74) at prop.PropMonitor.run(PropMonitor.java:71) at java.lang.Thread.run(Thread.java:534) PropMonitor interrupts itself. Why? it's useless. By the way if you don't do this your program works. Offtopic: In PropMonitor you catch Exception. So you will mis all other possible error messages from java. If this is not just a test class I would rewrite it. Why this: try { throw Exception(); } catch (Exception) { break; } You can also just do break in stead of the exception. And you can remove all the interrupt/interrupted calls. Only keep the boolean run. And even nicer than the break is setting run = false to end the while. But only removing the stopMonitor call from PropMonitor.run() will also make it work. :-) Ronald. -- Ronald Klop Vrije Universiteit, Amsterdam, The Netherlands