ConcurrentModificationException for a GeneralPath

I've got a problem that I don't know how to solve.
I've got a GeneralPath, let's call it path. I've got the normal EDT thread running. I've got a JPanel in a JFrame. I also got a communication thread (separate thread).
Now, I get coordinates to add to the path via the communication thread. This happens sporadically, let's say every 200ms. This thread in turn accesses a class existing in the EDT that adds points to the path.
The JPanel reads the generalpath in an overridden paintComponent(Graphics g) class and thus read from the path.
Sometimes I assume the communcation thread tries to add a new part to the path, while the paintComponent tries to draw it. So I get a:
"Lane.draw(Lane.java:46) exception ConcurrentModificationException"
I am wondering how I would go about to fix this? I assume it isn't dangerous, since the draw method only reads the path. But still, what should I do or what am I doing wrong?
Appreciate help!

Make sure you have one place to access all the data that is shared between the two threads (lets call this place a model). In the model you synchronize on an object before reading or writing (as the other poster noted). The concurrent modification exception is most likely caused by you iterating over an array and make changes on it from the other thread at the same time. So make sure that you synchronize this behavior: if you are iterating, you can not make changes and the other way around.

Similar Messages

  • HashMap, HashSet and infinite loop

    hi,
    our code ended up in an infinite loop while parsing the entries of a HashMap with this code:
            Iterator it = myHashMap.entrySet().iterator();
            while (it.hasNext()) {
                field = (Map.Entry) it.next();
                // code that access content of "field"
            } as the loop creates some kind of objects, the JVM terminated with a out-of-memory. luckily we got a heap-dump file and that shows:
    - the hash-map has 325 entries
    - the loop was iterated more than 3 million times
    - the iterator "it" has a current and a next field pointing at the same element of the HashMap
    a snapshot of the heap-analysis of the iterator can be seen at
    http://www.sbox.tugraz.at/home/a/archmage/hashset/EntryIterator.html
    maybe the HashMap was accessed concurrently, but then there should be a ConcurrentModificationException.
    we are using
    > java -version
    java version "1.4.2_12"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_12-b03)
    Java HotSpot(TM) Client VM (build 1.4.2_12-b03, mixed mode)for me, this looks like a JVM bug, but i cannot really believe that (and i could not find a bug stating this behaviour).
    is there anything i did not notice during using hashmaps/hashsets/iterators?
    regards, werner

    there should be aConcurrentModificationException.
    Not necessarily. The iterators cannot always detectConcurrentModificationException.
    api-docs of HashMap say:
    A structural modification is any operation that adds
    or deletes one or more mappings
    if the map is structurally modified at any time after
    the iterator is created, in any way except through
    the iterator's own remove or add methods, the
    iterator will throw a
    ConcurrentModificationException.
    for me, that means, the iterator should detect any
    "add" or "delete" operation like map.put(...). am i
    wrong? or are the docs wrong here?Immediately AFTER the paragraph you quoted, it says
    Note that the fail-fast behavior of an iterator cannot be guaranteed as it is, generally speaking, impossible to make any hard guarantees in the presence of unsynchronized concurrent modification. Fail-fast iterators throw ConcurrentModificationException on a best-effort basis.
    http://java.sun.com/j2se/1.5.0/docs/api/java/util/HashMap.html
    Furthermore, did you READ what I said after that?
    It's FAR MORE LIKELY to be a result of data corruption, rather than multiple simultaneous iterators.

  • Looking for a 2D Polygon Bevel Algorithm

    I am looking for a graphics algorithm to give two-dimensional polygons a 3D beveled edge look. The polygon should look like as though it is lit from the top-left. This is trivial for rectangular figures, but obviously much more complex for general polygons. The algorithm needs to support any type of polygon, including those with splines or other curved edges, as well as convex figures. Making matters even more complicated, it must also handle texture-filled polygons.
    A Java class that provides this functionality would be perfect. Short of that, an implementation in any language, or even a description of an algorithm, would be helpful.
    I created a java applet to illustrate the problem I am trying to solve - see the source below. This applet with source is also available at
    http://www.keithhilen.com/Java/bevel/
    Keith Hilen
    [email protected]
    Polygons.java :
    import java.applet.*;
    import java.awt.*;
    import java.awt.image.*;
    import java.awt.geom.*;
    public class Polygons extends Applet
    Image image;
    int polyWidth = 100;
    int polyHeight = polyWidth;
    int polyOfsX1 = 100;
    int polyOfsY1 = 100;
    int polyOfsX2 = 250;
    int polyOfsY2 = 100;
    int polyOfsX3 = 100;
    int polyOfsY3 = 240;
    int polyOfsX4 = 250;
    int polyOfsY4 = 240;
    Polygon octagon;
    Ellipse2D.Double ellipse;
    GeneralPath ornament;
    BufferedImage imageBuf1, imageBuf2, imageBuf3, imageBuf4;
    public void init()
    image = loadImage("background.jpg");
    createPolygons();
    createImageBufs();
    private Image loadImage(String name)
    MediaTracker tracker = new MediaTracker(this);
    Image image = getImage(getDocumentBase(), name);
    tracker.addImage(image, 0);
    for ( ; ; )
    try { tracker.waitForAll(); } catch (InterruptedException e) { }
    if (tracker.checkAll())
    break;
    return image;
    public void createPolygons()
    double sqrt2 = Math.sqrt(2);
    int m1 = (int) (polyWidth / (2 + sqrt2));
    int m2 = (int) (polyWidth * sqrt2 / (2 + sqrt2));
    octagon = new Polygon();
    octagon.addPoint(-m2/2, -(m1 + m2/2));
    octagon.addPoint(+m2/2, -(m1 + m2/2));
    octagon.addPoint(+(m1 + m2/2), -(m2/2));
    octagon.addPoint(+(m1 + m2/2), +(m2/2));
    octagon.addPoint(+m2/2, +(m1 + m2/2));
    octagon.addPoint(-m2/2, +(m1 + m2/2));
    octagon.addPoint(-(m1 + m2/2), +(m2/2));
    octagon.addPoint(-(m1 + m2/2), -(m2/2));
    ellipse = new Ellipse2D.Double(-polyWidth/2, -polyWidth/2, polyWidth, polyWidth*3/4);
    ornament = new GeneralPath();
    int l = polyWidth/2;
    int m = polyWidth/16;
    int s = polyWidth/32;
    ornament.moveTo(+0+0, -l+0);
    ornament.quadTo(+0+s, -l+0, +0+s, -l+s);
    ornament.quadTo(+m+0, -m+0, l-s, 0-s);
    ornament.quadTo(+l+0, +0-s, l0, +0+0);
    ornament.quadTo(+l+0, +0+s, l-s, 0+s);
    ornament.quadTo(+m+0, m0, +0+s, +l-s);
    ornament.quadTo(+0+s, l-0, 0+0, l0);
    ornament.quadTo(+0-s, l0, +0-s, +l-s);
    ornament.quadTo(-m+0, m0, -l+s, +0+s);
    ornament.quadTo(-l+0, +0+s, -l+0, +0+0);
    ornament.quadTo(-l+0, +0-s, -l+s, +0-s);
    ornament.quadTo(-m+0, -m+0, +0-s, -l+s);
    ornament.quadTo(+0-s, -l+0, -0+0, -l+0);
    public void createImageBufs()
    Graphics2D g2d;
    Composite saveAlpha;
    // Figure 1
    // Create image buf and get context
    imageBuf1 = new BufferedImage(polyWidth, polyHeight,
    BufferedImage.TYPE_INT_ARGB_PRE);
    g2d = (Graphics2D) imageBuf1.getGraphics();
    // Fill with transparent color
    saveAlpha = g2d.getComposite();
    g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.CLEAR,
    0.0f));
    g2d.fillRect(0, 0, polyWidth, polyHeight);
    g2d.setComposite(saveAlpha);
    // Draw figure
    g2d.translate(polyWidth/2, polyHeight/2);
    g2d.setClip(octagon);
    g2d.setColor(Color.blue);
    g2d.fillRect(-polyWidth/2, -polyHeight/2, polyWidth, polyHeight);
    // Figure 2
    // Create image buf and get context
    imageBuf2 = new BufferedImage(polyWidth, polyHeight,
    BufferedImage.TYPE_INT_ARGB_PRE);
    g2d = (Graphics2D) imageBuf2.getGraphics();
    // Fill with transparent color
    saveAlpha = g2d.getComposite();
    g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.CLEAR,
    0.0f));
    g2d.fillRect(0, 0, polyWidth, polyHeight);
    g2d.setComposite(saveAlpha);
    // Draw figure
    g2d.translate(polyWidth/2, polyHeight/2);
    g2d.setClip(octagon);
    g2d.drawImage(image, -polyWidth/2, -polyWidth/2, null);
    // Figure 3
    // Create image buf and get context
    imageBuf3 = new BufferedImage(polyWidth, polyHeight,
    BufferedImage.TYPE_INT_ARGB_PRE);
    g2d = (Graphics2D) imageBuf3.getGraphics();
    // Fill with transparent color
    saveAlpha = g2d.getComposite();
    g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.CLEAR, 0.0f));
    g2d.fillRect(0, 0, polyWidth, polyHeight);
    g2d.setComposite(saveAlpha);
    // Draw figure
    g2d.translate(polyWidth/2, polyHeight/2);
    g2d.setClip(ellipse);
    g2d.drawImage(image, -polyWidth/2, -polyWidth*5/8, null);
    // Figure 4
    // Create image buf and get context
    imageBuf4 = new BufferedImage(polyWidth, polyHeight, BufferedImage.TYPE_INT_ARGB_PRE);
    g2d = (Graphics2D) imageBuf4.getGraphics();
    // Fill with transparent color
    saveAlpha = g2d.getComposite();
    g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.CLEAR, 0.0f));
    g2d.fillRect(0, 0, polyWidth, polyHeight);
    g2d.setComposite(saveAlpha);
    // Draw figure
    g2d.translate(polyWidth/2, polyHeight/2);
    g2d.setClip(ornament);
    g2d.drawImage(image, -polyWidth/2, -polyWidth/2, null);
    public void paint(Graphics g)
    g.drawImage(imageBuf1, polyOfsX1 - polyWidth/2, polyOfsY1 - polyHeight/2, null);
    g.drawImage(imageBuf2, polyOfsX2 - polyWidth/2, polyOfsY2 - polyHeight/2, null);
    g.drawImage(imageBuf3, polyOfsX3 - polyWidth/2, polyOfsY3 - polyHeight/2, null);
    g.drawImage(imageBuf4, polyOfsX4 - polyWidth/2, polyOfsY4 - polyHeight/2, null);
    Polygons.html :
    <applet
    code=Polygons.class
    name=Polygons
    width=360
    height=300>
    </applet>

    Think you'll be lucky to find anything in the forum on push down automata. Do a search on google, perhaps with the keyword "parser" or "grammer checker" thrown in. There may well be whole books devoted to it!

  • Finalize() method being called multiple times for same object?

    I got a dilly of a pickle here.
    Looks like according to the Tomcat output log file that the finalize method of class User is being called MANY more times than is being constructed.
    Here is the User class:
    package com.db.multi;
    import java.io.*;
    import com.db.ui.*;
    import java.util.*;
    * @author DBriscoe
    public class User implements Serializable {
        private String userName = null;
        private int score = 0;
        private SocketImage img = null;
        private boolean gflag = false;
        private Calendar timeStamp = Calendar.getInstance();
        private static int counter = 0;
        /** Creates a new instance of User */
        public User() { counter++;     
        public User(String userName) {
            this.userName = userName;
            counter++;
        public void setGflag(boolean gflag) {
            this.gflag = gflag;
        public boolean getGflag() {
            return gflag;
        public void setScore(int score) {
            this.score = score;
        public int getScore() {
            return score;
        public void setUserName(String userName) {
            this.userName = userName;
        public String getUserName() {
            return userName;
        public void setImage(SocketImage img) {
            this.img = img;
        public SocketImage getImage() {
            return img;
        public void setTimeStamp(Calendar c) {
            this.timeStamp = c;
        public Calendar getTimeStamp() {
            return this.timeStamp;
        public boolean equals(Object obj) {
            try {
                if (obj instanceof User) {
                    User comp = (User)obj;
                    return comp.getUserName().equals(userName);
                } else {
                    return false;
            } catch (NullPointerException npe) {
                return false;
        public void finalize() {
            if (userName != null && !userName.startsWith("OUTOFDATE"))
                System.out.println("User " + userName + " destroyed. " + counter);
        }As you can see...
    Every time a User object is created, a static counter variable is incremented and then when an object is destroyed it appends the current value of that static member to the Tomcat log file (via System.out.println being executed on server side).
    Below is the log file from an example run in my webapp.
    Dustin
    User Queue Empty, Adding User: com.db.multi.User@1a5af9f
    User Dustin destroyed. 0
    User Dustin destroyed. 0
    User Dustin destroyed. 0
    User Dustin destroyed. 0
    User Dustin destroyed. 0
    USER QUEUE: false
    INSIDE METHOD: false
    AFTER METHOD: false
    User Dustin destroyed. 1
    User Dustin destroyed. 1
    User Dustin destroyed. 1
    User Dustin destroyed. 1
    USER QUEUE: false
    INSIDE METHOD: false
    AFTER METHOD: false
    User Dustin destroyed. 2
    User Dustin destroyed. 2
    User Dustin destroyed. 2
    User Dustin destroyed. 2
    User Dustin destroyed. 2
    User Dustin destroyed. 2
    User Dustin destroyed. 2
    User Dustin destroyed. 2
    USER QUEUE: false
    INSIDE METHOD: false
    AFTER METHOD: false
    User Dustin destroyed. 3
    User Dustin destroyed. 3
    User Dustin destroyed. 3
    User Dustin destroyed. 3
    User Dustin destroyed. 3
    User Dustin destroyed. 3
    User Dustin destroyed. 3
    User Dustin destroyed. 3
    User Dustin destroyed. 3
    USER QUEUE: false
    INSIDE METHOD: false
    AFTER METHOD: false
    User Dustin destroyed. 4
    User Dustin destroyed. 4
    User Dustin destroyed. 4
    User Dustin destroyed. 4
    User Dustin destroyed. 4
    User Dustin destroyed. 4
    User Dustin destroyed. 4
    User Dustin destroyed. 4
    User Dustin destroyed. 4
    USER QUEUE: false
    INSIDE METHOD: false
    AFTER METHOD: false
    User Dustin destroyed. 5
    User Dustin destroyed. 5
    User Dustin destroyed. 5
    User Dustin destroyed. 5
    User Dustin destroyed. 5
    User Dustin destroyed. 5
    User Dustin destroyed. 5
    User Dustin destroyed. 5
    User Dustin destroyed. 5
    USER QUEUE: false
    INSIDE METHOD: false
    AFTER METHOD: false
    User Dustin destroyed. 6
    User Dustin destroyed. 6
    User Dustin destroyed. 6
    User Dustin destroyed. 6
    User Dustin destroyed. 6
    User Dustin destroyed. 6
    User Dustin destroyed. 6
    User Dustin destroyed. 6
    User Dustin destroyed. 6
    User Dustin destroyed. 6
    Joe
    USER QUEUE: false
    INSIDE METHOD: false
    AFTER METHOD: false
    User Dustin pulled from Queue, Game created: Joe
    User Already Placed: Dustin with Joe
    User Dustin destroyed. 7
    User Dustin destroyed. 7
    User Dustin destroyed. 7
    User Dustin destroyed. 7
    User Dustin destroyed. 7
    User Dustin destroyed. 7
    User Dustin destroyed. 7
    User Dustin destroyed. 7
    User Dustin destroyed. 7
    User Dustin destroyed. 7
    INSIDE METHOD: false
    INSIDE METHOD: false
    USER QUEUE: true
    INSIDE METHOD: false
    INSIDE METHOD: false
    User Dustin destroyed. 9
    User Joe destroyed. 9
    User Dustin destroyed. 9
    User Dustin destroyed. 9
    User Dustin destroyed. 9
    User Dustin destroyed. 9
    INSIDE METHOD: true
    INSIDE METHOD: false
    USER QUEUE: true
    INSIDE METHOD: false
    INSIDE METHOD: false
    INSIDE METHOD: true
    INSIDE METHOD: false
    USER QUEUE: true
    INSIDE METHOD: false
    INSIDE METHOD: false
    It really does seem to me like finalize is being called multiple times for the same object.
    That number should incremement for every instantiated User, and finalize can only be called once for each User object.
    I thought this was impossible?
    Any help is appreciated!

    Thanks...
    I am already thinking of ideas to limit the number of threads.
    Unfortunately there are two threads of execution in the servlet handler, one handles requests and the other parses the collection of User objects to check for out of date timestamps, and then eliminates them if they are out of date.
    The collection parsing thread is currently a javax.swing.Timer thread (Bad design I know...) so I believe that I can routinely check for timestamps in another way and fix that problem.
    Just found out too that Tomcat was throwing me a ConcurrentModificationException as well, which may help explain the slew of mysterious behavior from my servlet!
    The Timer thread has to go. I got to think of a better way to routinely weed out User objects from the collection.
    Or perhaps, maybe I can attempt to make it thread safe???
    Eg. make my User collection volatile?
    Any opinions on the best approach are well appreciated.

  • ConcurrentModificationException while running the deployed application

    Hi,
    I am using JDeveloper 11.1.2.0.0 and WebLogic Server Version: 10.3.5.0 with production environment.
    My application is based on Customized Dynamic Tab Shell where each task flow is loaded with its own transaction and also it is defined not to share data control.
    I use a Collection Object inside TabContext class, which will be accessed and consumed (including modifications) by all dynamic tab loaded taskflow.
    I use Customized FactoryClass for every BC4JDataControl to track the request and also to pass parameter to model layer AMs
    When i run the application in local, i didn't get any error. But when i check the deployed application, I am getting ConcurrentModificationException frequently as javascript dialog
    java.util.ConcurrentModificationException
    ADF_FACES-60097: For more information, please see the server's error log for
    an entry beginning with: ADF_FACES-60096:Server Exception during PPR, #181When i check the server error log, it didn't say anything about my classes.
    [2011-10-04T01:35:33.608-07:00] [MDA1-Server01] [ERROR] [] [oracle.adfinternal.view.faces.config.rich.RegistrationConfigurator] [tid: [ACTIVE].ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 11d1def534ea1be0:-38985633:132c98ea02d:-8000-000000000000b88b,0] [APP: CalwinApplication] ADF_FACES-60096:Server Exception during PPR, #55[[
    java.util.ConcurrentModificationException
         at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
         at java.util.AbstractList$Itr.next(AbstractList.java:343)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:619)
         at oracle.adf.view.rich.render.RichRenderer.encodeAllChildrenInContext(RichRenderer.java:3062)
         at oracle.adfinternal.view.faces.renderkit.rich.PageTemplateRenderer.encodeAll(PageTemplateRenderer.java:69)
         at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:493)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:913)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1661)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:607)
         at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:623)
         at oracle.adf.view.rich.render.RichRenderer.encodeAllChildrenInContext(RichRenderer.java:3062)
         at oracle.adfinternal.view.faces.renderkit.rich.RegionRenderer._encodeChildren(RegionRenderer.java:310)
         at oracle.adfinternal.view.faces.renderkit.rich.RegionRenderer.encodeAll(RegionRenderer.java:186)
         at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:493)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:913)
         at oracle.adf.view.rich.component.fragment.UIXRegion.encodeEnd(UIXRegion.java:323)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1661)
         at org.apache.myfaces.trinidad.component.UIXGroup.encodeChildren(UIXGroup.java:170)
                    .....On checking further about this error code in Oracle® Fusion Middleware Error Messages Reference 11g Release 2 (11.1.2.0.0), it is given as
      ADF_FACES-60097: For more information, please see the server's error log for an
    entry beginning with: {0}
    Cause: An exception was thrown durring a PPR request.
    Action: Please look in the servers error log for more details on this error.
    Level: 1
    Type: ERROR
    Impact: LoggingI couldn't get any hint on what may be the issue. Can anyone help on this?
    Thanks in Advance.
    Perumal S

    I've seen this happen before if component objects are stored in managed beans (e.g. using binding="#{someBean.foo}").
    Problems like this can happen if the component is stored directly on the bean as a member variable (most commonly if the bean is application-scoped, session-scoped, or pageFlow-scoped but smaller scopes can exhibit the problem too).
    Usually just referencing the components from the accessors on JSF event objects during an event handlers or using one of the various component searching APIs (e.g. findComponent) can suffice in locating the components dynamically.
    However, if using one of those mechanisms isn't feasible you must use the ComponentReference as the storage mechanism (and follow the caveats noted in its JavaDoc):
    http://www.jarvana.com/jarvana/view/org/apache/myfaces/trinidad/trinidad-api/2.0.0-beta-1/trinidad-api-2.0.0-beta-1-javadoc.jar!/org/apache/myfaces/trinidad/util/ComponentReference.html
    Hope this helps,
    Matt

  • Iterator List Error "java.util.ConcurrentModificationException"

    Hi,
    I'm with a problem. I've got a set of objects in a List. I'm iterating the list and during this process, I have to add more objects to the list. The system returns the exception "java.util.ConcurrentModificationException".
    What is the solution to this problem, that is, how can I iterate a list, adding or removig elements without error
    Thanx
    MP

    You cannot add to a list while iterators are in progress. You can remove elements by calling the remove method on the iterator.
    If you need to both iterate and add, consider iterating a copy of the list, like so:
    List copy = new ArrayList(originalList);
    for (Iterator it = copy.iterator(); it.hasNext(); ) {
       // call originalList.add here
    }You could also consider indexing into the list (if it's an ArrayList), and then "bumping" your indices as you add elements.

  • What are the thread safety requirements for container implementation?

    I rarely see in the TopLink documentation reference to thread safety requirements and it’s not different for container implementation.
    The default TopLink implementation for:
    - List is Vector
    - Set is HashSet
    - Collection is Vector
    - Map is HashMap
    Half of them are thread safe implementations List/Collection and the other half is not thread safe Set/Map.
    So if I choose my own implementation do I need a thread safe implementation for?
    - List ?
    - Set ?
    - Collection ?
    - Map ?
    Our application is always reading and writing via UOW. So if TopLink synchronize update on client session objects we should be safe with not thread safe implementation for any type; does TopLink synchronize update on client session objects?
    The only thing we are certain is that it is not thread safe to read client session object or read read-only UOW object if they are ever expired or ever refreshed.
    We got stack dump below in an application always reading and writing objects from UOW, so we believe that TopLink doesn’t synchronize correctly when it’s updating the client session objects.
    java.util.ConcurrentModificationException
    at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:449)
    at java.util.AbstractList$Itr.next(AbstractList.java:420)
    at oracle.toplink.internal.queryframework.InterfaceContainerPolicy.next(InterfaceContainerPolicy.java:149)
    at oracle.toplink.internal.queryframework.ContainerPolicy.next(ContainerPolicy.java:460)
    at oracle.toplink.internal.helper.WriteLockManager.traverseRelatedLocks(WriteLockManager.java:140)
    at oracle.toplink.internal.helper.WriteLockManager.acquireLockAndRelatedLocks(WriteLockManager.java:116)
    at oracle.toplink.internal.helper.WriteLockManager.checkAndLockObject(WriteLockManager.java:349)
    at oracle.toplink.internal.helper.WriteLockManager.traverseRelatedLocks(WriteLockManager.java:144)
    at oracle.toplink.internal.helper.WriteLockManager.acquireLockAndRelatedLocks(WriteLockManager.java:116)
    at oracle.toplink.internal.helper.WriteLockManager.checkAndLockObject(WriteLockManager.java:349)
    at oracle.toplink.internal.helper.WriteLockManager.traverseRelatedLocks(WriteLockManager.java:144)
    at oracle.toplink.internal.helper.WriteLockManager.acquireLockAndRelatedLocks(WriteLockManager.java:116)
    at oracle.toplink.internal.helper.WriteLockManager.acquireLocksForClone(WriteLockManager.java:56)
    at oracle.toplink.publicinterface.UnitOfWork.cloneAndRegisterObject(UnitOfWork.java:756)
    at oracle.toplink.publicinterface.UnitOfWork.cloneAndRegisterObject(UnitOfWork.java:714)
    at oracle.toplink.internal.sessions.UnitOfWorkIdentityMapAccessor.getAndCloneCacheKeyFromParent(UnitOfWorkIdentityMapAccessor.java:153)
    at oracle.toplink.internal.sessions.UnitOfWorkIdentityMapAccessor.getFromIdentityMap(UnitOfWorkIdentityMapAccessor.java:99)
    at oracle.toplink.internal.sessions.IdentityMapAccessor.getFromIdentityMap(IdentityMapAccessor.java:265)
    at oracle.toplink.publicinterface.UnitOfWork.registerExistingObject(UnitOfWork.java:3543)
    at oracle.toplink.publicinterface.UnitOfWork.registerExistingObject(UnitOfWork.java:3503)
    at oracle.toplink.queryframework.ObjectLevelReadQuery.registerIndividualResult(ObjectLevelReadQuery.java:1812)
    at oracle.toplink.internal.descriptors.ObjectBuilder.buildWorkingCopyCloneNormally(ObjectBuilder.java:455)
    at oracle.toplink.internal.descriptors.ObjectBuilder.buildObjectInUnitOfWork(ObjectBuilder.java:419)
    at oracle.toplink.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:379)
    at oracle.toplink.queryframework.ObjectLevelReadQuery.buildObject(ObjectLevelReadQuery.java:455)
    at oracle.toplink.queryframework.ObjectLevelReadQuery.conformIndividualResult(ObjectLevelReadQuery.java:622)
    at oracle.toplink.queryframework.ReadObjectQuery.conformResult(ReadObjectQuery.java:339)
    at oracle.toplink.queryframework.ReadObjectQuery.registerResultInUnitOfWork(ReadObjectQuery.java:604)
    at oracle.toplink.queryframework.ReadObjectQuery.executeObjectLevelReadQuery(ReadObjectQuery.java:421)
    at oracle.toplink.queryframework.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:811)
    at oracle.toplink.queryframework.DatabaseQuery.execute(DatabaseQuery.java:620)
    at oracle.toplink.queryframework.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:779)
    at oracle.toplink.queryframework.ReadObjectQuery.execute(ReadObjectQuery.java:388)
    at oracle.toplink.queryframework.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:836)
    at oracle.toplink.publicinterface.UnitOfWork.internalExecuteQuery(UnitOfWork.java:2604)
    at oracle.toplink.publicinterface.Session.executeQuery(Session.java:993)
    at oracle.toplink.publicinterface.Session.executeQuery(Session.java:950)

    Hi Lionel,
    As a general rule of thumb, the ATI Rage 128 Pro will not support a 20" LCD. That being said, there are reports of it doing just that (possibly the edition that went into the cube).
    I'm not that familiar with the ins and outs of the Cube, so I can't give you authoritative information on it.
    A good place to start looking for answers is:
    http://cubeowner.com/kbase_2/
    Cheers!
    Karl

  • ConcurrentModificationException  in MSS approval view

    I have tried to configure Approval by Manager FPM application of MSS , I tried to remove the drill down step and make an individual approve step the first step.
    There was no success.And after I have returned all the configuration of this FPM application to it's initial status I am receiving
    the following error while trying to access the approve iview.
    Thank you for your help
    <br>
    <br><br><br>
    java.util.ConcurrentModificationException
         at java.util.HashMap$HashIterator.nextEntry(HashMap.java:782)
         at java.util.HashMap$ValueIterator.next(HashMap.java:812)
         at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.doModifyView(ClientComponent.java:487)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doModifyView(WindowPhaseModel.java:551)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:148)
         at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:335)
         at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:143)
         at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:319)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingStandalone(ClientSession.java:713)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:666)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:250)
         at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:149)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:62)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:53)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:386)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:364)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:1039)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:265)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:104)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:176)
    Edited by: constantine reif on Sep 28, 2009 6:24 PM

    Hi,
    This bug is fixed in SP09 patch 1. This happens because you assigned process control items to roles which are not available anymore. For example, the role doesn't exist anymore because the action in the underlying block was deleted.
    The work around is to recreate the process object and to insert the blocks again.
    Hope this helps.

  • Vague problem description, looking for hints

    Hello,
    I am maintaining several Swing based apps, written by a number of different people (different generations, skills and knowledge) of which most of them are gone already. There's this user reported bug which clearly describes his problem, but as it occurs intermittently, is so for impossible for me to reproduce. (I guess I could leave it at that, not reproduced).
    While a JFrame is showing JTabbedPane with several tabs, some work is being done on a fresh Thread. That thread may occasionally (in error/unexpected situations) pop up a dialog using JOptionPane.confirmDialog. The reported problem is that the text in the pop up is at times not visible while a specific tab in the frame is visible, the problem "never" occurs while other tabs are active. Of course the tab that is related to the problem is one which holds a component for which paintComponent() is custom.
    Clearly this is a messy situation. I hoped that describing it would clarify something for myself and if not, any one of you could offer me hints and experiences where to start looking.
    So far (being unable to reproduce and see "it" happen) I have taken the angle of hunting for usual suspects in the code: Threading, EDT, paint() vs repaint() but I am sort of at the end of my list.
    Thanks in advance.

    It could be an exception as you suggest:
    One thing I found so far is a ConcurrentModificationException on an AWT thread. Our code causing it has been corrected in that respect: the paintComponent iterated a List while other threads would try to clear or add to that same List. My solution is to take a local snapshot of the now SynchonizedList before passing the local list to the paint.     As i still am unable to reproduce the problem, I cannot confirm this "fixed" it. Do we know that if the paint thread excepts (on the said Concurrent mod exception, CME), all pending paints will be lost? If so, it is quite likely the cause of the user problem: both my custom paint panel and the dialog have a repaint pending, the repaint starts executing and exepts in the custom paint with the CME and the dialog never receives the text.
    If the above is a valid scenario, would the following then work? If the user sees an empty Dialog, move the dialog around such that it becomes hidded or resize it to cause a repaint and then see the text appear?
    I wrote this SSCE for the scenario above, but it does not give the problem. This may mean that program is just not good enough, although I altered the flow and timings to provoke Swing/AWT several times. Or perhaps the problem disappeared since we switched to JRE 1.6.0.17 (I believe at the time of reporting, we were still 1.5 something).
    package esa.isoc.oss.gui;
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.Graphics;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.SwingUtilities;
    import javax.swing.SwingWorker;
    import javax.swing.Timer;
    public class PossibleCauseSPR1044 extends JFrame {
         private ExceptInPaint customPaint = new ExceptInPaint();
         private JButton workButton;
         public PossibleCauseSPR1044() {
              setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              JPanel panel = new JPanel();
              panel.setLayout(new BorderLayout());
              panel.add(new JLabel("<html><b>SPR 1044</b>: " +
                        "In OSS, it is possible to view the scheduling for a revolution either " +
                        "as a horizontal bar chart on a timeline: the schedule display, or as " +
                        "pointings and slews overlaid on the sky: the sky display. When the " +
                        "system is actively scheduling, popup messages sometimes appear to warn " +
                        "about long slews, visibility constraints, not enough time to finish an " +
                        "observation, etc. While these messages appear normally when the revolution " +
                        "is viewed in the schedule display, when it is viewed using the sky display, the " +
                        "box of the popup message appears but the contents, i.e. the text, do not. This " +
                        "happens for all popups and happens every time, at least on the operational system. " +
                        "Moreover, the window does not refresh itself even if we wait for a long time.</html>")
                   , BorderLayout.CENTER);
              panel.add(customPaint, BorderLayout.NORTH);
              panel.add(getWorkButton(), BorderLayout.SOUTH);
              panel.setPreferredSize(new Dimension(500, 300));
              getContentPane().add(panel);
              pack();
         JButton getWorkButton() {
              if (workButton == null) {
                   workButton = new JButton("Except!");
                   workButton.addActionListener(new ActionListener() {
                        @Override
                        public void actionPerformed(ActionEvent e) {
                             new SwingWorker<Void, Void> (){
                                  @Override
                                  protected Void doInBackground() throws Exception {
                                       Timer t = new Timer(150, new ActionListener() {
                                            @Override
                                            public void actionPerformed(ActionEvent e) {
                                                 customPaint.repaint();
                                       t.start();
                                       customPaint.setExcept(2);
                                       Thread.yield();
                                       int r = JOptionPane.showConfirmDialog(null
                                                 , "Clear the exception and you see this text? ("+customPaint.except+")"
                                                 , "Help us"
                                                 , JOptionPane.YES_NO_OPTION);
                                       if (r == JOptionPane.YES_OPTION) {
                                            customPaint.setExcept(0);
                                       t.stop();
                                       return null;
                             }.execute();
              return workButton;
         public static class ExceptInPaint extends JLabel {
              private volatile int except = 0;
              public ExceptInPaint() {
                   setText("Complete paint");
              @Override
              protected void paintComponent(Graphics g) {
                   super.paintComponent(g);
                   if (except > 0) {
                        except -= 1;
                        if (except ==0) {
                             throw new RuntimeException("Purposely throwing this");
              public void setExcept(int except) {
                   this.except = except;
                   if (except > 0) {
                        setText("Except in paint " + except);
                   }else {
                        setText("Complete paint");
                   repaint();
         public static void main(String[] args) {
              SwingUtilities.invokeLater(new Runnable() {
                   @Override
                   public void run() {
                        new PossibleCauseSPR1044().setVisible(true);
         Edited by: isocdev_mb on May 13, 2010 7:15 AM

  • GeneralPath of 100k lines drawing performance

    Hi!
    I find that there is a great difference in time between drawing 1 path of 100 000 lines and 100 paths of 1000 lines.
    Drawing 100 paths of 1000 lines is much quicker.
    It seems to me that there is some `unlinearity` in drawing alghorithm, ex. drawing time is proportional to n^1,5 may be.
    But drawing one path with porthions is not good if I use big line width (>3) and not 255 alpha because of overlapping of two path on junctions.
    So, why drawing of path of 100 000 lines is so slow and what can I do to accelerate it?
    P.s.
    1. I also noticed that drawing with stroke width 1 is much quicker than if width is more than 1. But the time difference if I use single path length not more than about 1000 is not so big.
    2. I noticed that if I draw a path of 100 000 lines, turning on antialiasing occelerates rendering. It was strange for me. Antialiasing still slow down rendering if I draw 100 path with 1000 lines - I think it is normal.
    3. I use GeneralPath constructor with predefined initial path points count to prevent redundant memory allocation. I tested float and double lineTo and moveTo methods and don`t see the difference in time.
    Alexander.
    Edited by: Electriq on 18.03.2009 15:00

    I have the latest Wacom drivers for my model - it's the same driver for all Intuos and Cintiq models. Besides, as I said - the performance is perfect in all other software, except Flash. And also as I said - in Flash CS6 the performance is better than CS5.5, but not better than CS3... It is acceptable though, because it's rare that I will draw such fast lines - in my case I can see a clear difference in performance if I draw fast or slow. I have tried to compare results on my older MacBook Pro and I get similar results...

  • Best way for Java/C++/C# to share data in a cache?

    I have an order processing application which listens for Order objects to be inserted in a cache. If I want Java, C# and C++ apps to be able to submit orders to that cache, what's the best way to set up that Order object? Orders currently have many Enum member variables. What happens when a C# or C++ app needs to put an Order object in the cache? how would it set those java enums? Also, the java Enum classes have a lot of Java specific code in 'em for convenience. I imagine for cross platform simplicity it might have been best if the Order object were just an array of Strings or a Map of Strings to values but I have too much code depending on the Order object being how it is currently. Should I extract an Order Interface? What about the Enums? My java enums aren't simple {RED,GREEN,BLUE} type enums, they contain references to other Enums, etc. - see below...
    A portion of my Order class looks like:
    public class Order implements Cloneable, Comparable, java.io.Serializable {
      private static Logger logger = Logger.getLogger(Order.class);
      private boolean clearedFromOpenOrdersTable = false; 
      private boolean trading_opened = false;
      private static Random generator = new Random();
      private static int nextID = generator.nextInt(1000000); //just for testing
      private int quantity = 0;
      private int open = 0;
      private int executed = 0;
      private int last = 0;
      private int cancelPriority = 0;
      private Integer sendPriority = 0;
    //enums
      private OrderSide side = OrderSide.BUY;
      private OrderType orderType = OrderType.MARKET;
      private OrderTIF tif = OrderTIF.DAY;
      private OrderStatus orderStatus = OrderStatus.PENDING_NEW;
      private OrderExchange orderExchange = null;
      private OOType ooType = OOType.NOTOO;
      private OOLevel ooLevel = OOLevel.NONE;
      private Float limit = new Float(0);
      private Float stop = null;
      private float avgPx = 0.0f;
      private float lastPx = 0.0f;
      private String account = null;
      private String symbol = null;
      private long submitTimestamp;
      private long fillTime = 0;
      private long ackTime = 0;
      private Timestamp submitSqlTimestamp;
      public /*final*/ static NamedCache cache;
      private ArrayList<OrderStatusChangeListener> statusChangeListeners =
        new ArrayList<OrderStatusChangeListener>();
      transient private Format formatter = new SimpleDateFormat("hh:mm:ss a");
      public static void connectToCache() {
        cache = CacheFactory.getCache("orders");
      public void send() {
        this.submitTimestamp = System.currentTimeMillis() ;
        this.submitSqlTimestamp = new Timestamp(submitTimestamp);
        cache.put(this.ID, this);
      public void setCancelCount(int i) {
        cancelCount = i;
      public int getCancelCount() {
        return cancelCount;
      public static class CancelProcessor extends AbstractProcessor {
        public Object process(InvocableMap.Entry entry) {
          Order o = (Order)entry.getValue();
          if (o.cancelCount == 0) {
            o.cancelCount = 1;
          } else {
            logger.info("ignoring dup. cancel req on " + o.symbol + " id=" + o.ID);
          return o.cancelCount;
      public void cancel() {
          // cache.invoke(this.ID, new CancelProcessor() ); // must this be a 'new' one each time?
          Filter f = new EqualsFilter("getCancelCount", 0);
          UpdaterProcessor up = new UpdaterProcessor("setCancelCount",new Integer(1) );
          ConditionalProcessor cp = new ConditionalProcessor(f, up);
          cache.invoke(ID, cp);
      NumberIncrementor ni1 = new NumberIncrementor("CancelCount", 1, false);
      public void cancelAllowingMultipleCancelsOfThisOrder() {
        System.out.println("cancelAllowingMultipleCancelsOfThisOrder symbol=" + symbol + " id=" + ID);
        cache.invoke(this.getID(), ni1);
      public Timestamp getSubmitSqlTimestamp(){
        return submitSqlTimestamp;
      boolean isWorking( ) {
           // might need to write an extractor to get this from the cache atomically
           if (orderStatus != null &&
                (orderStatus == OrderStatus.NEW || orderStatus == OrderStatus.PARTIALLY_FILLED ||
                    // including PENDING_CANCEL breaks order totals from arcadirect
                    // because they send a pending cancel unlike foc
                    // os.getValue() == OrdStatus.PENDING_CANCEL ||
                    orderStatus == OrderStatus.PENDING_NEW ||
                    orderStatus == OrderStatus.PENDING_REPLACE)) {
              return true;
            } else {
              return false;
      public long getSubmitTimestamp(){
        return submitTimestamp;
      private void fireStatusChange( ) {
              for (OrderStatusChangeListener x:statusChangeListeners) {
                    try {
                         x.dispatchOrderStatusChange(this );
                    } catch (java.util.ConcurrentModificationException e) {
                         logger.error("** fireStatusChange: ConcurrentModificationException "+e.getMessage());
                         logger.error(e.getStackTrace());
                         e.printStackTrace();
      public Order() {
          ID = generateID();
          originalID = ID;
      public Object clone() {
          try {
            Order order = (Order)super.clone();
            order.setOriginalID(getID());
            order.setID(order.generateID());
            return order;
          } catch (CloneNotSupportedException e) {
          return null;
        class ReplaceProcessor extends AbstractProcessor {
          // this is executed on the node that owns the data,
          // no network access required
          public Object process(InvocableMap.Entry entry) {
            Order o = (Order)entry.getValue();
            int counter=0;
            float limit=0f;
            float stop=0f;
            int qty=o.quantity;
            boolean limitChanged=false, qtyChanged=false, stopChanged=false;
            for (Replace r:o.replaceList) {
              if (r.pending) {
                counter++;
                if (r.limit!=null) {limit=r.limit; limitChanged=true;}
                if (r.qty!=null) {qty=r.qty; qtyChanged=true;}
                if (r.stop!=null) {stop=r.stop; stopChanged=true;}
            if (limitChanged) o.limit=limit;
            if (qtyChanged) o.quantity=qty;
            if (stopChanged) o.stop=stop;
            if (limitChanged || qtyChanged || stopChanged)
            entry.setValue(o);
            return counter;
      public void applyPendingReplaces() {
         cache.invoke(this.ID, new ReplaceProcessor());
      private List <Replace>replaceList;
      public boolean isReplacePending() {
        if (replaceList==null) return false; 
        for (Replace r:replaceList) {
          if (r.pending==true) return true;
        return false;
      class ReplaceAddProcessor extends AbstractProcessor {
        // this is executed on the node that owns the data,
        // no network access required
        Replace r;
        public ReplaceAddProcessor(Replace r){
          this.r=r;
        public Object process(InvocableMap.Entry entry) {
          Order o = (Order)entry.getValue();
          if (o.replaceList==null) o.replaceList = new LinkedList();
          o.replaceList.add(r);
          return replaceList.size();
      public void replaceOrder(Replace r) {
          //  Order.cache.invoke(this.ID, new ReplaceAddProcessor(r));
          Order o = (Order)Order.cache.get(this.ID);
          if (o.replaceList==null) o.replaceList = new LinkedList();
          o.replaceList.add(r);
          Order.cache.put(this.ID, o);
      public boolean isCancelRequestedOrIsCanceled() {
        // change to cancelrequested lock, not ack lock
        if (canceled) return true;
    //  ValueExtractor extractor = new ReflectionExtractor("getCancelCount");
    //  int cc = (Integer)cache.invoke( this.ID , extractor );
        Order o = (Order)cache.get(this.ID);
        int cc = o.getCancelCount();
        return cc > 0 || o.isCanceled();
        class Replace implements Serializable{
        boolean pending=true;
        public Float limit=null;
        public Float stop=null;
        public Integer qty=null;
        public Replace() {
      }and then a portion of my OrderExchange.java Enum looks like this:
    class SymbolPair implements java.io.Serializable {
      String symbol;
      String suffix;
      SymbolPair(String symbol, String suffix) {
        this.symbol = symbol;
        this.suffix = suffix;
      public boolean equals(Object o) {
        SymbolPair x = (SymbolPair)o;
        return (this.symbol == x.symbol && this.suffix == x.suffix);
      public int hashCode() {
        return (symbol + "." + suffix).hashCode();
      public String toString() {
        if (suffix == null)
          return symbol;
        return symbol + "." + suffix;
    public enum OrderExchange implements java.io.Serializable {
      SIM("S", false, '.', OrderTIF.DAY) {
        public String getStandardizedStockSymbol(String symbol, String suffix) {
          return symbol + "." + suffix;
        public SymbolPair getExchangeSpecificStockSymbol(String symbol) {
          return new SymbolPair(symbol, null);
      TSX("c", false, '.', OrderTIF.DAY) {
        public String getStandardizedStockSymbol(String symbol, String suffix) {
          String x = externalSymbolPairToInternalSymbolMap_GS.get(new SymbolPair(symbol, suffix));
          return x == null ? symbol : x;
        public SymbolPair getExchangeSpecificStockSymbol(String symbol) {
          SymbolPair sa = internalSymbolToExternalSymbolPairMap_GS.get(symbol);
          return sa == null ? new SymbolPair(symbol, null) : sa;
      NYSE("N", false, '.', OrderTIF.DAY) {
        public String getStandardizedStockSymbol(String symbol, String suffix) {
          String x = externalSymbolPairToInternalSymbolMap_GS.get(new SymbolPair(symbol, suffix));
          return x == null ? symbol : x;
        public SymbolPair getExchangeSpecificStockSymbol(String symbol) {
          SymbolPair sa = internalSymbolToExternalSymbolPairMap_GS.get(symbol);
          return sa == null ? new SymbolPair(symbol, null) : sa;
      ARCA("C", false, '.', OrderTIF.GTD) {
        public String getStandardizedStockSymbol(String symbol, String suffix) {
          String x = externalSymbolPairToInternalSymbolMap_GS.get(new SymbolPair(symbol, suffix));
          return x == null ? symbol : x;
        public SymbolPair getExchangeSpecificStockSymbol(String symbol) {
          SymbolPair sa = internalSymbolToExternalSymbolPairMap_GS.get(symbol);
          return sa == null ? new SymbolPair(symbol, null) : sa;
      public abstract String getStandardizedStockSymbol(String symbol, String suffix);
      public abstract SymbolPair getExchangeSpecificStockSymbol(String symbol);
      private static Map<SymbolPair, String> externalSymbolPairToInternalSymbolMap_GS = new HashMap<SymbolPair, String>();
      private static Map<SymbolPair, String> externalSymbolPairToInternalSymbolMap_ARCA = new HashMap<SymbolPair, String>();
      private static Map<String, SymbolPair> internalSymbolToExternalSymbolPairMap_GS = new HashMap<String, SymbolPair>();
      private static Map<String, SymbolPair> internalSymbolToExternalSymbolPairMap_ARCA = new HashMap<String, SymbolPair>();
      private static Object[] toArrayOutputArray = null;
      static {
        String SQL = null;
        try {
          Connection c = MySQL.connectToMySQL("xxx", "xxx", "xxx", "xxx");
          SQL = "SELECT symbol, ARCASYMBOL, INETSYMBOL, ARCASYMBOLSUFFIX, INETSYMBOLSUFFIX from oms.tblsymbolnew";
          Statement stmt = c.createStatement();
          ResultSet rs = stmt.executeQuery(SQL);
          while (rs.next()) {
            String symbol = rs.getString("symbol");
            if (rs.getString("ARCASYMBOL") != null) {
              if (!symbol.equals(rs.getString("ARCASYMBOL")) || rs.getString("ARCASYMBOLSUFFIX") != null) {
                String suffix = rs.getString("ARCASYMBOLSUFFIX");
                SymbolPair sp = new SymbolPair(rs.getString("ARCASYMBOL"), suffix);
                internalSymbolToExternalSymbolPairMap_ARCA.put(symbol, sp);
                externalSymbolPairToInternalSymbolMap_ARCA.put(sp, symbol);
        } catch (Exception e) {
          System.out.println(SQL);
          e.printStackTrace();
          System.exit(0);
      static {
        populateSymbolToDestination();
      static Logger logger = Logger.getLogger(OrderExchange.class);
      private static HashMap<String, OrderExchange> symbolToDestination = new HashMap<String, OrderExchange>();
      private final String tag100;
      private final boolean usesSymbolSuffixTag;
      private final char symbolSuffixSeparator;
      private final OrderTIF defaultTif;
      private static final String soh = new String(new char[] { '\u0001' });
      private OrderExchange(String tag100, boolean usesSymbolSuffixTag, char symbolSuffixSeparator, OrderTIF defaultTif) {
        this.tag100 = tag100;
        this.defaultTif = defaultTif;
        this.usesSymbolSuffixTag = usesSymbolSuffixTag;
        this.symbolSuffixSeparator = symbolSuffixSeparator;
      public OrderTIF getDefaultTif() {
        return defaultTif;
      public String getTag100() {
        return tag100;
      public char getSymbolSuffixSeparator() {
        return symbolSuffixSeparator;
      public static OrderExchange getOrderExchangeByExchangeName(String name) {
        for (OrderExchange d : OrderExchange.values()) {
          if (d.toString().equalsIgnoreCase(name.trim())) {
            return d;
        return null;
      Thanks,
    Andrew

    Hi Andrew
    The only way to serialize object, so that they can be used by other languages than Java is to use the Portable Object Format.
    The implementation of this requires you to implement the PortableObject interface in Java. PortableObject defines two methods
    public void readExternal(PofReader reader);
    public void writeExternal(PofWriter writer);
    Also you need to add a POF config file that ties the type to a type id.
    In C++ each type needs two template methods implemented to seralize and deserialize. But first it needs to register the data type with the same type id as for the Java type using the COH_REGISTER_MANAGED_CLASS macro.
    Secondly analogs to Java implement the serializer stubs
    template<> void serialize<Type>(PofWriter::Handle hOut, const Type& type);
    template<> Type deserialize<Type>(PofReader::Handle hIn);
    For C# your serializable types need to implement IPortableObject, with it's two methods:
    void IPortableObject.ReadExternal(IPofReader reader);
    void IPortableObject.WriteExternal(IPofWriter writer);
    Similar to Java C# uses a POF configuration file, the same type id should bind to the corresponding C# type.
    For more information see
    POF Configuation: http://coherence.oracle.com/display/COH34UG/POF+User+Type+Configuration+Elements
    C++: http://coherence.oracle.com/display/COH34UG/Integrating+user+data+types
    C#: http://wiki.tangosol.com/display/COHNET33/Configuration+and+Usage#ConfigurationandUsage-PofContext
    Hope that helps!
    /Charlie
    Edited by: Charlie Helin on Apr 30, 2009 12:31 PM

  • ConcurrentModificationException while applying filters in BPM workspace

    Hi,
    We have a Oracle BPM 10g 10.3.3. for weblogic environment. Getting this below error whenever I apply filters in workspace. The work items does not get refreshed either. However when I do a refresh in the browser('F5') the filters are getting applied and the work items are coming up filtere? Is there any way to get rid of this error? Is this a bug in the weblogic server?
    java.util.ConcurrentModificationException
    at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
    at java.util.AbstractList$Itr.next(AbstractList.java:343)
    at com.bea.opencontrols.ajax.XPAjaxResponse.ProcessControlRefreshHTML(XPAjaxResponse.java:550)
    at com.bea.opencontrols.ajax.AjaxRefreshPhaseListener.beforePhase(AjaxRefreshPhaseListener.java:146)
    at fuego.workspace.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:126)
    at fuego.workspace.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:76)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at fuego.web.filter.SingleThreadPerSessionFilter.doFilter(SingleThreadPerSessionFilter.java:64)
    at fuego.web.filter.BaseFilter.doFilter(BaseFilter.java:63)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at fuego.web.filter.NoCacheNoStoreFilter.doFilter(NoCacheNoStoreFilter.java:39)
    at fuego.web.filter.BaseFilter.doFilter(BaseFilter.java:63)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at fuego.web.filter.CharsetFilter.doFilter(CharsetFilter.java:48)
    at fuego.web.filter.BaseFilter.doFilter(BaseFilter.java:63)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    I would appreciate your help!
    Thanks,
    Ram

    Hi
    I am getting the same problem, did you find any solution for it?
    Version 11.1.1.7, this issue not occurs in the previous version... 11.1.1.6
    Thank you
    Wilson

  • GeneralPath not Filling entire path

    Hi,
    i'm trying to draw a graph using a GeneralPath.
    the problem is that if at the bottom it's not wide enough the top ends
    up lower than it's supposed to.
    Here is a crude example (i just put this together as an
    example)please compile and run this program
    -----------------------PathTest.java----------------------------------
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.geom.*;
    public class PathTest extends JFrame implements ActionListener{
    public PathTest(){
    setSize(400,500);
    setTitle("TestGraph's Frame");
    addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent e){
    System.exit(0);
    Container contentPane = getContentPane();
    p = new PathPanel();
    contentPane.add(p,"Center");
    String [] tOrF = {"Fill","Just Draw"};
    JComboBox comb = new JComboBox(tOrF);
    comb.setSelectedIndex(1);
    comb.addActionListener(this);
    contentPane.add(comb,"North");
    public void actionPerformed(ActionEvent evt){
    JComboBox comb = (JComboBox)evt.getSource();
    String f = (String)comb.getSelectedItem();
    if(f.trim().equals("Fill"))
    p.setFill(true);
    else
    p.setFill(false);
    p.repaint();
    public static void main(String [] args){
    JFrame frame = new PathTest();
    frame.show();
    PathPanel p = null;
    class PathPanel extends JPanel{
    boolean fill = true;
    public void setFill(boolean fill){this.fill = fill;}
    public void paintComponent(Graphics g){
    Graphics2D g2d = (Graphics2D)g;
    double [] pixPoints = {365.0,290.0,370.0,89.0,375.0,290.0};
    paintPath(g2d,pixPoints);
    double [] pixPoints1 = {10.0,290,200.0,89.0,299.0,290.00};
    paintPath(g2d,pixPoints1);
    public void paintPath(Graphics2D g2d,double [] pixPoints){
    GeneralPath path = new GeneralPath();
    g2d.drawLine(0,(int)pixPoints[1],this.getWidth(),(int)pixPoints[1]);
    g2d.drawLine(0,89,this.getWidth(),89);
    for(int i =0 ; i < pixPoints.length -1;i +=2){
    double pix [] = {pixPoints[i],pixPoints[i+1]};
    if(i ==0)
    path.moveTo((float)pix[0],(float)pix[1]);
    else
    path.lineTo((int)pix[0],(int)pix[1]);
    path.closePath();
    if(fill)
    g2d.fill(path);
    else
    g2d.draw(path);
    as you see the problem is only if i use g2d.fill and not when i use
    g2d.draw.....
    any help would be greatly appreciated
    Thanks,
    Sol

    OK,
    sorry everybody. i just found out that means something when u post it, so here is the source code in code tags..
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.geom.*;
    public class PathTest extends JFrame implements ActionListener{
        public PathTest(){
            setSize(400,500);
          setTitle("TestGraph's Frame");
          addWindowListener(new WindowAdapter(){
            public void windowClosing(WindowEvent e){
                System.exit(0);
          Container contentPane = getContentPane();
           p = new PathPanel();
          contentPane.add(p,"Center");
          String [] tOrF = {"Fill","Just Draw"};
          JComboBox comb = new JComboBox(tOrF);
          comb.setSelectedIndex(1);
          comb.addActionListener(this);
          contentPane.add(comb,"North");
        public void actionPerformed(ActionEvent evt){
            JComboBox comb  = (JComboBox)evt.getSource();
            String f = (String)comb.getSelectedItem();
            if(f.trim().equals("Fill"))
             p.setFill(true);
            else
             p.setFill(false);
            p.repaint();
        public static void main(String [] args){
            JFrame frame = new PathTest();
            frame.show();
        PathPanel p = null;
    class PathPanel extends JPanel{
        boolean fill = true;
        public void setFill(boolean fill){this.fill = fill;}
        public void paintComponent(Graphics g){
            Graphics2D g2d = (Graphics2D)g;
            double [] pixPoints = {365.0,290.0,370.0,89.0,375.0,290.0};
            paintPath(g2d,pixPoints);
            double [] pixPoints1 = {10.0,290,200.0,89.0,299.0,290.00};
            paintPath(g2d,pixPoints1);
        public void paintPath(Graphics2D g2d,double [] pixPoints){
         GeneralPath path = new GeneralPath();
    g2d.drawLine(0,(int)pixPoints[1],this.getWidth(),(int)pixPoints[1]);
         g2d.drawLine(0,89,this.getWidth(),89);
         for(int i =0 ; i < pixPoints.length -1;i +=2){
            double pix [] = {pixPoints,pixPoints[i+1]};
    if(i ==0)
    path.moveTo((float)pix[0],(float)pix[1]);
    else
    path.lineTo((int)pix[0],(int)pix[1]);
    path.closePath();
    if(fill)
    g2d.fill(path);
    else
    g2d.draw(path);

  • ConcurrentModificationException - concurrent requests while lazy loading a relationship without server warmup

    Hello,
    We are running into a ConcurrentModificationException when we are firing 100 concurrent requests without warming up the server.
    Looks like the error is coming up when a a relationship is  being lazy loaded.
    We are seeing this behavior consistently. Once the server is warmed up, we are not seeing any issues under concurrency.
    I am attaching the two DAOs that are related to the issue.
    ExtensionPointRulesetDAO has a M:1 relationship with RuleSetEntityDAO and we are getting the error when ExtensionPointRuleSetDAO._persistence_get_ruleSetEntity() is called.
    2015-02-13 12:14:24,021 ERROR [uimadmin] [[ACTIVE] ExecuteThread: '11' for queue: 'weblogic.kernel.Default (self-tuning)'] [ExtensionRuleMediator] [INV-180012] Failed to retrieve the extension point ruleset: null.
    java.util.ConcurrentModificationException
        at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:859)
        at java.util.ArrayList$Itr.next(ArrayList.java:831)
        at org.eclipse.persistence.internal.databaseaccess.ParameterizedSQLBatchWritingMechanism.executeBatchedStatements(ParameterizedSQLBatchWritingMechanism.java:134)
        at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:574)
        at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:535)
        at org.eclipse.persistence.internal.sessions.AbstractSession.basicExecuteCall(AbstractSession.java:1717)
        at org.eclipse.persistence.sessions.server.ClientSession.executeCall(ClientSession.java:253)
        at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:207)
        at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:193)
        at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.selectOneRow(DatasourceCallQueryMechanism.java:666)
        at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectOneRowFromTable(ExpressionQueryMechanism.java:2656)
        at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectOneRow(ExpressionQueryMechanism.java:2627)
        at org.eclipse.persistence.queries.ReadObjectQuery.executeObjectLevelReadQuery(ReadObjectQuery.java:450)
        at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:1081)
        at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:844)
        at org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1040)
        at org.eclipse.persistence.queries.ReadObjectQuery.execute(ReadObjectQuery.java:418)
        at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:1128)
        at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2871)
        at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1516)
        at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1498)
        at org.eclipse.persistence.internal.indirection.QueryBasedValueHolder.instantiate(QueryBasedValueHolder.java:98)
        at org.eclipse.persistence.internal.indirection.QueryBasedValueHolder.instantiateForUnitOfWorkValueHolder(QueryBasedValueHolder.java:113)
        at org.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder.instantiateImpl(UnitOfWorkValueHolder.java:156)
        at org.eclipse.persistence.internal.indirection.UnitOfWorkValueHolder.instantiate(UnitOfWorkValueHolder.java:222)
        at org.eclipse.persistence.internal.indirection.DatabaseValueHolder.getValue(DatabaseValueHolder.java:88)
        at oracle.communications.platform.entity.impl.ExtensionPointRuleSetDAO._persistence_get_ruleSetEntity(ExtensionPointRuleSetDAO.java)
        at oracle.communications.platform.entity.impl.ExtensionPointRuleSetDAO.getRuleSetEntity(ExtensionPointRuleSetDAO.java:272)
        at oracle.communications.inventory.extensibility.extension.util.ExtensionRuleMediator.findExtensionPointRule(ExtensionRuleMediator.java:267)
        at oracle.communications.inventory.extensibility.extension.util.ExtensionRuleMediator.initialize(ExtensionRuleMediator.java:134)
        at oracle.communications.inventory.extensibility.extension.SpecBasedArgumentExtension.configureMediator(SpecBasedArgumentExtension.aj:134)
    Thanks,
    Ravindra

    Hi,
    Found a note explaining the significance of these errors.
    It says:
    "NZE-28862: SSL connection failed
    Cause: This error occurred because the peer closed the connection.
    Action: Enable Oracle Net tracing on both sides and examine the trace output. Contact Oracle Customer support with the trace output."
    For further details you may refer the Note: 244527.1 - Explanation of "SSL call to NZ function nzos_Handshake failed" error codes
    Thanks & Regards,
    Sindhiya V.

  • ConcurrentModificationException in jsp

    Hi
    I my application, sometimes only I have this ConcurrentModificationException
    2009-06-18 09:09:24,115 DEBUG: myapp.web.web.ctrl.ContentController(564) - Setting form session attribute [myapp.web.ctrl.ContentController.FORM.cmd] to: myapp.cmd.ContentCommand@54854bb0
    2009-06-18 09:09:24,118 ERROR: org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/mobile].[jsp](711) - Servlet.service() for servlet jsp threw exception
    java.util.ConcurrentModificationException
         at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
         at java.util.AbstractList$Itr.next(AbstractList.java:343)
         at org.apache.taglibs.standard.tag.common.core.ForEachSupport$SimpleForEachIterator.next(ForEachSupport.java:108)
         at org.apache.taglibs.standard.tag.common.core.ForEachSupport.next(ForEachSupport.java:130)
         at javax.servlet.jsp.jstl.core.LoopTagSupport.doAfterBody(LoopTagSupport.java:266)
         at org.apache.jsp.WEB_002dINF.views.content_jsp._jspx_meth_c_005fforEach_005f18(content_jsp.java:9310)
         at org.apache.jsp.WEB_002dINF.views.content_jsp._jspx_meth_c_005fif_005f59(content_jsp.java:9166)
         at org.apache.jsp.WEB_002dINF.views.content_jsp._jspx_meth_c_005fif_005f58(content_jsp.java:9107)
         at org.apache.jsp.WEB_002dINF.views.content_jsp._jspService(content_jsp.java:1562)
         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
         at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
         at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
         at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
         at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
         at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399)
         at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
         at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:240)
         at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:258)
         at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1174)
         at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:901)
         at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
         at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
         at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
         at org.apache.catalina.cluster.tcp.ReplicationValve.invoke(ReplicationValve.java:347)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
         at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
         at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
         at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
         at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
         at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
         at java.lang.Thread.run(Thread.java:619)The problem here is it happens in jsp code. I can debug this kind of exception in Java code but do not know how to deal this exception in jsp file.
    Could you please provide a suggestion
    Many thanks

    The problem here is it happens in jsp code. I can debug this kind of exception in Java code but do not know how to deal this exception in jsp file.This is a lesson to be learnt. It is one of the reasons why it is not a good idea to place java code in jsp.
    I my application, sometimes only I have this ConcurrentModificationExceptionRead the following link to find out when ConcurrentModificationException is thrown
    [http://java.sun.com/j2se/1.5.0/docs/api/java/util/ConcurrentModificationException.html|http://java.sun.com/j2se/1.5.0/docs/api/java/util/ConcurrentModificationException.html] .

Maybe you are looking for

  • How to calculate the percentages

    Hi Gurus!! I am having a key figure(say suppose KF1) which had undergone currency conversions in query designer level to USD. Now i want one more field(KF2) in my report in which i should get the values of percentages based on KF1 and its overall res

  • Firewire 800 and Iomega 2Tb External Drive

    I started using an Iomega 2Tb as Time Machine just over one year ago. Initially it connected to my iMac 27" and worked perfectly with a Firewire 800 cable. After a couple of months it suddenly stopped working and was not recognised in Finder or Disc

  • Issue editing template for website

    So, I am new to Dreamweaver and constantly baffled about finding solutions to problems on my own. My issue is this. I have been assigned the duty of updating and modifying our company's webpage. I had nothing to do with the creation of this page, so

  • Safari Pretending it is IE

    I have installed the Debug menu item in Safari and having Safari pretend it is Windows MSIE 6.0 has solved some other problems I was having, but I was curious to see if anyone was aware of a way to have Safari permanently identify itself as Windows M

  • Diplay Domain Value Range.

    Hi, I wish to display Value Range as define in Domain for certain field in R/3. Eg, ZSEX domain 's Value Range in R/3 as below 01 Male 02 Female Assume ZZSEX field is using ZSEX domain;and Expected "Male" to be display when field value ZZSEX = 01. Ho