• Bug
  • Status: Closed
  • 1 Critical
  • Resolution: Fixed
  • teck
  • Reporter: tgautier
  • January 17, 2007
  • 0
  • Watchers: 0
  • July 27, 2012
  • February 27, 2007



  1. Attempt to share a class that we do not support. For example a Thread.
  2. You will get a non-portable exception, which tells you to add the class into the boot jar.
  3. Add the class into the boot jar, and remake the boot jar
  4. Re-run your app.

You get the same error.

At step 3, we need to not silently ignore the fact that we don’t support the particular class.

An example of a class that works properly is java.lang.Thread (the exception properly reports that Thread is a system resource which cannot be shared). An example of a class which does not work properly is java.util.concurrent.Semaphore.


Taylor Gautier 2007-01-17

The attached unit test creates a root with a holder which holds a java.util.concurrent.Semaphore.

To use the project, compile it with maven2:

mvn package

To run with terracotta, install Terracotta 2.2+, and start a demo server:


Start the app (cd into the target directory): target> java `$TC_HOME/dso/bin/dso-env.sh` -Dtc.config=resources/conf/tc-config.xml -classpath classes unit.test.Main

Fiona OShea 2007-02-07

Updating Due date to last day of Moraga dev iteration

Tim Eck 2007-02-27

for all the various java.util.concurrent classes (and those in subpackages like locks and atomic), I added permanent exclude rules so that we won’t suggest adding any of these types to the boot jar until we official support them