Concurrent modification exception inside fully synchronized code

Hello,
We have a private list
private LinkedList<ConnectionChannel> channels = new LinkedList<ConnectionChannel>();that is accessed by multiple threads. One is traversing the items and operating on them, while another thread is adding and removing items to the list. Each such access to the list is protected with
synchronized(channels) {
} scopes so that no simultanious access to this list is possible.
We do however get Concurrent Modification excpetions on this list when we do performance tests with heavy load on the sun server + heavy load on the java server itself. I cannot understand this problem in any other way that this must be a problem with the virtual machine! I know you guys probably will object to this furiously, but I am 100% sure that there is no logical error in my code.
We're running on jre 1.5..0_03. uname -a on my solaris host gives me:
SunOS trinity 5.8 Generic_108528-27 sun4u sparc SUNW,Sun-Fire-480R.
Best regards,
Helge Fredriksen

I'm very sure about this, yes. Here's all blocks where the list is used:
        synchronized (channels) {
            logger.info("Connecting observer channel from client at " + token.getSource());
            channels.add(new ConnectionChannel(token, globalObserver));
       synchronized (channels) {
            if (logger.isDebugEnabled()) {
                logger.debug("Sending local event to processing in " + channels.size() + " parallel channel(s)");
            for (ConnectionChannel connectionChanel : channels) {
                connectionChanel.send(event);
        synchronized (channels) {
            for (Iterator<ConnectionChannel> iterator = channels.iterator(); iterator.hasNext();) {
                ConnectionChannel connectionChannel = iterator.next();
                if (connectionChannel.getToken().getId().equals(token.getId())) {
                    iterator.remove();
                    logger.info("Removing connection channel to " + token.getSource());
                    return;
        }and
        synchronized (channels) {
            for (ConnectionChannel channel : channels) {
                channel.flush(5000);
        }

Similar Messages

  • [svn] 1043: Bug: LCDS-184 - Concurrent modification exception thrown during remote subscription management

    Revision: 1043
    Author: [email protected]
    Date: 2008-03-31 15:22:13 -0700 (Mon, 31 Mar 2008)
    Log Message:
    Bug: LCDS-184 - Concurrent modification exception thrown during remote subscription management
    QA: Yes
    Doc: No
    Details:
    Make the 'subscriptions' set in MessageClient/RemoteMessageClient concurrent modification safe.
    Ticket Links:
    http://bugs.adobe.com/jira/browse/LCDS-184
    Modified Paths:
    blazeds/branches/3.0.x/modules/core/src/java/flex/messaging/services/messaging/RemoteMess ageClient.java

  • [svn] 1044: Bug: LCDS-184 - Concurrent modification exception thrown during remote subscription management

    Revision: 1044
    Author: [email protected]
    Date: 2008-03-31 15:23:07 -0700 (Mon, 31 Mar 2008)
    Log Message:
    Bug: LCDS-184 - Concurrent modification exception thrown during remote subscription management
    QA: Yes
    Doc: No
    Details:
    Make the 'subscriptions' set in MessageClient/RemoteMessageClient concurrent modification safe.
    Ticket Links:
    http://bugs.adobe.com/jira/browse/LCDS-184
    Modified Paths:
    blazeds/branches/3.0.x/modules/core/src/java/flex/messaging/MessageClient.java

  • How to catch Exception inside the native code

    Hello,
    I have an error of unexpected exception during running native code,it occurrs randomly, not every time.
    the error text is:
    An unexpected exception has been detected in native code outside the VM.
    Unexpected Signal : 11 occurred at PC=0x9535F359
    Function=acy_match+0xC6
    Library=/usr/lib/libNegativeMatcher.so
    I don't know what exactly cause the crash inside the c code but I think it might be memory leak . What I'm concern is that this exception cause program termination.
    I have few questions:
    1. This exception cause the java program to end. How can I catch this exception and avoid program termination?
    2. What is 0xC6 in:
    Function=acy_match+0xC6
    and PC=0x9535F359?
    Can it help me track the problem inside the native code?
    Thanks for your help.

    An unexpected exception has been detected in native
    code outside the VM.
    Unexpected Signal : 11 occurred at PC=0x9535F359
    Function=acy_match+0xC6
    Library=/usr/lib/libNegativeMatcher.so
    I don't know what exactly cause the crash inside the
    c code but I think it might be memory leak . What
    I'm concern is that this exception cause program
    termination.I doubt it is a memory leak (actually I am rather certain that another error would occur if it was just memory exhaustion.)
    I have few questions:
    1. This exception cause the java program to end. How
    can I catch this exception and avoid program
    termination?I suspect that would be a really bad idea. That particular signal very likely indicates that you have corrupted memory. Continuing is unlikely to work.
    2. What is 0xC6 in:
    As a guess it is an offset into the compiled code which indicates where the memory problem was detected.
    That it unlikely to help you with a pointer/memory problem because that is where it was detected and not where it happened. By comparing the source you might be able to determine what was bad and then trace it back.

  • Concurrent modification exception. What is causing this?

    Here is my the pasrt of code causing the exception I have put a line comment ti indicate the line where it occurs. In addition I would like to know the cause of this eception as its a first for me.
    Here is the full exception ....
    Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException
            at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:3
    72)
            at java.util.AbstractList$Itr.next(AbstractList.java:343)
            at Contact.modifyExisting(Contact.java:432)
            at Phonebook1.actionPerformed(Phonebook1.java:236)
            at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:19
    95)
            at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.jav
    a:2318)
            at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel
    .java:387)
            at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242
            at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
            at javax.swing.plaf.basic.BasicRootPaneUI$Actions.actionPerformed(BasicR
    ootPaneUI.java:191)
            at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1636)
            at javax.swing.JComponent.processKeyBinding(JComponent.java:2849)
            at javax.swing.KeyboardManager.fireBinding(KeyboardManager.java:267)
            at javax.swing.KeyboardManager.fireKeyboardAction(KeyboardManager.java:2
    16)
            at javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.
    java:2926)
            at javax.swing.JComponent.processKeyBindings(JComponent.java:2918)
            at javax.swing.JComponent.processKeyEvent(JComponent.java:2812)
            at java.awt.Component.processEvent(Component.java:5815)
            at java.awt.Container.processEvent(Container.java:2058)
            at java.awt.Component.dispatchEventImpl(Component.java:4410)
            at java.awt.Container.dispatchEventImpl(Container.java:2116)
            at java.awt.Component.dispatchEvent(Component.java:4240)
            at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.ja
    va:1848)
            at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboard
    FocusManager.java:697)
            at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeybo
    ardFocusManager.java:962)
            at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeybo
    ardFocusManager.java:834)
            at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFoc
    usManager.java:661)
            at java.awt.Component.dispatchEventImpl(Component.java:4282)
            at java.awt.Container.dispatchEventImpl(Container.java:2116)
            at java.awt.Window.dispatchEventImpl(Window.java:2429)
            at java.awt.Component.dispatchEvent(Component.java:4240)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
            at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThre
    ad.java:273)
            at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.
    java:183)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
    ad.java:173)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)and the code.......
    if(modifiedWork.length()>0)
                             try
                                  modifiedWorkNum = Integer.parseInt(modifiedWork);
                             } //////// THIS IS LINE 372
                             catch(Exception e)
                                  JOptionPane.showMessageDialog(null,"You may only enter numbers for a valid phone number to try again press the modify nutton again.","Error",JOptionPane.ERROR_MESSAGE);
                                  validModify = false;
                                  return;
                        }Thanks in advance...

    Would you mind looking at my modifyExisting method I apologise as it is long. I have icluded a line comment on line 432.
    public void modifyExisting()
         {// Start of modifyExisting()
              int count = 0;
              int count1 = 0;
              int count2 = 0;
              int modifiedCellNum, modifiedWorkNum, modifiedHomeNum = 0;
              boolean validModify = true;
              boolean found = false;
              String currentHome = "";
              String currentWork = "";
              String currentCell = "";
              if(phoneList.size() > 0)
                   String nameOfContactToEdit = JOptionPane.showInputDialog(null,"Please enter the name of the contact you wish to edit details for or press cancel to exit");
                   if(nameOfContactToEdit == null)
                        finish();
                   if(nameOfContactToEdit.trim().length()<= 0)
                        JOptionPane.showMessageDialog(null,"You have entered an invalid name. Please try again.","Error",JOptionPane.ERROR_MESSAGE);
                        modifyExisting();
                        validModify = false;
                        return;
                   String surnameOfContactToEdit = JOptionPane.showInputDialog(null,"Please enter the the surname for "+nameOfContactToEdit+" if one exists or press cancel to exit.");
                   if(surnameOfContactToEdit == null)
                        finish();
                   for(Person m: phoneList)
                        m = phoneList.get(count);
                        if((m.name).equals(nameOfContactToEdit.trim().toUpperCase())&&(m.surname).equals(surnameOfContactToEdit.trim().toUpperCase()))
                             currentHome = m.home;
                             currentWork = m.work;
                             currentCell = m.cell;
                             found = true;
                        count ++;
                   if(found == true)
                        String modifiedName = JOptionPane.showInputDialog("Please enter the new name for contact or press cancel to keep it as "+nameOfContactToEdit+".");
                        if(modifiedName == null)
                             modifiedName = nameOfContactToEdit;
                        if(modifiedName.trim().length()<= 0)
                             JOptionPane.showMessageDialog(null,"You have entered an invalid name. Please press the modify button to try again.","Error",JOptionPane.ERROR_MESSAGE);
                             return;
                        if(modifiedName.trim().length()>10)
                             JOptionPane.showMessageDialog(null,"You may not enter a new name longer than 10 characters long. Please try again.","Error",JOptionPane.ERROR_MESSAGE);
                             validModify = false;
                             modifyExisting();
                             return;
                        String modifiedSurname = JOptionPane.showInputDialog("Please enter the new surname for contact or press cancel to keep it as "+surnameOfContactToEdit+".");
                        if(modifiedSurname == null)
                             modifiedSurname = surnameOfContactToEdit;
                        if(modifiedSurname.trim().length()>10)
                             JOptionPane.showMessageDialog(null,"You may not enter a surname longer than 10 characters long. Please try again.","Error",JOptionPane.ERROR_MESSAGE);
                             validModify = false;
                             modifyExisting();
                             return;
                        String modifiedHome = JOptionPane.showInputDialog("Please enter a new home number for "+modifiedName+" or press cancel to keep it as is.");
                        if(modifiedHome == null)
                             modifiedHome = currentHome;
                        if(modifiedHome.length()>0)
                             try
                                  modifiedHomeNum = Integer.parseInt(modifiedHome);
                             catch(Exception e)
                                  JOptionPane.showMessageDialog(null,"You may only enter numbers for a valid phone number to try again press the modify nutton again.","Error",JOptionPane.ERROR_MESSAGE);
                                  validModify = false;
                                  return;
                        if(modifiedHome.length() > 10)
                             JOptionPane.showMessageDialog(null,"You may not enter a number longer than 10 characters long. Please press the modify button to try again.","Error",JOptionPane.ERROR_MESSAGE);
                             validModify = false;
                             return;
                        String modifiedWork = JOptionPane.showInputDialog("Please enter a new home number for "+modifiedName+" or press cancel to keep it as is.");
                        if(modifiedHome == null)
                             modifiedWork = currentWork;
                        if(modifiedWork.length()>0)
                             try
                                  modifiedWorkNum = Integer.parseInt(modifiedWork);
                             catch(Exception e)
                                  JOptionPane.showMessageDialog(null,"You may only enter numbers for a valid phone number to try again press the modify nutton again.","Error",JOptionPane.ERROR_MESSAGE);
                                  validModify = false;
                                  return;
                        if(modifiedWork.length() > 10)
                             JOptionPane.showMessageDialog(null,"You may not enter a number longer than 10 characters long. Please press the modify button to try again.","Error",JOptionPane.ERROR_MESSAGE);
                             validModify = false;
                             return;
                        String modifiedCell = JOptionPane.showInputDialog("Please enter a new home number for "+modifiedName+" or press cancel to keep it as is.");
                        if(modifiedCell == null)
                             modifiedCell = currentCell;
                        if(modifiedCell.length()>0)
                             try
                                  modifiedCellNum = Integer.parseInt(modifiedCell);
                             catch(Exception e)
                                  JOptionPane.showMessageDialog(null,"You may only enter numbers for a valid phone number to try again press the modify nutton again.","Error",JOptionPane.ERROR_MESSAGE);
                                  validModify = false;
                                  return;
                        if(modifiedCell.length() > 10)
                             JOptionPane.showMessageDialog(null,"You may not enter a number longer than 10 characters long. Please press the modify button to try again.","Error",JOptionPane.ERROR_MESSAGE);
                             validModify = false;
                             return;
                        if((modifiedHome.length() <= 0) && (modifiedWork.length() <= 0) && (modifiedCell.length() <= 0))
                             JOptionPane.showMessageDialog(null,"The contact must have at least one number to be included in the phonebook. Please press modify button to try again.","Error",JOptionPane.ERROR_MESSAGE);
                             validModify = false;
                             return;
                        for(Person z: phoneList)
                             z = phoneList.get(count1);
                             if((z.name).equals(modifiedName.trim().toUpperCase()) && (z.surname).equals(modifiedSurname.trim().toUpperCase()))
                                  JOptionPane.showMessageDialog(null,"You may not enter duplicate contacts. Please try again.","Error",JOptionPane.ERROR_MESSAGE);
                                  validModify = false;
                                  modifyExisting();
                                  return;
                             count1 ++;
                        if(validModify == true)
                             for(Person contactToMod: phoneList)/////////////////////////////////////////////////////// line 432
                                  contactToMod = phoneList.get(count2);
                                  if((contactToMod.name.equals(nameOfContactToEdit.trim().toUpperCase())) && (contactToMod.surname.equals(surnameOfContactToEdit.trim().toUpperCase())))
                                       try
                                            contactToMod.setName(modifiedName.trim().toUpperCase());
                                            contactToMod.setSurname(modifiedSurname.trim().toUpperCase());
                                            contactToMod.setHome(modifiedHome);
                                            contactToMod.setWork(modifiedWork);
                                            contactToMod.setCell(modifiedCell);
                                            phoneList.add(contactToMod);
                                            JOptionPane.showMessageDialog(null,"Updated contact succesfully.","Information",JOptionPane.INFORMATION_MESSAGE);
                                       catch(Exception e)
                                            JOptionPane.showMessageDialog(null,"The contact was not updated. If probelm persists please contact system administrator.","Error",JOptionPane.ERROR_MESSAGE);
                                  count2 ++;
                   else
                        JOptionPane.showMessageDialog(null,"No contact with that name and surname exists. Please press the modify button to try again.","Error",JOptionPane.ERROR_MESSAGE);
              else
                   JOptionPane.showMessageDialog(null,"The phone list is empty and there are no contacts to modify.","Information Message",JOptionPane.INFORMATION_MESSAGE);
         }// End of modifyExisting()Edited by: Yucca on May 6, 2008 8:12 PM

  • List Concurrent Modification Exception

    The following codes throws the java.util.ConcurrentModificationException
    public static void main(String[] args) {
            List<Integer> list1 = new LinkedList<Integer>();
            ListIterator head = list1.listIterator();
            list1.add(1);
            while(head.hasNext()) {
                System.out.println(head.next());
        }But if I put list1.add(1) before
       ListIterator head = list1.listIterator();, then it runs fine.
    I've googled the exception and get the idea that it is caused by 2 threads accessing the list. Where are the 2 threads?
    Edited by: pinkyDeveloper on Feb 17, 2009 3:00 PM

    nothing to do with threads and everything to do with changing the list after getting the iterator and then iterating with the iterator. Don't do this unless you change the list through the iterator. You might want to read the API on LinkedList which states:
    The iterators returned by this class's iterator and listIterator methods are fail-fast: if the list 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.
    Edited by: Encephalopathic on Feb 17, 2009 3:13 PM

  • Concurrent modification exception while iterating through list

    Hi,
    I have a list of objects. I use for each loop in java to iterate through that list of objects and display them.
    The problem is that while iterating other thread can add or remove some objects from that list, and I get ConcurrentModificationException.
    How can I handle this problem. How can I be sure that I am iteration through the updated list.
    Thank you

    Synchonize on the list before iterating through it, and make sure that other code also synchronizes on the list before adding to it or removing from it. Using a list implementation that simply synchronizes all the methods (e.g. Vector) will not do that, you have to do it yourself.

  • Concurrent Modification Exception

    im running 2 "for" loops on a TreeMap's keySet. But everytime I remove a mapping from the inner loop using iterators I get the CMException. Is there a way to remove a mapping in the inner loop without getting the Exception?

    Try Using two references to the same iterator. At the moment, it sounds like you are getting an iterator twice, once for each loop.

  • Concurrent Modifications

    Hello,
    Just a question about a piece of code.
    I have an EJB3 application with a simple Job object containing Configuration objects in an ArrayList.
    The job is managed by a stateful session bean used to add and remove configurations. Cascading for the configurations inside the job is set to CascadeType.ALL.
    Adding configurations works fine, but removing them is a standard way results in ConcurrentModificationExceptions.
    I solved this exception by using thread synchronization inside the removeConfiguration method.
    The workaround code is
    public void removeConfiguration(String configName)
    throws InvalidParameterException, EntityDoesNotExistException,
            OperationNotAllowedException, StorageException {
            if(job == null){
                throw new OperationNotAllowedException("No job was created or selected.");
            //Since removing elements from the list on configurations resulted
            //in a concurrent modification exception at runtime, we had to create
            //a deep clone of the array of configurations. After creating the deep
            //clone, the element to remove will be removed from the deep copy.
            //Both operations require non modification guarantee to the original
            //configuration list.
            //After updating the deep copy, the new list of configurations will
            //be stored in the job. During this operation no modification guarantee
            //is required for the deep copy.
            List<Configuration> configurations = new ArrayList<Configuration>();
            //Prevent modifications to the original list of configurations.
            synchronized(job.getConfigurations()){
                //Create the deep clone while locking the original configurations.
                for(Configuration config : job.getConfigurations()){
                    configurations.add((Configuration)config.clone());
                //Remove the object to be removed from the deep copy while locking
                //the original configurations.
                for(Configuration config : job.getConfigurations()){
                    if(config.getDescription().equals(configName)){
                        configurations.remove(config);
            //Lock the deep copy and write it to the created/selected job.
            //Prevent modifications to the deep copy.
            synchronized(configurations){
                job.setConfigurations(configurations);
    }The code above works as expected and does not cause any exceptions.
    The simplified code causing exceptions to be thrown:
    public void removeConfiguration(String configName)
    throws InvalidParameterException, EntityDoesNotExistException,
              OperationNotAllowedException, StorageException {
            if(job == null){
                throw new OperationNotAllowedException("No job was created or selected.");
            for(Configuration config : job.getConfigurations()){
                    if(config.getDescription().equals(configName)){
                        job.getConfigurations().remove(config);
    }Allthough the first snippet works fine, it seems a bit strange to me. Isn't it recommended not to use synchronization inside business method and leave this up to the container?
    Or is the solution just fine and not a problem at all. Code should be neat and not prone to errors or unexpected behaviour. This is my concern for the code above.
    Better solutions are always welcome and will be Duke rewarded off course!
    Thanks for your opinion. Regards,
    Kurt

    Hi,
    I replaced the synchronized code with the one below and everything works as expected.
    Thanks to both of you for the fast response and for your help.
    The new snippet looks a lot more solid to me.
    public void removeConfiguration(String configName)
    throws InvalidParameterException, OperationNotAllowedException {
            ParameterValidation.stringNotNullNotEmpty(configName, "removeConfiguration", "config name", LOG);
            if(job == null){
                throw new OperationNotAllowedException("No job was created or selected.");
            ListIterator<Configuration> lstConfiguration = job.getConfigurations().listIterator();
            while(lstConfiguration.hasNext()){
                Configuration config = lstConfiguration.next();
                if(config.getDescription().equals(configName)){
                    lstConfiguration.remove();
    }Regards,
    Kurt

  • Concurrent Modification of HashMap

    I have a data structure like below
    HashMap <String, HashMap<String, Object>>
    Basically its a hashmap within a hash map. Its a global data structure.
    I have a timerTask which at every interval iterates the inner hashMap and Modifies an attribute in the Object (Say Decrements an Integer attribute in the Object)
    This will be continuing.
    While the iteration is in progress inside the TimerTask, if i try to Modify the HashMap from outside via some other method call, I receive a concurrent Modification Exception.
    My Question is, How to over come this Problem of managing both the things concurrently?

    wizsen wrote:
    HashMap <String, HashMap<String, Object>>
    Basically its a hashmap within a hash map.That's a bad idea. You almost certainly will want to encapsulate it in one way or another. You probably want a custom class to hold that structure.
    Its a global data structure.What does that mean?
    My Question is, How to over come this Problem of managing both the things concurrently?Avoid accessing the data structure from two places at the same time. Possibly using synchronization.

  • Concurrent modification jdo exception

    Hi,
    When multiple ejb instances/threads are accessing the same persistence
    object I get this exception:
    javax.jdo.JDOUserException: An instance was concurrently modified in another
    transaction (optimistic lock #: 238).
    FailedObject:dk.pine.mediamanager.ejb.model.Application-58
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.flush(PersistenceManager
    Impl.java:577)
    at
    com.solarmetric.kodo.ee.EEPersistenceManager.beforeCompletion(EEPersistenceM
    anager.java:192)
    at org.jboss.tm.TxCapsule.doBeforeCompletion(TxCapsule.java:1394)
    at org.jboss.tm.TxCapsule.commit(TxCapsule.java:364)
    (full stack trace included as attachment)
    The only field accessed is a collection - objects are added to the
    collection from several bean instances.
    Is kodo not supposed to handle this?
    The optimistic property is set to default (true). I've tried setting it to
    false, but then the app server hangs or dead locks occur in the database.
    System configuration:
    jdk 1.4
    kodo 2.4.2
    jboss 3.0.4
    sql server 2000
    windows 2000
    Thanks
    Jesper
    begin 666 concurrent-kodo-exception.txt
    M,C P,RTP,RTS,2 Q-3HP-CHR."PU,C @5%)!0T4@6V]R9RYJ8F]S<RYT;2Y4
    M>$-A<'-U;&5=(&9A:6QE9"!B969O<F4@8V]M<&QE=&EO;@T*:F%V87@N:F1O
    M+DI$3U5S97)%>&-E<'1I;VXZ($5R<F]R<R!W97)E(&1E=&5C=&5D('=H96X@
    M9FQU<VAI;F<@=&\@=&AE(&1A=&$@<W1O<F4N("!)9B!U<VEN9R!O<'1I;6ES
    M=&EC('1R86YS86-T:6]N<RP@=&AI<R!C;W5L9"!I;F1I8V%T92!T:&%T(&QO
    M8VL@=FEO;&%T:6]N<R!W97)E(&1E=&5C=&5D+B @5&AE(")G971.97-T961%
    M>&-E<'1I;VYS(B!M971H;V0@;V8@=&AI<R!%>&-E<'1I;VX@=VEL;"!R971U
    M<FX@=&AE('-P96-I9FEC(&5R<F]R<RX-"DYE<W1E9%1H<F]W86)L97,Z#0IJ
    M879A>"YJ9&\N2D1/57-E<D5X8V5P=&EO;CH@06X@:6YS=&%N8V4@=V%S(&-O
    M;F-U<G)E;G1L>2!M;V1I9FEE9"!I;B!A;F]T:&5R('1R86YS86-T:6]N("AO
    M<'1I;6ES=&EC(&QO8VL@(SH@,C,X*2X-"D9A:6QE9$]B:F5C=#ID:RYP:6YE
    M+FUE9&EA;6%N86=E<BYE:F(N;6]D96PN07!P;&EC871I;VXM-3@-"B @("!A
    M="!C;VTN<V]L87)M971R:6,N:V]D;RYR=6YT:6UE+E!E<G-I<W1E;F-E36%N
    M86=E<DEM<&PN9FQU<V@H4&5R<VES=&5N8V5-86YA9V5R26UP;"YJ879A.C4W
    M-RD-"B @("!A="!C;VTN<V]L87)M971R:6,N:V]D;RYE92Y%15!E<G-I<W1E
    M;F-E36%N86=E<BYB969O<F5#;VUP;&5T:6]N*$5%4&5R<VES=&5N8V5-86YA
    M9V5R+FIA=F$Z,3DR*0T*(" @(&%T(&]R9RYJ8F]S<RYT;2Y4>$-A<'-U;&4N
    M9&]"969O<F5#;VUP;&5T:6]N*%1X0V%P<W5L92YJ879A.C$S.30I#0H@(" @
    M870@;W)G+FIB;W-S+G1M+E1X0V%P<W5L92YC;VUM:70H5'A#87!S=6QE+FIA
    M=F$Z,S8T*0T*(" @(&%T(&]R9RYJ8F]S<RYT;2Y4<F%N<V%C=&EO;DEM<&PN
    M8V]M;6ET*%1R86YS86-T:6]N26UP;"YJ879A.C<S*0T*(" @(&%T(&]R9RYJ
    M8F]S<RYE:F(N<&QU9VEN<RY4>$EN=&5R8V5P=&]R0TU4+G)U;E=I=&A4<F%N
    M<V%C=&EO;G,H5'A);G1E<F-E<'1O<D--5"YJ879A.C(P,2D-"B @("!A="!O
    M<F<N:F)O<W,N96IB+G!L=6=I;G,N5'A);G1E<F-E<'1O<D--5"YI;G9O:V4H
    M5'A);G1E<F-E<'1O<D--5"YJ879A.C8P*0T*(" @(&%T(&]R9RYJ8F]S<RYE
    M:F(N<&QU9VEN<RY396-U<FET>4EN=&5R8V5P=&]R+FEN=F]K92A396-U<FET
    M>4EN=&5R8V5P=&]R+FIA=F$Z,3,P*0T*(" @(&%T(&]R9RYJ8F]S<RYE:F(N
    M<&QU9VEN<RY,;V=);G1E<F-E<'1O<BYI;G9O:V4H3&]G26YT97)C97!T;W(N
    M:F%V83HR,#0I#0H@(" @870@;W)G+FIB;W-S+F5J8BY3=&%T96QE<W-397-S
    M:6]N0V]N=&%I;F5R+FEN=F]K92A3=&%T96QE<W-397-S:6]N0V]N=&%I;F5R
    M+FIA=F$Z,S$S*0T*(" @(&%T(&]R9RYJ8F]S<RYE:F(N0V]N=&%I;F5R+FEN
    M=F]K92A#;VYT86EN97(N:F%V83HW,3(I#0H@(" @870@;W)G+FIB;W-S+FUX
    M+G-E<G9E<BY-0F5A;E-E<G9E<DEM<&PN:6YV;VME*$U"96%N4V5R=F5R26UP
    M;"YJ879A.C4Q-RD-"B @("!A="!O<F<N:F)O<W,N:6YV;V-A=&EO;BYL;V-A
    M;"Y,;V-A;$EN=F]K97(N:6YV;VME*$QO8V%L26YV;VME<BYJ879A.CDX*0T*
    M(" @(&%T(&]R9RYJ8F]S<RYI;G9O8V%T:6]N+DEN=F]K97));G1E<F-E<'1O
    M<BYI;G9O:V4H26YV;VME<DEN=&5R8V5P=&]R+FIA=F$Z,3 R*0T*(" @(&%T
    M(&]R9RYJ8F]S<RYP<F]X>2Y4<F%N<V%C=&EO;DEN=&5R8V5P=&]R+FEN=F]K
    M92A4<F%N<V%C=&EO;DEN=&5R8V5P=&]R+FIA=F$Z-S<I#0H@(" @870@;W)G
    M+FIB;W-S+G!R;WAY+E-E8W5R:71Y26YT97)C97!T;W(N:6YV;VME*%-E8W5R
    M:71Y26YT97)C97!T;W(N:F%V83HX,"D-"B @("!A="!O<F<N:F)O<W,N<')O
    M>'DN96IB+E-T871E;&5S<U-E<W-I;VY);G1E<F-E<'1O<BYI;G9O:V4H4W1A
    M=&5L97-S4V5S<VEO;DEN=&5R8V5P=&]R+FIA=F$Z,3$Q*0T*(" @(&%T(&]R
    M9RYJ8F]S<RYP<F]X>2Y#;&EE;G1#;VYT86EN97(N:6YV;VME*$-L:65N=$-O
    M;G1A:6YE<BYJ879A.C<V*0T*(" @(&%T("10<F]X>34R+F-R96%T951E;7!L
    M871E*%5N:VYO=VX@4V]U<F-E*0T*(" @(&%T(&1K+G!I;F4N;65D:6%C<F5A
    M=&]R+G=E8BY496UP;&%T955P;&]A9$%C=&EO;BYE>&5C=71E*%1E;7!L871E
    M57!L;V%D06-T:6]N+FIA=F$Z.3 I#0H@(" @870@;W)G+F%P86-H92YS=')U
    M=',N86-T:6]N+E)E<75E<W10<F]C97-S;W(N<')O8V5S<T%C=&EO;E!E<F9O
    M<FTH4F5Q=65S=%!R;V-E<W-O<BYJ879A.C0S-RD-"B @("!A="!O<F<N87!A
    M8VAE+G-T<G5T<RYA8W1I;VXN4F5Q=65S=%!R;V-E<W-O<BYP<F]C97-S*%)E
    M<75E<W10<F]C97-S;W(N:F%V83HR-C0I#0H@(" @870@;W)G+F%P86-H92YS
    M=')U=',N86-T:6]N+D%C=&EO;E-E<G9L970N<')O8V5S<RA!8W1I;VY397)V
    M;&5T+FIA=F$Z,3$P.2D-"B @("!A="!O<F<N87!A8VAE+G-T<G5T<RYA8W1I
    M;VXN06-T:6]N4V5R=FQE="YD;U!O<W0H06-T:6]N4V5R=FQE="YJ879A.C0W
    M,"D-"B @("!A="!J879A>"YS97)V;&5T+FAT=' N2'1T<%-E<G9L970N<V5R
    M=FEC92A(='1P4V5R=FQE="YJ879A.C<V,"D-"B @("!A="!J879A>"YS97)V
    M;&5T+FAT=' N2'1T<%-E<G9L970N<V5R=FEC92A(='1P4V5R=FQE="YJ879A
    M.C@U,RD-"B @("!A="!O<F<N87!A8VAE+F-A=&%L:6YA+F-O<F4N07!P;&EC
    M871I;VY&:6QT97)#:&%I;BYI;G1E<FYA;$1O1FEL=&5R*$%P<&QI8V%T:6]N
    M1FEL=&5R0VAA:6XN:F%V83HR-#<I#0H@(" @870@;W)G+F%P86-H92YC871A
    M;&EN82YC;W)E+D%P<&QI8V%T:6]N1FEL=&5R0VAA:6XN9&]&:6QT97(H07!P
    M;&EC871I;VY&:6QT97)#:&%I;BYJ879A.C$Y,RD-"B @("!A="!D:RYP:6YE
    M+F-O<F4N=71I;"YW96(N5V5B1FEL=&5R+F1O1FEL=&5R*%=E8D9I;'1E<BYJ
    M879A.C4V*0T*(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N8V]R92Y!<'!L
    M:6-A=&EO;D9I;'1E<D-H86EN+FEN=&5R;F%L1&]&:6QT97(H07!P;&EC871I
    M;VY&:6QT97)#:&%I;BYJ879A.C(Q,RD-"B @("!A="!O<F<N87!A8VAE+F-A
    M=&%L:6YA+F-O<F4N07!P;&EC871I;VY&:6QT97)#:&%I;BYD;T9I;'1E<BA!
    M<'!L:6-A=&EO;D9I;'1E<D-H86EN+FIA=F$Z,3DS*0T*(" @(&%T(&1K+G!I
    M;F4N8V]R92YU=&EL+G=E8BY3971#:&%R86-T97)%;F-O9&EN9T9I;'1E<BYD
    M;T9I;'1E<BA3971#:&%R86-T97)%;F-O9&EN9T9I;'1E<BYJ879A.C$Q,2D-
    M"B @("!A="!O<F<N87!A8VAE+F-A=&%L:6YA+F-O<F4N07!P;&EC871I;VY&
    M:6QT97)#:&%I;BYI;G1E<FYA;$1O1FEL=&5R*$%P<&QI8V%T:6]N1FEL=&5R
    M0VAA:6XN:F%V83HR,3,I#0H@(" @870@;W)G+F%P86-H92YC871A;&EN82YC
    M;W)E+D%P<&QI8V%T:6]N1FEL=&5R0VAA:6XN9&]&:6QT97(H07!P;&EC871I
    M;VY&:6QT97)#:&%I;BYJ879A.C$Y,RD-"B @("!A="!O<F<N87!A8VAE+F-A
    M=&%L:6YA+F-O<F4N4W1A;F1A<F17<F%P<&5R5F%L=F4N:6YV;VME*%-T86YD
    M87)D5W)A<'!E<E9A;'9E+FIA=F$Z,C8P*0T*(" @(&%T(&]R9RYA<&%C:&4N
    M8V%T86QI;F$N8V]R92Y3=&%N9&%R9%!I<&5L:6YE)%-T86YD87)D4&EP96QI
    M;F5686QV94-O;G1E>'0N:6YV;VME3F5X="A3=&%N9&%R9%!I<&5L:6YE+FIA
    M=F$Z-C0S*0T*(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N8V]R92Y3=&%N
    M9&%R9%!I<&5L:6YE+FEN=F]K92A3=&%N9&%R9%!I<&5L:6YE+FIA=F$Z-#@P
    M*0T*(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N8V]R92Y#;VYT86EN97)"
    M87-E+FEN=F]K92A#;VYT86EN97)"87-E+FIA=F$Z.3DU*0T*(" @(&%T(&]R
    M9RYA<&%C:&4N8V%T86QI;F$N8V]R92Y3=&%N9&%R9$-O;G1E>'1686QV92YI
    M;G9O:V4H4W1A;F1A<F1#;VYT97AT5F%L=F4N:F%V83HQ.3$I#0H@(" @870@
    M;W)G+F%P86-H92YC871A;&EN82YC;W)E+E-T86YD87)D4&EP96QI;F4D4W1A
    M;F1A<F10:7!E;&EN959A;'9E0V]N=&5X="YI;G9O:V5.97AT*%-T86YD87)D
    M4&EP96QI;F4N:F%V83HV-#,I#0H@(" @870@;W)G+F%P86-H92YC871A;&EN
    M82YA=71H96YT:6-A=&]R+D%U=&AE;G1I8V%T;W)"87-E+FEN=F]K92A!=71H
    M96YT:6-A=&]R0F%S92YJ879A.C4R-RD-"B @("!A="!O<F<N87!A8VAE+F-A
    M=&%L:6YA+F-O<F4N4W1A;F1A<F10:7!E;&EN9213=&%N9&%R9%!I<&5L:6YE
    M5F%L=F5#;VYT97AT+FEN=F]K94YE>'0H4W1A;F1A<F10:7!E;&EN92YJ879A
    M.C8T,2D-"B @("!A="!O<F<N87!A8VAE+F-A=&%L:6YA+G9A;'9E<RY#97)T
    M:69I8V%T97-686QV92YI;G9O:V4H0V5R=&EF:6-A=&5S5F%L=F4N:F%V83HR
    M-#8I#0H@(" @870@;W)G+F%P86-H92YC871A;&EN82YC;W)E+E-T86YD87)D
    M4&EP96QI;F4D4W1A;F1A<F10:7!E;&EN959A;'9E0V]N=&5X="YI;G9O:V5.
    M97AT*%-T86YD87)D4&EP96QI;F4N:F%V83HV-#$I#0H@(" @870@;W)G+F%P
    M86-H92YC871A;&EN82YC;W)E+E-T86YD87)D4&EP96QI;F4N:6YV;VME*%-T
    M86YD87)D4&EP96QI;F4N:F%V83HT.# I#0H@(" @870@;W)G+F%P86-H92YC
    M871A;&EN82YC;W)E+D-O;G1A:6YE<D)A<V4N:6YV;VME*$-O;G1A:6YE<D)A
    M<V4N:F%V83HY.34I#0H@(" @870@;W)G+F%P86-H92YC871A;&EN82YC;W)E
    M+E-T86YD87)D0V]N=&5X="YI;G9O:V4H4W1A;F1A<F1#;VYT97AT+FIA=F$Z
    M,C,Y-BD-"B @("!A="!O<F<N87!A8VAE+F-A=&%L:6YA+F-O<F4N4W1A;F1A
    M<F1(;W-T5F%L=F4N:6YV;VME*%-T86YD87)D2&]S=%9A;'9E+FIA=F$Z,3@P
    M*0T*(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N8V]R92Y3=&%N9&%R9%!I
    M<&5L:6YE)%-T86YD87)D4&EP96QI;F5686QV94-O;G1E>'0N:6YV;VME3F5X
    M="A3=&%N9&%R9%!I<&5L:6YE+FIA=F$Z-C0S*0T*(" @(&%T(&]R9RYA<&%C
    M:&4N8V%T86QI;F$N=F%L=F5S+D5R<F]R1&ES<&%T8VAE<E9A;'9E+FEN=F]K
    M92A%<G)O<D1I<W!A=&-H97)686QV92YJ879A.C$W,"D-"B @("!A="!O<F<N
    M87!A8VAE+F-A=&%L:6YA+F-O<F4N4W1A;F1A<F10:7!E;&EN9213=&%N9&%R
    M9%!I<&5L:6YE5F%L=F5#;VYT97AT+FEN=F]K94YE>'0H4W1A;F1A<F10:7!E
    M;&EN92YJ879A.C8T,2D-"B @("!A="!O<F<N87!A8VAE+F-A=&%L:6YA+G9A
    M;'9E<RY%<G)O<E)E<&]R=%9A;'9E+FEN=F]K92A%<G)O<E)E<&]R=%9A;'9E
    M+FIA=F$Z,3<R*0T*(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N8V]R92Y3
    M=&%N9&%R9%!I<&5L:6YE)%-T86YD87)D4&EP96QI;F5686QV94-O;G1E>'0N
    M:6YV;VME3F5X="A3=&%N9&%R9%!I<&5L:6YE+FIA=F$Z-C0Q*0T*(" @(&%T
    M(&]R9RYA<&%C:&4N8V%T86QI;F$N=F%L=F5S+D%C8V5S<TQO9U9A;'9E+FEN
    M=F]K92A!8V-E<W-,;V=686QV92YJ879A.C0V.2D-"B @("!A="!O<F<N87!A
    M8VAE+F-A=&%L:6YA+F-O<F4N4W1A;F1A<F10:7!E;&EN9213=&%N9&%R9%!I
    M<&5L:6YE5F%L=F5#;VYT97AT+FEN=F]K94YE>'0H4W1A;F1A<F10:7!E;&EN
    M92YJ879A.C8T,2D-"B @("!A="!O<F<N87!A8VAE+F-A=&%L:6YA+F-O<F4N
    M4W1A;F1A<F10:7!E;&EN92YI;G9O:V4H4W1A;F1A<F10:7!E;&EN92YJ879A
    M.C0X,"D-"B @("!A="!O<F<N87!A8VAE+F-A=&%L:6YA+F-O<F4N0V]N=&%I
    M;F5R0F%S92YI;G9O:V4H0V]N=&%I;F5R0F%S92YJ879A.CDY-2D-"B @("!A
    M="!O<F<N87!A8VAE+F-A=&%L:6YA+F-O<F4N4W1A;F1A<F1%;F=I;F5686QV
    M92YI;G9O:V4H4W1A;F1A<F1%;F=I;F5686QV92YJ879A.C$W-"D-"B @("!A
    M="!O<F<N87!A8VAE+F-A=&%L:6YA+F-O<F4N4W1A;F1A<F10:7!E;&EN9213
    M=&%N9&%R9%!I<&5L:6YE5F%L=F5#;VYT97AT+FEN=F]K94YE>'0H4W1A;F1A
    M<F10:7!E;&EN92YJ879A.C8T,RD-"B @("!A="!O<F<N87!A8VAE+F-A=&%L
    M:6YA+F-O<F4N4W1A;F1A<F10:7!E;&EN92YI;G9O:V4H4W1A;F1A<F10:7!E
    M;&EN92YJ879A.C0X,"D-"B @("!A="!O<F<N87!A8VAE+F-A=&%L:6YA+F-O
    M<F4N0V]N=&%I;F5R0F%S92YI;G9O:V4H0V]N=&%I;F5R0F%S92YJ879A.CDY
    M-2D-"B @("!A="!O<F<N87!A8VAE+F-A=&%L:6YA+F-O;FYE8W1O<BYH='1P
    M+DAT='!0<F]C97-S;W(N<')O8V5S<RA(='1P4')O8V5S<V]R+FIA=F$Z,3 T
    M,"D-"B @("!A="!O<F<N87!A8VAE+F-A=&%L:6YA+F-O;FYE8W1O<BYH='1P
    M+DAT='!0<F]C97-S;W(N<G5N*$AT='!0<F]C97-S;W(N:F%V83HQ,34Q*0T*
    M(" @(&%T(&IA=F$N;&%N9RY4:')E860N<G5N*%1H<F5A9"YJ879A.C4S-BD-
    M"DYE<W1E9%1H<F]W86)L97-3=&%C:U1R86-E.@T*:F%V87@N:F1O+DI$3U5S
    M97)%>&-E<'1I;VXZ($%N(&EN<W1A;F-E('=A<R!C;VYC=7)R96YT;'D@;6]D
    M:69I960@:6X@86YO=&AE<B!T<F%N<V%C=&EO;B H;W!T:6UI<W1I8R!L;V-K
    M(",Z(#(S."DN#0I&86EL961/8FIE8W0Z9&LN<&EN92YM961I86UA;F%G97(N
    M96IB+FUO9&5L+D%P<&QI8V%T:6]N+34X#0H@(" @870@8V]M+G-O;&%R;65T
    M<FEC+FMO9&\N:6UP;"YJ9&)C+F]R;6%P<&EN9RY#;&%S<TUA<'!I;F<D,2YA
    M9G1E<E5P9&%T92A#;&%S<TUA<'!I;F<N:F%V83HV,3$I#0H@(" @870@8V]M
    M+G-O;&%R;65T<FEC+FMO9&\N:6UP;"YJ9&)C+E-13$5X96-U=&EO;DUA;F%G
    M97));7!L+F5X96-U=&5);G1E<FYA;"A344Q%>&5C=71I;VY-86YA9V5R26UP
    M;"YJ879A.C0U-2D-"B @("!A="!C;VTN<V]L87)M971R:6,N:V]D;RYI;7!L
    M+FID8F,N4U%,17AE8W5T:6]N36%N86=E<DEM<&PN9FQU<V@H4U%,17AE8W5T
    M:6]N36%N86=E<DEM<&PN:F%V83HR-S(I#0H@(" @870@8V]M+G-O;&%R;65T
    M<FEC+FMO9&\N:6UP;"YJ9&)C+G)U;G1I;64N2D1"0U-T;W)E36%N86=E<BYF
    M;'5S:"A*1$)#4W1O<F5-86YA9V5R+FIA=F$Z-#$Q*0T*(" @(&%T(&-O;2YS
    M;VQA<FUE=')I8RYK;V1O+G)U;G1I;64N4&5R<VES=&5N8V5-86YA9V5R26UP
    M;"YF;'5S:"A097)S:7-T96YC94UA;F%G97));7!L+FIA=F$Z-3<U*0T*(" @
    M(&%T(&-O;2YS;VQA<FUE=')I8RYK;V1O+F5E+D5%4&5R<VES=&5N8V5-86YA
    M9V5R+F)E9F]R94-O;7!L971I;VXH145097)S:7-T96YC94UA;F%G97(N:F%V
    M83HQ.3(I#0H@(" @870@;W)G+FIB;W-S+G1M+E1X0V%P<W5L92YD;T)E9F]R
    M94-O;7!L971I;VXH5'A#87!S=6QE+FIA=F$Z,3,Y-"D-"B @("!A="!O<F<N
    M:F)O<W,N=&TN5'A#87!S=6QE+F-O;6UI="A4>$-A<'-U;&4N:F%V83HS-C0I
    M#0H@(" @870@;W)G+FIB;W-S+G1M+E1R86YS86-T:6]N26UP;"YC;VUM:70H
    M5')A;G-A8W1I;VY);7!L+FIA=F$Z-S,I#0H@(" @870@;W)G+FIB;W-S+F5J
    M8BYP;'5G:6YS+E1X26YT97)C97!T;W)#350N<G5N5VET:%1R86YS86-T:6]N
    M<RA4>$EN=&5R8V5P=&]R0TU4+FIA=F$Z,C Q*0T*(" @(&%T(&]R9RYJ8F]S
    M<RYE:F(N<&QU9VEN<RY4>$EN=&5R8V5P=&]R0TU4+FEN=F]K92A4>$EN=&5R
    M8V5P=&]R0TU4+FIA=F$Z-C I#0H@(" @870@;W)G+FIB;W-S+F5J8BYP;'5G
    M:6YS+E-E8W5R:71Y26YT97)C97!T;W(N:6YV;VME*%-E8W5R:71Y26YT97)C
    M97!T;W(N:F%V83HQ,S I#0H@(" @870@;W)G+FIB;W-S+F5J8BYP;'5G:6YS
    M+DQO9TEN=&5R8V5P=&]R+FEN=F]K92A,;V=);G1E<F-E<'1O<BYJ879A.C(P
    M-"D-"B @("!A="!O<F<N:F)O<W,N96IB+E-T871E;&5S<U-E<W-I;VY#;VYT
    M86EN97(N:6YV;VME*%-T871E;&5S<U-E<W-I;VY#;VYT86EN97(N:F%V83HS
    M,3,I#0H@(" @870@;W)G+FIB;W-S+F5J8BY#;VYT86EN97(N:6YV;VME*$-O
    M;G1A:6YE<BYJ879A.C<Q,BD-"B @("!A="!O<F<N:F)O<W,N;7@N<V5R=F5R
    M+DU"96%N4V5R=F5R26UP;"YI;G9O:V4H34)E86Y397)V97));7!L+FIA=F$Z
    M-3$W*0T*(" @(&%T(&]R9RYJ8F]S<RYI;G9O8V%T:6]N+FQO8V%L+DQO8V%L
    M26YV;VME<BYI;G9O:V4H3&]C86Q);G9O:V5R+FIA=F$Z.3@I#0H@(" @870@
    M;W)G+FIB;W-S+FEN=F]C871I;VXN26YV;VME<DEN=&5R8V5P=&]R+FEN=F]K
    M92A);G9O:V5R26YT97)C97!T;W(N:F%V83HQ,#(I#0H@(" @870@;W)G+FIB
    M;W-S+G!R;WAY+E1R86YS86-T:6]N26YT97)C97!T;W(N:6YV;VME*%1R86YS
    M86-T:6]N26YT97)C97!T;W(N:F%V83HW-RD-"B @("!A="!O<F<N:F)O<W,N
    M<')O>'DN4V5C=7)I='E);G1E<F-E<'1O<BYI;G9O:V4H4V5C=7)I='E);G1E
    M<F-E<'1O<BYJ879A.C@P*0T*(" @(&%T(&]R9RYJ8F]S<RYP<F]X>2YE:F(N
    M4W1A=&5L97-S4V5S<VEO;DEN=&5R8V5P=&]R+FEN=F]K92A3=&%T96QE<W-3
    M97-S:6]N26YT97)C97!T;W(N:F%V83HQ,3$I#0H@(" @870@;W)G+FIB;W-S
    M+G!R;WAY+D-L:65N=$-O;G1A:6YE<BYI;G9O:V4H0VQI96YT0V]N=&%I;F5R
    M+FIA=F$Z-S8I#0H@(" @870@)%!R;WAY-3(N8W)E871E5&5M<&QA=&4H56YK
    M;F]W;B!3;W5R8V4I#0H@(" @870@9&LN<&EN92YM961I86-R96%T;W(N=V5B
    M+E1E;7!L871E57!L;V%D06-T:6]N+F5X96-U=&4H5&5M<&QA=&55<&QO861!
    M8W1I;VXN:F%V83HY,"D-"B @("!A="!O<F<N87!A8VAE+G-T<G5T<RYA8W1I
    M;VXN4F5Q=65S=%!R;V-E<W-O<BYP<F]C97-S06-T:6]N4&5R9F]R;2A297%U
    M97-T4')O8V5S<V]R+FIA=F$Z-#,W*0T*(" @(&%T(&]R9RYA<&%C:&4N<W1R
    M=71S+F%C=&EO;BY297%U97-T4')O8V5S<V]R+G!R;V-E<W,H4F5Q=65S=%!R
    M;V-E<W-O<BYJ879A.C(V-"D-"B @("!A="!O<F<N87!A8VAE+G-T<G5T<RYA
    M8W1I;VXN06-T:6]N4V5R=FQE="YP<F]C97-S*$%C=&EO;E-E<G9L970N:F%V
    M83HQ,3 Y*0T*(" @(&%T(&]R9RYA<&%C:&4N<W1R=71S+F%C=&EO;BY!8W1I
    M;VY397)V;&5T+F1O4&]S="A!8W1I;VY397)V;&5T+FIA=F$Z-#<P*0T*(" @
    M(&%T(&IA=F%X+G-E<G9L970N:'1T<"Y(='1P4V5R=FQE="YS97)V:6-E*$AT
    M='!397)V;&5T+FIA=F$Z-S8P*0T*(" @(&%T(&IA=F%X+G-E<G9L970N:'1T
    M<"Y(='1P4V5R=FQE="YS97)V:6-E*$AT='!397)V;&5T+FIA=F$Z.#4S*0T*
    M(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N8V]R92Y!<'!L:6-A=&EO;D9I
    M;'1E<D-H86EN+FEN=&5R;F%L1&]&:6QT97(H07!P;&EC871I;VY&:6QT97)#
    M:&%I;BYJ879A.C(T-RD-"B @("!A="!O<F<N87!A8VAE+F-A=&%L:6YA+F-O
    M<F4N07!P;&EC871I;VY&:6QT97)#:&%I;BYD;T9I;'1E<BA!<'!L:6-A=&EO
    M;D9I;'1E<D-H86EN+FIA=F$Z,3DS*0T*(" @(&%T(&1K+G!I;F4N8V]R92YU
    M=&EL+G=E8BY796)&:6QT97(N9&]&:6QT97(H5V5B1FEL=&5R+FIA=F$Z-38I
    M#0H@(" @870@;W)G+F%P86-H92YC871A;&EN82YC;W)E+D%P<&QI8V%T:6]N
    M1FEL=&5R0VAA:6XN:6YT97)N86Q$;T9I;'1E<BA!<'!L:6-A=&EO;D9I;'1E
    M<D-H86EN+FIA=F$Z,C$S*0T*(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N
    M8V]R92Y!<'!L:6-A=&EO;D9I;'1E<D-H86EN+F1O1FEL=&5R*$%P<&QI8V%T
    M:6]N1FEL=&5R0VAA:6XN:F%V83HQ.3,I#0H@(" @870@9&LN<&EN92YC;W)E
    M+G5T:6PN=V5B+E-E=$-H87)A8W1E<D5N8V]D:6YG1FEL=&5R+F1O1FEL=&5R
    M*%-E=$-H87)A8W1E<D5N8V]D:6YG1FEL=&5R+FIA=F$Z,3$Q*0T*(" @(&%T
    M(&]R9RYA<&%C:&4N8V%T86QI;F$N8V]R92Y!<'!L:6-A=&EO;D9I;'1E<D-H
    M86EN+FEN=&5R;F%L1&]&:6QT97(H07!P;&EC871I;VY&:6QT97)#:&%I;BYJ
    M879A.C(Q,RD-"B @("!A="!O<F<N87!A8VAE+F-A=&%L:6YA+F-O<F4N07!P
    M;&EC871I;VY&:6QT97)#:&%I;BYD;T9I;'1E<BA!<'!L:6-A=&EO;D9I;'1E
    M<D-H86EN+FIA=F$Z,3DS*0T*(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N
    M8V]R92Y3=&%N9&%R9%=R87!P97)686QV92YI;G9O:V4H4W1A;F1A<F17<F%P
    M<&5R5F%L=F4N:F%V83HR-C I#0H@(" @870@;W)G+F%P86-H92YC871A;&EN
    M82YC;W)E+E-T86YD87)D4&EP96QI;F4D4W1A;F1A<F10:7!E;&EN959A;'9E
    M0V]N=&5X="YI;G9O:V5.97AT*%-T86YD87)D4&EP96QI;F4N:F%V83HV-#,I
    M#0H@(" @870@;W)G+F%P86-H92YC871A;&EN82YC;W)E+E-T86YD87)D4&EP
    M96QI;F4N:6YV;VME*%-T86YD87)D4&EP96QI;F4N:F%V83HT.# I#0H@(" @
    M870@;W)G+F%P86-H92YC871A;&EN82YC;W)E+D-O;G1A:6YE<D)A<V4N:6YV
    M;VME*$-O;G1A:6YE<D)A<V4N:F%V83HY.34I#0H@(" @870@;W)G+F%P86-H
    M92YC871A;&EN82YC;W)E+E-T86YD87)D0V]N=&5X=%9A;'9E+FEN=F]K92A3
    M=&%N9&%R9$-O;G1E>'1686QV92YJ879A.C$Y,2D-"B @("!A="!O<F<N87!A
    M8VAE+F-A=&%L:6YA+F-O<F4N4W1A;F1A<F10:7!E;&EN9213=&%N9&%R9%!I
    M<&5L:6YE5F%L=F5#;VYT97AT+FEN=F]K94YE>'0H4W1A;F1A<F10:7!E;&EN
    M92YJ879A.C8T,RD-"B @("!A="!O<F<N87!A8VAE+F-A=&%L:6YA+F%U=&AE
    M;G1I8V%T;W(N075T:&5N=&EC871O<D)A<V4N:6YV;VME*$%U=&AE;G1I8V%T
    M;W)"87-E+FIA=F$Z-3(W*0T*(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N
    M8V]R92Y3=&%N9&%R9%!I<&5L:6YE)%-T86YD87)D4&EP96QI;F5686QV94-O
    M;G1E>'0N:6YV;VME3F5X="A3=&%N9&%R9%!I<&5L:6YE+FIA=F$Z-C0Q*0T*
    M(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N=F%L=F5S+D-E<G1I9FEC871E
    M<U9A;'9E+FEN=F]K92A#97)T:69I8V%T97-686QV92YJ879A.C(T-BD-"B @
    M("!A="!O<F<N87!A8VAE+F-A=&%L:6YA+F-O<F4N4W1A;F1A<F10:7!E;&EN
    M9213=&%N9&%R9%!I<&5L:6YE5F%L=F5#;VYT97AT+FEN=F]K94YE>'0H4W1A
    M;F1A<F10:7!E;&EN92YJ879A.C8T,2D-"B @("!A="!O<F<N87!A8VAE+F-A
    M=&%L:6YA+F-O<F4N4W1A;F1A<F10:7!E;&EN92YI;G9O:V4H4W1A;F1A<F10
    M:7!E;&EN92YJ879A.C0X,"D-"B @("!A="!O<F<N87!A8VAE+F-A=&%L:6YA
    M+F-O<F4N0V]N=&%I;F5R0F%S92YI;G9O:V4H0V]N=&%I;F5R0F%S92YJ879A
    M.CDY-2D-"B @("!A="!O<F<N87!A8VAE+F-A=&%L:6YA+F-O<F4N4W1A;F1A
    M<F1#;VYT97AT+FEN=F]K92A3=&%N9&%R9$-O;G1E>'0N:F%V83HR,SDV*0T*
    M(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N8V]R92Y3=&%N9&%R9$AO<W16
    M86QV92YI;G9O:V4H4W1A;F1A<F1(;W-T5F%L=F4N:F%V83HQ.# I#0H@(" @
    M870@;W)G+F%P86-H92YC871A;&EN82YC;W)E+E-T86YD87)D4&EP96QI;F4D
    M4W1A;F1A<F10:7!E;&EN959A;'9E0V]N=&5X="YI;G9O:V5.97AT*%-T86YD
    M87)D4&EP96QI;F4N:F%V83HV-#,I#0H@(" @870@;W)G+F%P86-H92YC871A
    M;&EN82YV86QV97,N17)R;W)$:7-P871C:&5R5F%L=F4N:6YV;VME*$5R<F]R
    M1&ES<&%T8VAE<E9A;'9E+FIA=F$Z,3<P*0T*(" @(&%T(&]R9RYA<&%C:&4N
    M8V%T86QI;F$N8V]R92Y3=&%N9&%R9%!I<&5L:6YE)%-T86YD87)D4&EP96QI
    M;F5686QV94-O;G1E>'0N:6YV;VME3F5X="A3=&%N9&%R9%!I<&5L:6YE+FIA
    M=F$Z-C0Q*0T*(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N=F%L=F5S+D5R
    M<F]R4F5P;W)T5F%L=F4N:6YV;VME*$5R<F]R4F5P;W)T5F%L=F4N:F%V83HQ
    M-S(I#0H@(" @870@;W)G+F%P86-H92YC871A;&EN82YC;W)E+E-T86YD87)D
    M4&EP96QI;F4D4W1A;F1A<F10:7!E;&EN959A;'9E0V]N=&5X="YI;G9O:V5.
    M97AT*%-T86YD87)D4&EP96QI;F4N:F%V83HV-#$I#0H@(" @870@;W)G+F%P
    M86-H92YC871A;&EN82YV86QV97,N06-C97-S3&]G5F%L=F4N:6YV;VME*$%C
    M8V5S<TQO9U9A;'9E+FIA=F$Z-#8Y*0T*(" @(&%T(&]R9RYA<&%C:&4N8V%T
    M86QI;F$N8V]R92Y3=&%N9&%R9%!I<&5L:6YE)%-T86YD87)D4&EP96QI;F56
    M86QV94-O;G1E>'0N:6YV;VME3F5X="A3=&%N9&%R9%!I<&5L:6YE+FIA=F$Z
    M-C0Q*0T*(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N8V]R92Y3=&%N9&%R
    M9%!I<&5L:6YE+FEN=F]K92A3=&%N9&%R9%!I<&5L:6YE+FIA=F$Z-#@P*0T*
    M(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N8V]R92Y#;VYT86EN97)"87-E
    M+FEN=F]K92A#;VYT86EN97)"87-E+FIA=F$Z.3DU*0T*(" @(&%T(&]R9RYA
    M<&%C:&4N8V%T86QI;F$N8V]R92Y3=&%N9&%R9$5N9VEN959A;'9E+FEN=F]K
    M92A3=&%N9&%R9$5N9VEN959A;'9E+FIA=F$Z,3<T*0T*(" @(&%T(&]R9RYA
    M<&%C:&4N8V%T86QI;F$N8V]R92Y3=&%N9&%R9%!I<&5L:6YE)%-T86YD87)D
    M4&EP96QI;F5686QV94-O;G1E>'0N:6YV;VME3F5X="A3=&%N9&%R9%!I<&5L
    M:6YE+FIA=F$Z-C0S*0T*(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N8V]R
    M92Y3=&%N9&%R9%!I<&5L:6YE+FEN=F]K92A3=&%N9&%R9%!I<&5L:6YE+FIA
    M=F$Z-#@P*0T*(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N8V]R92Y#;VYT
    M86EN97)"87-E+FEN=F]K92A#;VYT86EN97)"87-E+FIA=F$Z.3DU*0T*(" @
    M(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N8V]N;F5C=&]R+FAT=' N2'1T<%!R
    M;V-E<W-O<BYP<F]C97-S*$AT='!0<F]C97-S;W(N:F%V83HQ,#0P*0T*(" @
    M(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N8V]N;F5C=&]R+FAT=' N2'1T<%!R
    M;V-E<W-O<BYR=6XH2'1T<%!R;V-E<W-O<BYJ879A.C$Q-3$I#0H@(" @870@
    M:F%V82YL86YG+E1H<F5A9"YR=6XH5&AR96%D+FIA=F$Z-3,V*0T*,C P,RTP
    M,RTS,2 Q-3HP-CHR."PU,S @5%)!0T4@6V]R9RYJ8F]S<RYT;2Y4>$-A<'-U
    M;&5=($)E9F]R92!C;VUP;&5T:6]N(&1O;F4L('1X/5AI9$EM<&P@6T9O<FUA
    M=$ED/3(U-RP@1VQO8F%L260]:FQA+R\Q.3DP."P@0G)A;F-H475A;#U=+"!S
    M=&%T=7,]4U1!5%537TU!4DM%1%]23TQ,0D%#2PT*,C P,RTP,RTS,2 Q-3HP
    M-CHR."PU,S @5T%23B @6V]R9RYA<&%C:&4N<W1R=71S+F%C=&EO;BY297%U
    M97-T4')O8V5S<V]R72 -"C(P,#,M,#,M,S$@,34Z,#8Z,C@L-3,P($524D]2
    M(%MO<F<N:F)O<W,N=V5B+FQO8V%L:&]S="Y%;F=I;F5=(%-T86YD87)D5W)A
    M<'!E<E9A;'9E6V%C=&EO;ETZ(%-E<G9L970N<V5R=FEC92@I(&9O<B!S97)V
    M;&5T(&%C=&EO;B!T:')E=R!E>&-E<'1I;VX-"FIA=F%X+G-E<G9L970N4V5R
    M=FQE=$5X8V5P=&EO;@T*(" @(&%T(&]R9RYA<&%C:&4N<W1R=71S+F%C=&EO
    M;BY297%U97-T4')O8V5S<V]R+G!R;V-E<W-%>&-E<'1I;VXH4F5Q=65S=%!R
    M;V-E<W-O<BYJ879A.C0Y."D-"B @("!A="!O<F<N87!A8VAE+G-T<G5T<RYA
    M8W1I;VXN4F5Q=65S=%!R;V-E<W-O<BYP<F]C97-S06-T:6]N4&5R9F]R;2A2
    M97%U97-T4')O8V5S<V]R+FIA=F$Z-#,Y*0T*(" @(&%T(&]R9RYA<&%C:&4N
    M<W1R=71S+F%C=&EO;BY297%U97-T4')O8V5S<V]R+G!R;V-E<W,H4F5Q=65S
    M=%!R;V-E<W-O<BYJ879A.C(V-"D-"B @("!A="!O<F<N87!A8VAE+G-T<G5T
    M<RYA8W1I;VXN06-T:6]N4V5R=FQE="YP<F]C97-S*$%C=&EO;E-E<G9L970N
    M:F%V83HQ,3 Y*0T*(" @(&%T(&]R9RYA<&%C:&4N<W1R=71S+F%C=&EO;BY!
    M8W1I;VY397)V;&5T+F1O4&]S="A!8W1I;VY397)V;&5T+FIA=F$Z-#<P*0T*
    M(" @(&%T(&IA=F%X+G-E<G9L970N:'1T<"Y(='1P4V5R=FQE="YS97)V:6-E
    M*$AT='!397)V;&5T+FIA=F$Z-S8P*0T*(" @(&%T(&IA=F%X+G-E<G9L970N
    M:'1T<"Y(='1P4V5R=FQE="YS97)V:6-E*$AT='!397)V;&5T+FIA=F$Z.#4S
    M*0T*(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N8V]R92Y!<'!L:6-A=&EO
    M;D9I;'1E<D-H86EN+FEN=&5R;F%L1&]&:6QT97(H07!P;&EC871I;VY&:6QT
    M97)#:&%I;BYJ879A.C(T-RD-"B @("!A="!O<F<N87!A8VAE+F-A=&%L:6YA
    M+F-O<F4N07!P;&EC871I;VY&:6QT97)#:&%I;BYD;T9I;'1E<BA!<'!L:6-A
    M=&EO;D9I;'1E<D-H86EN+FIA=F$Z,3DS*0T*(" @(&%T(&1K+G!I;F4N8V]R
    M92YU=&EL+G=E8BY796)&:6QT97(N9&]&:6QT97(H5V5B1FEL=&5R+FIA=F$Z
    M-38I#0H@(" @870@;W)G+F%P86-H92YC871A;&EN82YC;W)E+D%P<&QI8V%T
    M:6]N1FEL=&5R0VAA:6XN:6YT97)N86Q$;T9I;'1E<BA!<'!L:6-A=&EO;D9I
    M;'1E<D-H86EN+FIA=F$Z,C$S*0T*(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI
    M;F$N8V]R92Y!<'!L:6-A=&EO;D9I;'1E<D-H86EN+F1O1FEL=&5R*$%P<&QI
    M8V%T:6]N1FEL=&5R0VAA:6XN:F%V83HQ.3,I#0H@(" @870@9&LN<&EN92YC
    M;W)E+G5T:6PN=V5B+E-E=$-H87)A8W1E<D5N8V]D:6YG1FEL=&5R+F1O1FEL
    M=&5R*%-E=$-H87)A8W1E<D5N8V]D:6YG1FEL=&5R+FIA=F$Z,3$Q*0T*(" @
    M(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N8V]R92Y!<'!L:6-A=&EO;D9I;'1E
    M<D-H86EN+FEN=&5R;F%L1&]&:6QT97(H07!P;&EC871I;VY&:6QT97)#:&%I
    M;BYJ879A.C(Q,RD-"B @("!A="!O<F<N87!A8VAE+F-A=&%L:6YA+F-O<F4N
    M07!P;&EC871I;VY&:6QT97)#:&%I;BYD;T9I;'1E<BA!<'!L:6-A=&EO;D9I
    M;'1E<D-H86EN+FIA=F$Z,3DS*0T*(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI
    M;F$N8V]R92Y3=&%N9&%R9%=R87!P97)686QV92YI;G9O:V4H4W1A;F1A<F17
    M<F%P<&5R5F%L=F4N:F%V83HR-C I#0H@(" @870@;W)G+F%P86-H92YC871A
    M;&EN82YC;W)E+E-T86YD87)D4&EP96QI;F4D4W1A;F1A<F10:7!E;&EN959A
    M;'9E0V]N=&5X="YI;G9O:V5.97AT*%-T86YD87)D4&EP96QI;F4N:F%V83HV
    M-#,I#0H@(" @870@;W)G+F%P86-H92YC871A;&EN82YC;W)E+E-T86YD87)D
    M4&EP96QI;F4N:6YV;VME*%-T86YD87)D4&EP96QI;F4N:F%V83HT.# I#0H@
    M(" @870@;W)G+F%P86-H92YC871A;&EN82YC;W)E+D-O;G1A:6YE<D)A<V4N
    M:6YV;VME*$-O;G1A:6YE<D)A<V4N:F%V83HY.34I#0H@(" @870@;W)G+F%P
    M86-H92YC871A;&EN82YC;W)E+E-T86YD87)D0V]N=&5X=%9A;'9E+FEN=F]K
    M92A3=&%N9&%R9$-O;G1E>'1686QV92YJ879A.C$Y,2D-"B @("!A="!O<F<N
    M87!A8VAE+F-A=&%L:6YA+F-O<F4N4W1A;F1A<F10:7!E;&EN9213=&%N9&%R
    M9%!I<&5L:6YE5F%L=F5#;VYT97AT+FEN=F]K94YE>'0H4W1A;F1A<F10:7!E
    M;&EN92YJ879A.C8T,RD-"B @("!A="!O<F<N87!A8VAE+F-A=&%L:6YA+F%U
    M=&AE;G1I8V%T;W(N075T:&5N=&EC871O<D)A<V4N:6YV;VME*$%U=&AE;G1I
    M8V%T;W)"87-E+FIA=F$Z-3(W*0T*(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI
    M;F$N8V]R92Y3=&%N9&%R9%!I<&5L:6YE)%-T86YD87)D4&EP96QI;F5686QV
    M94-O;G1E>'0N:6YV;VME3F5X="A3=&%N9&%R9%!I<&5L:6YE+FIA=F$Z-C0Q
    M*0T*(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N=F%L=F5S+D-E<G1I9FEC
    M871E<U9A;'9E+FEN=F]K92A#97)T:69I8V%T97-686QV92YJ879A.C(T-BD-
    M"B @("!A="!O<F<N87!A8VAE+F-A=&%L:6YA+F-O<F4N4W1A;F1A<F10:7!E
    M;&EN9213=&%N9&%R9%!I<&5L:6YE5F%L=F5#;VYT97AT+FEN=F]K94YE>'0H
    M4W1A;F1A<F10:7!E;&EN92YJ879A.C8T,2D-"B @("!A="!O<F<N87!A8VAE
    M+F-A=&%L:6YA+F-O<F4N4W1A;F1A<F10:7!E;&EN92YI;G9O:V4H4W1A;F1A
    M<F10:7!E;&EN92YJ879A.C0X,"D-"B @("!A="!O<F<N87!A8VAE+F-A=&%L
    M:6YA+F-O<F4N0V]N=&%I;F5R0F%S92YI;G9O:V4H0V]N=&%I;F5R0F%S92YJ
    M879A.CDY-2D-"B @("!A="!O<F<N87!A8VAE+F-A=&%L:6YA+F-O<F4N4W1A
    M;F1A<F1#;VYT97AT+FEN=F]K92A3=&%N9&%R9$-O;G1E>'0N:F%V83HR,SDV
    M*0T*(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N8V]R92Y3=&%N9&%R9$AO
    M<W1686QV92YI;G9O:V4H4W1A;F1A<F1(;W-T5F%L=F4N:F%V83HQ.# I#0H@
    M(" @870@;W)G+F%P86-H92YC871A;&EN82YC;W)E+E-T86YD87)D4&EP96QI
    M;F4D4W1A;F1A<F10:7!E;&EN959A;'9E0V]N=&5X="YI;G9O:V5.97AT*%-T
    M86YD87)D4&EP96QI;F4N:F%V83HV-#,I#0H@(" @870@;W)G+F%P86-H92YC
    M871A;&EN82YV86QV97,N17)R;W)$:7-P871C:&5R5F%L=F4N:6YV;VME*$5R
    M<F]R1&ES<&%T8VAE<E9A;'9E+FIA=F$Z,3<P*0T*(" @(&%T(&]R9RYA<&%C
    M:&4N8V%T86QI;F$N8V]R92Y3=&%N9&%R9%!I<&5L:6YE)%-T86YD87)D4&EP
    M96QI;F5686QV94-O;G1E>'0N:6YV;VME3F5X="A3=&%N9&%R9%!I<&5L:6YE
    M+FIA=F$Z-C0Q*0T*(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N=F%L=F5S
    M+D5R<F]R4F5P;W)T5F%L=F4N:6YV;VME*$5R<F]R4F5P;W)T5F%L=F4N:F%V
    M83HQ-S(I#0H@(" @870@;W)G+F%P86-H92YC871A;&EN82YC;W)E+E-T86YD
    M87)D4&EP96QI;F4D4W1A;F1A<F10:7!E;&EN959A;'9E0V]N=&5X="YI;G9O
    M:V5.97AT*%-T86YD87)D4&EP96QI;F4N:F%V83HV-#$I#0H@(" @870@;W)G
    M+F%P86-H92YC871A;&EN82YV86QV97,N06-C97-S3&]G5F%L=F4N:6YV;VME
    M*$%C8V5S<TQO9U9A;'9E+FIA=F$Z-#8Y*0T*(" @(&%T(&]R9RYA<&%C:&4N
    M8V%T86QI;F$N8V]R92Y3=&%N9&%R9%!I<&5L:6YE)%-T86YD87)D4&EP96QI
    M;F5686QV94-O;G1E>'0N:6YV;VME3F5X="A3=&%N9&%R9%!I<&5L:6YE+FIA
    M=F$Z-C0Q*0T*(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N8V]R92Y3=&%N
    M9&%R9%!I<&5L:6YE+FEN=F]K92A3=&%N9&%R9%!I<&5L:6YE+FIA=F$Z-#@P
    M*0T*(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N8V]R92Y#;VYT86EN97)"
    M87-E+FEN=F]K92A#;VYT86EN97)"87-E+FIA=F$Z.3DU*0T*(" @(&%T(&]R
    M9RYA<&%C:&4N8V%T86QI;F$N8V]R92Y3=&%N9&%R9$5N9VEN959A;'9E+FEN
    M=F]K92A3=&%N9&%R9$5N9VEN959A;'9E+FIA=F$Z,3<T*0T*(" @(&%T(&]R
    M9RYA<&%C:&4N8V%T86QI;F$N8V]R92Y3=&%N9&%R9%!I<&5L:6YE)%-T86YD
    M87)D4&EP96QI;F5686QV94-O;G1E>'0N:6YV;VME3F5X="A3=&%N9&%R9%!I
    M<&5L:6YE+FIA=F$Z-C0S*0T*(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N
    M8V]R92Y3=&%N9&%R9%!I<&5L:6YE+FEN=F]K92A3=&%N9&%R9%!I<&5L:6YE
    M+FIA=F$Z-#@P*0T*(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N8V]R92Y#
    M;VYT86EN97)"87-E+FEN=F]K92A#;VYT86EN97)"87-E+FIA=F$Z.3DU*0T*
    M(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N8V]N;F5C=&]R+FAT=' N2'1T
    M<%!R;V-E<W-O<BYP<F]C97-S*$AT='!0<F]C97-S;W(N:F%V83HQ,#0P*0T*
    M(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N8V]N;F5C=&]R+FAT=' N2'1T
    M<%!R;V-E<W-O<BYR=6XH2'1T<%!R;V-E<W-O<BYJ879A.C$Q-3$I#0H@(" @
    M870@:F%V82YL86YG+E1H<F5A9"YR=6XH5&AR96%D+FIA=F$Z-3,V*0T*,C P
    M,RTP,RTS,2 Q-3HP-CHR."PU-3 @15)23U(@6V]R9RYJ8F]S<RYW96(N;&]C
    M86QH;W-T+D5N9VEN95T@+2TM+2T@4F]O="!#875S92 M+2TM+0T*:F%V82YL
    M86YG+G)E9FQE8W0N56YD96-L87)E9%1H<F]W86)L945X8V5P=&EO;@T*(" @
    M(&%T("10<F]X>34R+F-R96%T951E;7!L871E*%5N:VYO=VX@4V]U<F-E*0T*
    M(" @(&%T(&1K+G!I;F4N;65D:6%C<F5A=&]R+G=E8BY496UP;&%T955P;&]A
    M9$%C=&EO;BYE>&5C=71E*%1E;7!L871E57!L;V%D06-T:6]N+FIA=F$Z.3 I
    M#0H@(" @870@;W)G+F%P86-H92YS=')U=',N86-T:6]N+E)E<75E<W10<F]C
    M97-S;W(N<')O8V5S<T%C=&EO;E!E<F9O<FTH4F5Q=65S=%!R;V-E<W-O<BYJ
    M879A.C0S-RD-"B @("!A="!O<F<N87!A8VAE+G-T<G5T<RYA8W1I;VXN4F5Q
    M=65S=%!R;V-E<W-O<BYP<F]C97-S*%)E<75E<W10<F]C97-S;W(N:F%V83HR
    M-C0I#0H@(" @870@;W)G+F%P86-H92YS=')U=',N86-T:6]N+D%C=&EO;E-E
    M<G9L970N<')O8V5S<RA!8W1I;VY397)V;&5T+FIA=F$Z,3$P.2D-"B @("!A
    M="!O<F<N87!A8VAE+G-T<G5T<RYA8W1I;VXN06-T:6]N4V5R=FQE="YD;U!O
    M<W0H06-T:6]N4V5R=FQE="YJ879A.C0W,"D-"B @("!A="!J879A>"YS97)V
    M;&5T+FAT=' N2'1T<%-E<G9L970N<V5R=FEC92A(='1P4V5R=FQE="YJ879A
    M.C<V,"D-"B @("!A="!J879A>"YS97)V;&5T+FAT=' N2'1T<%-E<G9L970N
    M<V5R=FEC92A(='1P4V5R=FQE="YJ879A.C@U,RD-"B @("!A="!O<F<N87!A
    M8VAE+F-A=&%L:6YA+F-O<F4N07!P;&EC871I;VY&:6QT97)#:&%I;BYI;G1E
    M<FYA;$1O1FEL=&5R*$%P<&QI8V%T:6]N1FEL=&5R0VAA:6XN:F%V83HR-#<I
    M#0H@(" @870@;W)G+F%P86-H92YC871A;&EN82YC;W)E+D%P<&QI8V%T:6]N
    M1FEL=&5R0VAA:6XN9&]&:6QT97(H07!P;&EC871I;VY&:6QT97)#:&%I;BYJ
    M879A.C$Y,RD-"B @("!A="!D:RYP:6YE+F-O<F4N=71I;"YW96(N5V5B1FEL
    M=&5R+F1O1FEL=&5R*%=E8D9I;'1E<BYJ879A.C4V*0T*(" @(&%T(&]R9RYA
    M<&%C:&4N8V%T86QI;F$N8V]R92Y!<'!L:6-A=&EO;D9I;'1E<D-H86EN+FEN
    M=&5R;F%L1&]&:6QT97(H07!P;&EC871I;VY&:6QT97)#:&%I;BYJ879A.C(Q
    M,RD-"B @("!A="!O<F<N87!A8VAE+F-A=&%L:6YA+F-O<F4N07!P;&EC871I
    M;VY&:6QT97)#:&%I;BYD;T9I;'1E<BA!<'!L:6-A=&EO;D9I;'1E<D-H86EN
    M+FIA=F$Z,3DS*0T*(" @(&%T(&1K+G!I;F4N8V]R92YU=&EL+G=E8BY3971#
    M:&%R86-T97)%;F-O9&EN9T9I;'1E<BYD;T9I;'1E<BA3971#:&%R86-T97)%
    M;F-O9&EN9T9I;'1E<BYJ879A.C$Q,2D-"B @("!A="!O<F<N87!A8VAE+F-A
    M=&%L:6YA+F-O<F4N07!P;&EC871I;VY&:6QT97)#:&%I;BYI;G1E<FYA;$1O
    M1FEL=&5R*$%P<&QI8V%T:6]N1FEL=&5R0VAA:6XN:F%V83HR,3,I#0H@(" @
    M870@;W)G+F%P86-H92YC871A;&EN82YC;W)E+D%P<&QI8V%T:6]N1FEL=&5R
    M0VAA:6XN9&]&:6QT97(H07!P;&EC871I;VY&:6QT97)#:&%I;BYJ879A.C$Y
    M,RD-"B @("!A="!O<F<N87!A8VAE+F-A=&%L:6YA+F-O<F4N4W1A;F1A<F17
    M<F%P<&5R5F%L=F4N:6YV;VME*%-T86YD87)D5W)A<'!E<E9A;'9E+FIA=F$Z
    M,C8P*0T*(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N8V]R92Y3=&%N9&%R
    M9%!I<&5L:6YE)%-T86YD87)D4&EP96QI;F5686QV94-O;G1E>'0N:6YV;VME
    M3F5X="A3=&%N9&%R9%!I<&5L:6YE+FIA=F$Z-C0S*0T*(" @(&%T(&]R9RYA
    M<&%C:&4N8V%T86QI;F$N8V]R92Y3=&%N9&%R9%!I<&5L:6YE+FEN=F]K92A3
    M=&%N9&%R9%!I<&5L:6YE+FIA=F$Z-#@P*0T*(" @(&%T(&]R9RYA<&%C:&4N
    M8V%T86QI;F$N8V]R92Y#;VYT86EN97)"87-E+FEN=F]K92A#;VYT86EN97)"
    M87-E+FIA=F$Z.3DU*0T*(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N8V]R
    M92Y3=&%N9&%R9$-O;G1E>'1686QV92YI;G9O:V4H4W1A;F1A<F1#;VYT97AT
    M5F%L=F4N:F%V83HQ.3$I#0H@(" @870@;W)G+F%P86-H92YC871A;&EN82YC
    M;W)E+E-T86YD87)D4&EP96QI;F4D4W1A;F1A<F10:7!E;&EN959A;'9E0V]N
    M=&5X="YI;G9O:V5.97AT*%-T86YD87)D4&EP96QI;F4N:F%V83HV-#,I#0H@
    M(" @870@;W)G+F%P86-H92YC871A;&EN82YA=71H96YT:6-A=&]R+D%U=&AE
    M;G1I8V%T;W)"87-E+FEN=F]K92A!=71H96YT:6-A=&]R0F%S92YJ879A.C4R
    M-RD-"B @("!A="!O<F<N87!A8VAE+F-A=&%L:6YA+F-O<F4N4W1A;F1A<F10
    M:7!E;&EN9213=&%N9&%R9%!I<&5L:6YE5F%L=F5#;VYT97AT+FEN=F]K94YE
    M>'0H4W1A;F1A<F10:7!E;&EN92YJ879A.C8T,2D-"B @("!A="!O<F<N87!A
    M8VAE+F-A=&%L:6YA+G9A;'9E<RY#97)T:69I8V%T97-686QV92YI;G9O:V4H
    M0V5R=&EF:6-A=&5S5F%L=F4N:F%V83HR-#8I#0H@(" @870@;W)G+F%P86-H
    M92YC871A;&EN82YC;W)E+E-T86YD87)D4&EP96QI;F4D4W1A;F1A<F10:7!E
    M;&EN959A;'9E0V]N=&5X="YI;G9O:V5.97AT*%-T86YD87)D4&EP96QI;F4N
    M:F%V83HV-#$I#0H@(" @870@;W)G+F%P86-H92YC871A;&EN82YC;W)E+E-T
    M86YD87)D4&EP96QI;F4N:6YV;VME*%-T86YD87)D4&EP96QI;F4N:F%V83HT
    M.# I#0H@(" @870@;W)G+F%P86-H92YC871A;&EN82YC;W)E+D-O;G1A:6YE
    M<D)A<V4N:6YV;VME*$-O;G1A:6YE<D)A<V4N:F%V83HY.34I#0H@(" @870@
    M;W)G+F%P86-H92YC871A;&EN82YC;W)E+E-T86YD87)D0V]N=&5X="YI;G9O
    M:V4H4W1A;F1A<F1#;VYT97AT+FIA=F$Z,C,Y-BD-"B @("!A="!O<F<N87!A
    M8VAE+F-A=&%L:6YA+F-O<F4N4W1A;F1A<F1(;W-T5F%L=F4N:6YV;VME*%-T
    M86YD87)D2&]S=%9A;'9E+FIA=F$Z,3@P*0T*(" @(&%T(&]R9RYA<&%C:&4N
    M8V%T86QI;F$N8V]R92Y3=&%N9&%R9%!I<&5L:6YE)%-T86YD87)D4&EP96QI
    M;F5686QV94-O;G1E>'0N:6YV;VME3F5X="A3=&%N9&%R9%!I<&5L:6YE+FIA
    M=F$Z-C0S*0T*(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N=F%L=F5S+D5R
    M<F]R1&ES<&%T8VAE<E9A;'9E+FEN=F]K92A%<G)O<D1I<W!A=&-H97)686QV
    M92YJ879A.C$W,"D-"B @("!A="!O<F<N87!A8VAE+F-A=&%L:6YA+F-O<F4N
    M4W1A;F1A<F10:7!E;&EN9213=&%N9&%R9%!I<&5L:6YE5F%L=F5#;VYT97AT
    M+FEN=F]K94YE>'0H4W1A;F1A<F10:7!E;&EN92YJ879A.C8T,2D-"B @("!A
    M="!O<F<N87!A8VAE+F-A=&%L:6YA+G9A;'9E<RY%<G)O<E)E<&]R=%9A;'9E
    M+FEN=F]K92A%<G)O<E)E<&]R=%9A;'9E+FIA=F$Z,3<R*0T*(" @(&%T(&]R
    M9RYA<&%C:&4N8V%T86QI;F$N8V]R92Y3=&%N9&%R9%!I<&5L:6YE)%-T86YD
    M87)D4&EP96QI;F5686QV94-O;G1E>'0N:6YV;VME3F5X="A3=&%N9&%R9%!I
    M<&5L:6YE+FIA=F$Z-C0Q*0T*(" @(&%T(&]R9RYA<&%C:&4N8V%T86QI;F$N
    M=F%L=F5S+D%C8V5S<TQO9U9A;'9E+FEN=F]K92A!8V-E<W-,;V=686QV92YJ
    M879A.C0V.2D-"B @("!A="!O<F<N87!A8VAE+F-A=&%L:6YA+F-O<F4N4W1A
    M;F1A<F10:7!E;&EN9213=&%N9&%R9%!I<&5L:6YE5F%L=F5#;VYT97AT+FEN
    M=F]K94YE>'0H4W1A;F1A<F10:7!E;&EN92YJ879A.C8T,2D-"B @("!A="!O
    M<F<N87!A8VAE+F-A=&%L:6YA+F-O<F4N4W1A;F1A<F10:7!E;&EN92YI;G9O
    M:V4H4W1A;F1A<F10:7!E;&EN92YJ879A.C0X,"D-"B @("!A="!O<F<N87!A
    M8VAE+F-A=&%L:6YA+F-O<F4N0V]N=&%I;F5R0F%S92YI;G9O:V4H0V]N=&%I
    M;F5R0F%S92YJ879A.CDY-2D-"B @("!A="!O<F<N87!A8VAE+F-A=&%L:6YA
    M+F-O<F4N4W1A;F1A<F1%;F=I;F5686QV92YI;G9O:V4H4W1A;F1A<F1%;F=I
    M;F5686QV92YJ879A.C$W-"D-"B @("!A="!O<F<N87!A8VAE+F-A=&%L:6YA
    M+F-O<F4N4W

    Kodo handled the concurrency by telling you your instance was stale.
    I.e:
    A bank account starts with $0.
    A person retrieves the account with $0 balance.
    Person 2 retrieves the account with $0 balance.
    Person 1 deposits the account with $5 ($0 + $5 = $5 total).
    Person 2 deposits the account with $2 ($0 + $2 = $2 total)
    Person 1 commits. The Account the DB is now at $5.
    Person 2 attempts to commit. The version of Account is stale, and thus
    tells the application that Person 2 is attempting to put in invalid data
    (it should instead be at $7).
    With pessismistic locking, Person 2 has to wait for Person 1 to finish.
    Thus the deadlock:
    Person 1 locks up resource a.
    Person 2 locks up resource b.
    Person 2 attempts to lock up resource a but is waiting for Person 1 to
    finish.
    Person 1 attempts to lock up resource b but is waiting for Person 2 to
    finish.
    These are the kinds of situations that Kodo does handle, but it is up to
    you to figure out what to do when such concurrency situations happen...
    i.e. handle the optimistic lock exception.
    Jesper Ladegaard wrote:
    Hi,
    When multiple ejb instances/threads are accessing the same persistence
    object I get this exception:
    javax.jdo.JDOUserException: An instance was concurrently modified in another
    transaction (optimistic lock #: 238).
    FailedObject:dk.pine.mediamanager.ejb.model.Application-58
    at
    com.solarmetric.kodo.runtime.PersistenceManagerImpl.flush(PersistenceManager
    Impl.java:577)
    at
    com.solarmetric.kodo.ee.EEPersistenceManager.beforeCompletion(EEPersistenceM
    anager.java:192)
    at org.jboss.tm.TxCapsule.doBeforeCompletion(TxCapsule.java:1394)
    at org.jboss.tm.TxCapsule.commit(TxCapsule.java:364)
    (full stack trace included as attachment)
    The only field accessed is a collection - objects are added to the
    collection from several bean instances.
    Is kodo not supposed to handle this?
    The optimistic property is set to default (true). I've tried setting it to
    false, but then the app server hangs or dead locks occur in the database.
    System configuration:
    jdk 1.4
    kodo 2.4.2
    jboss 3.0.4
    sql server 2000
    windows 2000
    Thanks
    Jesper
    2003-03-31 15:06:28,520 TRACE [org.jboss.tm.TxCapsule] failed before completion
    javax.jdo.JDOUserException: Errors were detected when flushing to the data store. If using optimistic transactions, this could indicate that lock violations were detected. The "getNestedExceptions" method of this Exception will return the specific errors.
    NestedThrowables:
    javax.jdo.JDOUserException: An instance was concurrently modified in another transaction (optimistic lock #: 238).
    FailedObject:dk.pine.mediamanager.ejb.model.Application-58
    at com.solarmetric.kodo.runtime.PersistenceManagerImpl.flush(PersistenceManagerImpl.java:577)
    at com.solarmetric.kodo.ee.EEPersistenceManager.beforeCompletion(EEPersistenceManager.java:192)
    at org.jboss.tm.TxCapsule.doBeforeCompletion(TxCapsule.java:1394)
    at org.jboss.tm.TxCapsule.commit(TxCapsule.java:364)
    at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:73)
    at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:201)
    at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:60)
    at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:130)
    at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:204)
    at org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.java:313)
    at org.jboss.ejb.Container.invoke(Container.java:712)
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517)
    at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:98)
    at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:102)
    at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:77)
    at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:80)
    at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:111)
    at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:76)
    at $Proxy52.createTemplate(Unknown Source)
    at dk.pine.mediacreator.web.TemplateUploadAction.execute(TemplateUploadAction.java:90)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:437)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:264)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1109)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:470)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at dk.pine.core.util.web.WebFilter.doFilter(WebFilter.java:56)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at dk.pine.core.util.web.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:527)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2396)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:469)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1040)
    at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1151)
    at java.lang.Thread.run(Thread.java:536)
    NestedThrowablesStackTrace:
    javax.jdo.JDOUserException: An instance was concurrently modified in another transaction (optimistic lock #: 238).
    FailedObject:dk.pine.mediamanager.ejb.model.Application-58
    at com.solarmetric.kodo.impl.jdbc.ormapping.ClassMapping$1.afterUpdate(ClassMapping.java:611)
    at com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.executeInternal(SQLExecutionManagerImpl.java:455)
    at com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.flush(SQLExecutionManagerImpl.java:272)
    at com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.flush(JDBCStoreManager.java:411)
    at com.solarmetric.kodo.runtime.PersistenceManagerImpl.flush(PersistenceManagerImpl.java:575)
    at com.solarmetric.kodo.ee.EEPersistenceManager.beforeCompletion(EEPersistenceManager.java:192)
    at org.jboss.tm.TxCapsule.doBeforeCompletion(TxCapsule.java:1394)
    at org.jboss.tm.TxCapsule.commit(TxCapsule.java:364)
    at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:73)
    at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:201)
    at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:60)
    at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:130)
    at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:204)
    at org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.java:313)
    at org.jboss.ejb.Container.invoke(Container.java:712)
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517)
    at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:98)
    at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:102)
    at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:77)
    at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:80)
    at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:111)
    at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:76)
    at $Proxy52.createTemplate(Unknown Source)
    at dk.pine.mediacreator.web.TemplateUploadAction.execute(TemplateUploadAction.java:90)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:437)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:264)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1109)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:470)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at dk.pine.core.util.web.WebFilter.doFilter(WebFilter.java:56)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at dk.pine.core.util.web.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:527)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2396)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:469)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1040)
    at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1151)
    at java.lang.Thread.run(Thread.java:536)
    2003-03-31 15:06:28,530 TRACE [org.jboss.tm.TxCapsule] Before completion done, tx=XidImpl [FormatId=257, GlobalId=jla//19908, BranchQual=], status=STATUS_MARKED_ROLLBACK
    2003-03-31 15:06:28,530 WARN [org.apache.struts.action.RequestProcessor]
    2003-03-31 15:06:28,530 ERROR [org.jboss.web.localhost.Engine] StandardWrapperValve[action]: Servlet.service() for servlet action threw exception
    javax.servlet.ServletException
    at org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:498)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:439)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:264)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1109)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:470)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at dk.pine.core.util.web.WebFilter.doFilter(WebFilter.java:56)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at dk.pine.core.util.web.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:527)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2396)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:469)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1040)
    at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1151)
    at java.lang.Thread.run(Thread.java:536)
    2003-03-31 15:06:28,550 ERROR [org.jboss.web.localhost.Engine] ----- Root Cause -----
    java.lang.reflect.UndeclaredThrowableException
    at $Proxy52.createTemplate(Unknown Source)
    at dk.pine.mediacreator.web.TemplateUploadAction.execute(TemplateUploadAction.java:90)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:437)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:264)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1109)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:470)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at dk.pine.core.util.web.WebFilter.doFilter(WebFilter.java:56)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at dk.pine.core.util.web.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:527)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2396)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:469)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1040)
    at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1151)
    at java.lang.Thread.run(Thread.java:536)
    Caused by: javax.transaction.RollbackException: Unable to commit, tx=XidImpl [FormatId=257, GlobalId=jla//19908, BranchQual=] status=STATUS_ROLLEDBACK
    at org.jboss.tm.TxCapsule.commit(TxCapsule.java:425)
    at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:73)
    at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:201)
    at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:60)
    at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:130)
    at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:204)
    at org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.java:313)
    at org.jboss.ejb.Container.invoke(Container.java:712)
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517)
    at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:98)
    at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:102)
    at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:77)
    at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:80)
    at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:111)
    at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:76)
    ... 46 more--
    Stephen Kim
    [email protected]
    SolarMetric, Inc.
    http://www.solarmetric.com

  • Exceptions inside threads

    hi,
    it seems to me like checked exceptions can't be thrown inside threads. is there any way to throw them? another question, even more important, is: where both runtime and checked exceptions end up in the case they occur inside a thread (within the run() method), that is, where in the code could i catch them?
    thank you for the help.

    1. Of course you can throw a checked exception inside a Thread, you just can't let it escape the Run method. ;->
    2. If an exception remains uncaught and propogrates outside of the run() method, the Thread will be stopped (since run() exited) and the Exception will be caught by the JVM and passed to the uncaughtException() method of the ThreadGroup to which that thread belongs. By default this method either propogates the call to its parent ThreadGroup or (if it is the outer most parent) will call Exception.printStackTrace() sending the output to stderr.
    Chuck

  • Concurrent Modification in a loop

    This loop iterates through a list of urls that parses a document for urls, if it finds some, then it adds them to a PriorityQueue. I'm getting the modification exception when the loop runs the second time at the it.next() line. Can someone help me with why?
        public synchronized void TidyProcess()
            Iterator it = urlQueue.iterator();
            String userURL;
            while (it.hasNext())
                javax.swing.JEditorPane jEditorPane1 = TC1.getEditorPane();
                userURL = it.next().toString();
                int position = jEditorPane1.getText().length();
                try
                    jEditorPane1.getDocument().insertString(position, "Processing: " + userURL, null);
                catch(javax.swing.text.BadLocationException e)
                    logger.debug(e.getMessage());
                Document tidydoc = TP1.tagParser(userURL); //retrieves document in XML format
                String xmldoc = tidydoc.toXML();
                urlQueue.addAll(TP1.getUrls(tidydoc)); //Processes the document for urls, returns them in a PriorityQueue collection
        }Message was edited by:
    subnetrx
    Message was edited by:
    subnetrx

    You need to add via the Iterator (cast it to a ListIterator) not to the collection itself, otherwise the iterator will complain.

  • Catch exception inside function arguments

    Class A is a core class in my application. When users create it with bad name format, they get an exception.
    public class A{
        public A(String name) throws FormatException{
            // Check if the name the user entered is valid or not.
    }But during the startup of my application I also create some instances of A. At startup time, any exception caught means that my source code is wrong: a bug on my own!
    In this context I got myself with the following problem, how to catch an exception (that should not happen, because it comes from inside my source code) inside a function call:
        // Create an instance of B that wraps A.
        B b = B( new A("a_name_in_a_good_format") , some_other_parameter); // Possible exception from the constructor of A.Is there any way to catch that, or I'm obliged to create the instance of A before calling any function?
    Edited by: ffrantz on Apr 1, 2010 10:15 AM
    Edited by: ffrantz on Apr 1, 2010 10:17 AM

    Thanks. I guess that is the only solution.
    My problem is that I'm using that in the initialization of an enum, and there's no way to put that construction inside a try/catch block. Code looks like.
    public static enum myReferenceInstancesToClone {
        SIGNAL_MAGNITUDE(new C("mag"), some_other_parameters), // C extends A
        SIGNAL_FREQUENCY(new D("freq"), some_other_parameters), // D extends A
        RESISTIVITY     (new A("R")), some_other_parameters),
        INDUCTANCE      (new A("L") , some_other_parameters),
        CAPACITANCE     (new A("C"), some_other_parameters);
        // FIELDS
        private A _referenceInstance;
        private Object[] _refParameters; // A set of private fields that interest me
        // METHODS
        private OutputPropertiesA property, Object[] some_other_parameters){
         _value = property;
            _refParameters = some_other_parameters
        // Other methods that are convenient to get fields.I'm doing it that way because i'm designing the data model for our application and it is uncertain what is the number and nature of properties that we will need to use. This construction with enums seemed good for me because:
    1) Other designers can add properties in a single line. Without looking around on the rest of the source code.
    2) The initialization process keeps probing the same enumeration, independent on the number/nature of the elements contained in it.
    It is in this context that I cannot catch the exception thrown by the constructor of A:
    public static enum myReferenceInstancesToClone {
        SIGNAL_MAGNITUDE(new C("mag"), some_other_parameters), // Java compiler tells me I have an unhandled exception from 'new C()'
        // ...If there is no way to catch that exception or propagate it.. then I'll do it with static arrays and static initialization blocks... but this means that I'll have to break my 'some_other_parameters' in different arrays.

  • Ssrs report web service to save report as pdf throws error Soap exception unhandeled by user code

    I am creating a C# web application to save  an SSRS report as a pdf file on my local machine.
    I added the ReportService web reference as RS2005 and ReportExecution2005 web reference as RE2005.
    http://myServer/ReportServer_DEVPROJECT/ReportExecution2005.asmx?WSDL
    http://myServer/ReportServer_DEVPROJECT/ReportService2005.asmx?WSDL
    I created the following function SaveReport that is called on button click. My report can be accessed on the report server with the following url:
    http://myServer/Reports_DEVPROJECT/Pages/Report.aspx?ItemPath=%2fData+Mgmt%2fSample+Letter
    On the Report Manager home page the report link appears as "SAMPLE LETTER".
    It is deployed in the DataMgmt folder on the Report Manager.
    It uses a data source called "DS Letter" with option "Credentials stored securely in the report server"
    My application gets compiled, but I get the following run time error:
    Error: Soap exception unhandeled by user code. The item '/DataMgmt/Sample Letter' cannot be found. ---> Microsoft.ReportingService
    s.Diagnostics.Utilities.ItemNotFoundException: The item '/DataMgmt/Sample Letter' cannot be found.
    Please check my code and let me know what I can do to run this successfully. Once this is done, I would like to get help with passing a parameter (memberID) to the generate report for that member, through this application.
    Thank You in advance for your help.
    public static void SaveReport()
    RS2005.ReportingService2005 rs;
    RE2005.ReportExecutionService rsExec;
    // Create a new proxy to the web service
    rs = new RS2005.ReportingService2005();
    rsExec = new RE2005.ReportExecutionService();
    // Authenticate to the Web service using Windows credentials
    rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
    rsExec.Credentials = System.Net.CredentialCache.DefaultCredentials;
    rs.Url = "http://myServer/ReportServer_DEVPROJECT/ReportService2005.asmx";
    rsExec.Url = "http://myServer/ReportServer_DEVPROJECT/ReportExecution2005.asmx";
    string historyID = null;
    string deviceInfo = null;
    string format = "pdf";
    Byte[] results;
    string encoding = String.Empty;
    string mimeType = String.Empty;
    string extension = String.Empty;
    RE2005.Warning[] warnings = null;
    string[] streamIDs = null;
    string fileName = @"c:\temp\samplerHAPeport.pdf";
    string _reportName = @"/DataMgmt/Sample HAP Letter";
    string _historyID = null;
    bool _forRendering = false;
    RS2005.ParameterValue[] _values = null;
    RS2005.DataSourceCredentials[] _credentials = null;
    RS2005.ReportParameter[] _parameters = null;
    try
    _parameters = rs.GetReportParameters(_reportName, _historyID, _forRendering, _values, _credentials);
    RE2005.ExecutionInfo ei = rsExec.LoadReport(_reportName, historyID);
    RE2005.ParameterValue[] parameters = new RE2005.ParameterValue[1];
    if (_parameters.Length > 0)
    //parameters[0] = new RE2005.ParameterValue();
    //parameters[0].Label = "";
    //parameters[0].Name = "";
    //parameters[0].Value = "";
    rsExec.SetExecutionParameters(parameters, "en-us");
    results = rsExec.Render(format, deviceInfo,
    out extension, out encoding,
    out mimeType, out warnings, out streamIDs);
    using (FileStream stream = File.OpenWrite(fileName))
    stream.Write(results, 0, results.Length);
    catch (Exception ex)
    throw ex;
    protected void BtnGenReport_Click(object sender, EventArgs e)
    SaveReport();

    Hello Devster,
    Thank you to post your question on TechNet forum.
    After reviewing the whole post, I have a question to you. You can access the report via the link, http://myServer/Reports_DEVPROJECT/Pages/Report.aspx?ItemPath=%2fData+Mgmt%2fSample+Letter.
    From the URL, I can see that the report is located at: /Data Mgmt/Sample Letter, instead of /DataMgmt/Sample Letter. In addition, I found that the target report is "/DataMgmt/Sample HAP Letter" instead of "/DataMgmt/Sample Letter" as the error described. I
    am not sure whether you post out the correct code segment.
    Please check the above things on your side, and hope it is helpful to you.
    Regards,
    Edward
    Edward Zhu
    TechNet Community Support

Maybe you are looking for

  • Transfer iTunes library to a new computer not working

    I have authorized my new computer as stated in the apple support docs but not all songs are coming over. Only 21 of my 200+ are making it over....I get an error that says "some items could not be transfered b/c they are not authorized...please author

  • Uploaded blobs are not moving to RBS storage even RBS is enabled for this content db

    Hi In a production environment RBS  is configured for SharePoint content dbs , and sql server  has failover clusters and alwayson Now each content db  size is very huge : mdf file : 617 GB and .ndf file292 GB and  RBS Storage is :  4,742,795 Files, 1

  • When someone calls their number doesnt displays on...

    using 2 online numbers for uk and usa  when someone calls me on usa number it shows me their number but when someone calls me on uk number skype doesn't show me their number  how can i see their number someone please help

  • Process triggering wrong time ( Urgent ! )

    We created a process and we want to trigger it when a button process. Process Name : PROCESS_CREATE_ORDER Button Name : P_CREATE_ORDER In Conditional Processing part of PROCESS_CREATE_ORDER When Button Pressed (Process After Submit When this Button i

  • IPod Touch has Weak Signal

    I have the following: 1. Airport Express with 802.11n Wi-Fi (Version 7.3.2) 2. iPod Touch running Software Update 2.2 3. iPhone 3G 16GB running Software Update 2.2 My iPhone can connect to the Airport Express with no problems at all. The signal is ve