Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #4476

Re: Mixed Code java.lang.SecurityException

From FutureScalper <futurescalper@gmail.com>
Newsgroups comp.lang.java.programmer
Subject Re: Mixed Code java.lang.SecurityException
Date 2011-05-23 11:00 -0700
Organization http://groups.google.com
Message-ID <3cba3633-d90e-411f-a052-dd92bc0ee30e@c26g2000vbq.googlegroups.com> (permalink)
References <051b76f3-6ee6-4d0b-9f57-dc96062c9fe0@c41g2000yqm.googlegroups.com>

Show all headers | View raw


http://bugs.sun.com/view_bug.do?bug_id=6805618

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 pm, FutureScalper <futurescal...@gmail.com> 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.  Once these exceptions begin to be thrown there is no
> recovery.  The 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.  After 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 !!!  Once 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.  They 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=file:/C:/windows/Sun/Java/Deployment/
> deployment.properties
> deployment.system.config.mandatory=true
>
> (deployment.properties)
> deployment.security.mixcode=DISABLE
>
> I have noticed that in the Java Console, after a long time, the system
> will periodically read the Certs again.  I 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.  Thanks 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
>         at java.lang.ClassLoader.checkCerts(Unknown Source)
>         at java.lang.ClassLoader.preDefineClass(Unknown Source)
>         at java.lang.ClassLoader.defineClassCond(Unknown Source)
>         at java.lang.ClassLoader.defineClass(Unknown Source)
>         at java.security.SecureClassLoader.defineClass(Unknown Source)
>         at java.net.URLClassLoader.defineClass(Unknown Source)
>         at java.net.URLClassLoader.access$000(Unknown Source)
>         at java.net.URLClassLoader$1.run(Unknown Source)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.net.URLClassLoader.findClass(Unknown Source)
>         at com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source)
>         at java.lang.ClassLoader.loadClass(Unknown Source)
>         at java.lang.ClassLoader.loadClass(Unknown Source)
>         at com.twc.trader.SupportResistanceDialog.<init>(Unknown Source)
>         at com.twc.trader.Core.getSupportResistanceDialog(Unknown Source)
>         at com.twc.trader.TickAnalyzer.update(Unknown Source)
>         at com.twc.replay.PriceOverview.notifyObservers(Unknown Source)
>         at com.twc.replay.PriceOverview$1.chartMouseClicked(Unknown Source)
>         at org.jfree.chart.ChartPanel.mouseClicked(Unknown Source)
>         at java.awt.Component.processMouseEvent(Unknown Source)
>         at javax.swing.JComponent.processMouseEvent(Unknown Source)
>         at java.awt.Component.processEvent(Unknown Source)
>         at java.awt.Container.processEvent(Unknown Source)
>         at java.awt.Component.dispatchEventImpl(Unknown Source)
>         at java.awt.Container.dispatchEventImpl(Unknown Source)
>         at java.awt.Component.dispatchEvent(Unknown Source)
>         at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
>         at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
>         at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
>         at java.awt.Container.dispatchEventImpl(Unknown Source)
>         at java.awt.Window.dispatchEventImpl(Unknown Source)
>         at java.awt.Component.dispatchEvent(Unknown Source)
>         at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
>         at java.awt.EventQueue.access$000(Unknown Source)
>         at java.awt.EventQueue$1.run(Unknown Source)
>         at java.awt.EventQueue$1.run(Unknown Source)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.security.AccessControlContext
> $1.doIntersectionPrivilege(Unknown Source)
>         at java.security.AccessControlContext
> $1.doIntersectionPrivilege(Unknown Source)
>         at java.awt.EventQueue$2.run(Unknown Source)
>         at java.awt.EventQueue$2.run(Unknown Source)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.security.AccessControlContext
> $1.doIntersectionPrivilege(Unknown Source)
>         at java.awt.EventQueue.dispatchEvent(Unknown Source)
>         at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown
> Source)
>         at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
>         at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown
> Source)
>         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
>         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
>         at java.awt.EventDispatchThread.run(Unknown Source)

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Find similar


Thread

Mixed Code java.lang.SecurityException FutureScalper <futurescalper@gmail.com> - 2011-05-23 10:47 -0700
  Re: Mixed Code java.lang.SecurityException FutureScalper <futurescalper@gmail.com> - 2011-05-23 11:00 -0700

csiph-web