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
Similar Messages
-
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 -
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 -
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 FredriksenI'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);
} -
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 youSynchonize 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. 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 -
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.
-
Implementing an event list, concurrent modification
Hello,
I've made a list into which I append events, and process them according to their ordering.
The problem is that an event processing can cause another event to be appended to this same list. So I get ConcurrentModificationExceptions by the iterator of the list.
Can somehow avoid the need to copy the event list before iterating over it??
Any help is very welcomed
DimitrisCan you just set a flag that blocks other events while the list is processing? i.e. on first insert... block events until insert and processing is done, then set it true so future events can be added?
Rob -
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,
KurtHi,
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<F4N4WKodo 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 -
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:
subnetrxYou need to add via the Iterator (cast it to a ListIterator) not to the collection itself, otherwise the iterator will complain.
-
Hi All,
We are getting a CUE only for a particular user, i.e when this user logs in , it loads his pending orders and then when we try to checkout the order we get the below error. This is happening only for a particular user account, when we enabled debug on OrderRepository we found that during handleMoveToOrderCommit operation, some how an update query is fired(before processOrder chain is executed) which increments the version number - this query cannot be seen in the log(query where the version number became 578). Thus , when processOrder chain is executed it throws Concurrent Update Exception.
Any inputs regarding this is highly appreciated.
UPDATE dcspp_order
SET version=?,state=?,submitted_date=?
WHERE order_id=? AND version=?
-- Parameters --
p[1] = {pd: version} 578 (java.lang.Integer)
p[2] = {pd: state} SUBMITTED (java.lang.String)
p[3] = {pd: submittedDate} 2011-07-19 23:23:55.744 (java.sql.Timestamp)
p[4] = {pd} o9820006 (java.lang.String)
p[5] = {pd} 577 (java.lang.Integer)
[--SQLUpdate--]
2011-07-19 23:24:02,609 INFO [nucleusNamespace.atg.commerce.order.OrderRepository] DEBUG updateItem(order:o9820006) (CONCURRENT UPDATE EXCEPTION: no rows found for version=577)
2011-07-19 23:24:02,609 INFO [nucleusNamespace.atg.commerce.order.OrderRepository] DEBUG removeCurrentProperties(order:o9820006)
2011-07-19 23:24:02,610 INFO [nucleusNamespace.atg.commerce.order.OrderRepository] DEBUG setPropertyValue(order:o9820006.submittedDate,12/31/1969 18:00:00)
2011-07-19 23:24:02,611 ERROR [nucleusNamespace.atg.commerce.order.ShoppingCartModifier]
java.lang.RuntimeException: CONTAINER:atg.repository.RepositoryException; SOURCE:org.jboss.util.NestedSQLException: Transaction is not active: tx=TransactionImple < ac, BasicAction: -53e3c8d2:c32f:4e26092b:3b367 status: ActionStatus.ABORT_ONLY >; - nested throwable: (javax.resource.ResourceException: Transaction is not active: tx=TransactionImple < ac, BasicAction: -53e3c8d2:c32f:4e26092b:3b367 status: ActionStatus.ABORT_ONLY >)
at atg.adapter.gsa.GSAItemDescriptor.loadProperty(GSAItemDescriptor.java:5464)
at atg.adapter.gsa.GSAItem.getPersistentPropertyValue(GSAItem.java:1078)
at atg.adapter.gsa.GSAItem.getPropertyValue(GSAItem.java:971)
at atg.adapter.gsa.GSAItem.getItemTransactionState(GSAItem.java:2088)
at atg.adapter.gsa.GSAItem.getItemTransactionState(GSAItem.java:1968)
at atg.adapter.gsa.GSAItem.getItemTransactionState(GSAItem.java:1954)
at atg.adapter.gsa.GSAItem.getItemTransactionStateUnchecked(GSAItem.java:2143)
at atg.adapter.gsa.GSAItem.setPropertyValue(GSAItem.java:1332)
at atg.adapter.gsa.GSAPropertyDescriptor.setPropertyValue(GSAPropertyDescriptor.java:407)
at atg.adapter.gsa.DatePropertyDescriptor.setPropertyValue(DatePropertyDescriptor.java:149)
at atg.repository.RepositoryItemImpl.setPropertyValue(RepositoryItemImpl.java:223)
at atg.adapter.gsa.GSAItem.setPropertyValue(GSAItem.java:1308)
Edited by: user4180179 on Jul 19, 2011 10:19 PM
Edited by: user4180179 on Jul 19, 2011 11:12 PMYes, I had a look at it. In fact we are getting this error running on a single instance with simple caching mode. The strange part is that it happens only for a particular user profile. Setting item-cache-timeout to session timeout as mentioned in the link would not help in our case since we are getting the error in a normal flow which hardly takes 5 min.
After debgging OrderRepository, I can see that somehow the dcspp_order table gets updated when we click "Purchase"(and this query cannot be seen in the log - we can see all the other queries in the log) BEFORE the processOrder pipeline is executed from handleMoveToCommitOrder. -
Concurrent modification of Indirect Set
Hello, the last months I have been working with JPA without going deeply in it, currently my project is suffering some issues with concurrency.
I have a OneToMany relationship defined as a Set (default values that is transparent indirection), the core of the project is a EJB 3; when two concurrent invocations of the EJB 3 try to modify (adding and removing) an element of the Set toplink send a ConcurrentModificationException, I thought that toplink manages the concurrency but I must haver missed something...
Caused by: Exception [TOPLINK-6055] (Oracle TopLink Essentials - 2.0 (Build b58g-fcs (09/07/2007))): oracle.toplink.essentials.exceptions.QueryException
Exception Description: The method invocation of the method [public java.lang.Object java.util.HashSet.clone()] on the object [[class org.cesga.ifec.engine.database.ACRequestRegister[id=1642], class org.cesga.ifec.engine.database.ACRequestRegister[id=1643], of class [class java.util.HashSet], triggered an exception.
Internal Exception: java.lang.reflect.InvocationTargetException
Target Invocation Exception: java.util.ConcurrentModificationException
at oracle.toplink.essentials.exceptions.QueryException.methodInvocationFailed(QueryException.java:746)
at oracle.toplink.essentials.internal.queryframework.InterfaceContainerPolicy.invokeCloneMethodOn(InterfaceContainerPolicy.java:221)
at oracle.toplink.essentials.internal.queryframework.InterfaceContainerPolicy.cloneFor(InterfaceContainerPolicy.java:105)
at oracle.toplink.essentials.mappings.CollectionMapping.buildCloneForPartObject(CollectionMapping.java:173)
at oracle.toplink.essentials.internal.indirection.UnitOfWorkQueryValueHolder.buildCloneFor(UnitOfWorkQueryValueHolder.java:75)
at oracle.toplink.essentials.internal.indirection.UnitOfWorkValueHolder.instantiateImpl(UnitOfWorkValueHolder.java:176)
at oracle.toplink.essentials.internal.indirection.UnitOfWorkValueHolder.instantiate(UnitOfWorkValueHolder.java:247)
at oracle.toplink.essentials.internal.indirection.DatabaseValueHolder.getValue(DatabaseValueHolder.java:105)
at oracle.toplink.essentials.indirection.IndirectSet.buildDelegate(IndirectSet.java:193)
at oracle.toplink.essentials.indirection.IndirectSet.getDelegate(IndirectSet.java:308)
at oracle.toplink.essentials.indirection.IndirectSet.add(IndirectSet.java:168)
at org.cesga.ifec.engine.Engine.newACRequest(Engine.java:1608)
at sun.reflect.GeneratedMethodAccessor224.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1067)
at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:176)
at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2895)
at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3986)
at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197)
... 62 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor213.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at oracle.toplink.essentials.internal.security.PrivilegedAccessHelper.invokeMethod(PrivilegedAccessHelper.java:322)
at oracle.toplink.essentials.internal.queryframework.InterfaceContainerPolicy.invokeCloneMethodOn(InterfaceContainerPolicy.java:216)
... 80 more
Caused by: java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793)
at java.util.HashMap$EntryIterator.next(HashMap.java:834)
at java.util.HashMap$EntryIterator.next(HashMap.java:832)
at java.util.HashMap.putAllForCreate(HashMap.java:435)
at java.util.HashMap.clone(HashMap.java:669)
at java.util.HashSet.clone(HashSet.java:236)
... 85 more
Thanks!!
Luis M.The latest code in EclipseLink seems to be correctly synchronizing. You could try using EclipseLink 1.0 and see if the issue still occurs.
Workarounds may include:
- using a List or Collection instead of Set
- use eager
- use an isolated (not shared) cache
James : http://www.eclipselink.org -
Using API to run Catalog Bulk Load - Items & Price Lists concurrent prog
Hi everyone. I want to be able to run the concurrent program "Catalog Bulk Load - Items & Price Lists" for iProcurement. I have been able to run concurrent programs in the past using the fnd_request.submit_request API. But I seem to be having problems with the item loading concurrent program. for one thing, the program is stuck on phase code P (pending) status.
When I run the same concurrent program using the iProcurement Administration page it runs ok.
Has anyone been able to run this program through the backend? If so, any help is appreciated.
ThanksHello S.P,
Basically this is what I am trying to achieve.
1. Create a staging table. The columns available for it are category_name, item_number, item_description, supplier, supplier_site, price, uom and currency.
So basically the user can load item details into the database from an excel sheet.
2. use the utl_file api, create an xml file called item_load.xml using the data in the staging table. this will create the xml file used to load items in iprocurement and save it in the database directory /var/tmp/iprocurement This part works great.
3. use the api fnd_request.submit_request to submit the concurrent program 'Catalog Bulk Load - Items & Price Lists'. This is where I am stuck. The process simply says pending or comes up with an error saying:
oracle.apps.fnd.cp.request.FileAccessException: File /var/tmp/iprocurement is not accessable from node/machine moon1.oando-plc.com.
I'm wondering if anyone has used my approach to load items before and if so, have they been successful?
Thank you
Maybe you are looking for
-
DVD Drive Won't Mount DVD+R Disks
I tried to insert a DVD+R disk with photos on it but when it's inserted it's says that the "Disk inserted cannot be read by this computer." I then inserted several different DVD+Rs and nothing but it will read a CD+R so I am freaking out. I'm current
-
I have an iPod, iPhone and iPad all set up to a Dell laptop. I recently got a Macbook Pro, how do I transfer all my control for my devices from the Dell to the MacBook? Can anyone help?
-
Error Message when adding a Purchase Order
Hi, When i enter a new Purchase Order and click on Add, it gives the message as "No Matching records found G/L Accounts (OACT) (ODBC 2028) [Message 131-183]
-
Hi all. I have a question, we will like to sort incoming IDOCs coming into SAP? Does anyone know where and or if its possible to sort IDOC's by Plant. Is this process configurable?
-
My presentation has several questions slides (both survey and graded) interspersed throughout it and is published as a .SWF file. The issue when viewing the presentation, after the first question slide is completed an email results notice pops up and