Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!goblin2!goblin.stu.neva.ru!feeder1.cambriumusenet.nl!feed.tweaknews.nl!postnews.google.com!c26g2000vbq.googlegroups.com!not-for-mail From: FutureScalper Newsgroups: comp.lang.java.programmer Subject: Re: Mixed Code java.lang.SecurityException Date: Mon, 23 May 2011 11:00:10 -0700 (PDT) Organization: http://groups.google.com Lines: 141 Message-ID: <3cba3633-d90e-411f-a052-dd92bc0ee30e@c26g2000vbq.googlegroups.com> References: <051b76f3-6ee6-4d0b-9f57-dc96062c9fe0@c41g2000yqm.googlegroups.com> NNTP-Posting-Host: 66.57.44.21 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: posting.google.com 1306173610 4915 127.0.0.1 (23 May 2011 18:00:10 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Mon, 23 May 2011 18:00:10 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: c26g2000vbq.googlegroups.com; posting-host=66.57.44.21; posting-account=juZfSwkAAADlJAp43jiihM9v9z4W3VXw User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.68 Safari/534.24,gzip(gfe) Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:4476 http://bugs.sun.com/view_bug.do?bug_id=3D6805618 appears to be a well known issue, not sure of the resolution. I don't see a resolution I can implement myself. On May 23, 1:47=A0pm, FutureScalper wrote: > Exception in thread "AWT-EventQueue-0" java.lang.SecurityException: > class "com.twc.trader.SupportResistanceDialog$1"'s signer information > does not match signer information of other classes in the same package > > This emerges at random intervals during runtime, and cannot be > predicted. =A0Once these exceptions begin to be thrown there is no > recovery. =A0The class in question is in my own jars, uniformly signed > using the Java 6 Update 25 JDK jarsigner. > > I had previously frozen my users on Java 6 Update 17 because the > platform apparently had this bug. =A0After a few days of testing on > Update 25, I thought everything was OK, and now the Java 6 Update 25 > platform is throwing Security exceptions again !!! =A0Once it starts > throwing them, it never stops and I have to shut down my app. > > Problem is this runs fine, for hours, even days, and then the Java > runtime starts throwing these exceptions, and there's no way for my > app to recover. > > I am running a complex Swing-based multi threaded app, and the errors > typically occur on inner GUI related classes, as in the sample below. > > All of this code is fully debugged tested, for years, and should run > fine which is why I think it's an error in the Java platform itself. > > I've used the Java 6 Update 25 JDK jarsigner on my jars. > > All of the jars are cached locally using Java Web Start. =A0They are > also running under the 32-bit Java Server VM on Windows. > > C:\Windows\Sun\Java\Deployment contains the following two files, > deployment.config and deployment.properties which I thought was a > system-wide suppression of this mixed code check: > > (deployment.config) > deployment.system.config=3Dfile:/C:/windows/Sun/Java/Deployment/ > deployment.properties > deployment.system.config.mandatory=3Dtrue > > (deployment.properties) > deployment.security.mixcode=3DDISABLE > > I have noticed that in the Java Console, after a long time, the system > will periodically read the Certs again. =A0I think this re-reading of > the Certs is responsible for this error condition. > > This is run under Web Start, I'd like to emphasize and the code is > perfect; something about the runtime is causing this problem at random > intervals into execution. > > The only thing I can do is to force my users back to Java 6 Update 17, > unless someone would kindly point me in the direction of a solution. > > The next step is to submit a bug report I guess, but it is difficult > to reproduce. =A0Thanks in advance ! > > Exception in thread "AWT-EventQueue-0" java.lang.SecurityException: > class "com.twc.trader.SupportResistanceDialog$1"'s signer information > does not match signer information of other classes in the same package > =A0 =A0 =A0 =A0 at java.lang.ClassLoader.checkCerts(Unknown Source) > =A0 =A0 =A0 =A0 at java.lang.ClassLoader.preDefineClass(Unknown Source) > =A0 =A0 =A0 =A0 at java.lang.ClassLoader.defineClassCond(Unknown Source) > =A0 =A0 =A0 =A0 at java.lang.ClassLoader.defineClass(Unknown Source) > =A0 =A0 =A0 =A0 at java.security.SecureClassLoader.defineClass(Unknown So= urce) > =A0 =A0 =A0 =A0 at java.net.URLClassLoader.defineClass(Unknown Source) > =A0 =A0 =A0 =A0 at java.net.URLClassLoader.access$000(Unknown Source) > =A0 =A0 =A0 =A0 at java.net.URLClassLoader$1.run(Unknown Source) > =A0 =A0 =A0 =A0 at java.security.AccessController.doPrivileged(Native Met= hod) > =A0 =A0 =A0 =A0 at java.net.URLClassLoader.findClass(Unknown Source) > =A0 =A0 =A0 =A0 at com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source) > =A0 =A0 =A0 =A0 at java.lang.ClassLoader.loadClass(Unknown Source) > =A0 =A0 =A0 =A0 at java.lang.ClassLoader.loadClass(Unknown Source) > =A0 =A0 =A0 =A0 at com.twc.trader.SupportResistanceDialog.(Unknown = Source) > =A0 =A0 =A0 =A0 at com.twc.trader.Core.getSupportResistanceDialog(Unknown= Source) > =A0 =A0 =A0 =A0 at com.twc.trader.TickAnalyzer.update(Unknown Source) > =A0 =A0 =A0 =A0 at com.twc.replay.PriceOverview.notifyObservers(Unknown S= ource) > =A0 =A0 =A0 =A0 at com.twc.replay.PriceOverview$1.chartMouseClicked(Unkno= wn Source) > =A0 =A0 =A0 =A0 at org.jfree.chart.ChartPanel.mouseClicked(Unknown Source= ) > =A0 =A0 =A0 =A0 at java.awt.Component.processMouseEvent(Unknown Source) > =A0 =A0 =A0 =A0 at javax.swing.JComponent.processMouseEvent(Unknown Sourc= e) > =A0 =A0 =A0 =A0 at java.awt.Component.processEvent(Unknown Source) > =A0 =A0 =A0 =A0 at java.awt.Container.processEvent(Unknown Source) > =A0 =A0 =A0 =A0 at java.awt.Component.dispatchEventImpl(Unknown Source) > =A0 =A0 =A0 =A0 at java.awt.Container.dispatchEventImpl(Unknown Source) > =A0 =A0 =A0 =A0 at java.awt.Component.dispatchEvent(Unknown Source) > =A0 =A0 =A0 =A0 at java.awt.LightweightDispatcher.retargetMouseEvent(Unkn= own Source) > =A0 =A0 =A0 =A0 at java.awt.LightweightDispatcher.processMouseEvent(Unkno= wn Source) > =A0 =A0 =A0 =A0 at java.awt.LightweightDispatcher.dispatchEvent(Unknown S= ource) > =A0 =A0 =A0 =A0 at java.awt.Container.dispatchEventImpl(Unknown Source) > =A0 =A0 =A0 =A0 at java.awt.Window.dispatchEventImpl(Unknown Source) > =A0 =A0 =A0 =A0 at java.awt.Component.dispatchEvent(Unknown Source) > =A0 =A0 =A0 =A0 at java.awt.EventQueue.dispatchEventImpl(Unknown Source) > =A0 =A0 =A0 =A0 at java.awt.EventQueue.access$000(Unknown Source) > =A0 =A0 =A0 =A0 at java.awt.EventQueue$1.run(Unknown Source) > =A0 =A0 =A0 =A0 at java.awt.EventQueue$1.run(Unknown Source) > =A0 =A0 =A0 =A0 at java.security.AccessController.doPrivileged(Native Met= hod) > =A0 =A0 =A0 =A0 at java.security.AccessControlContext > $1.doIntersectionPrivilege(Unknown Source) > =A0 =A0 =A0 =A0 at java.security.AccessControlContext > $1.doIntersectionPrivilege(Unknown Source) > =A0 =A0 =A0 =A0 at java.awt.EventQueue$2.run(Unknown Source) > =A0 =A0 =A0 =A0 at java.awt.EventQueue$2.run(Unknown Source) > =A0 =A0 =A0 =A0 at java.security.AccessController.doPrivileged(Native Met= hod) > =A0 =A0 =A0 =A0 at java.security.AccessControlContext > $1.doIntersectionPrivilege(Unknown Source) > =A0 =A0 =A0 =A0 at java.awt.EventQueue.dispatchEvent(Unknown Source) > =A0 =A0 =A0 =A0 at java.awt.EventDispatchThread.pumpOneEventForFilters(Un= known > Source) > =A0 =A0 =A0 =A0 at java.awt.EventDispatchThread.pumpEventsForFilter(Unkno= wn Source) > =A0 =A0 =A0 =A0 at java.awt.EventDispatchThread.pumpEventsForHierarchy(Un= known > Source) > =A0 =A0 =A0 =A0 at java.awt.EventDispatchThread.pumpEvents(Unknown Source= ) > =A0 =A0 =A0 =A0 at java.awt.EventDispatchThread.pumpEvents(Unknown Source= ) > =A0 =A0 =A0 =A0 at java.awt.EventDispatchThread.run(Unknown Source)