Index: bridge/org/GNOME/Accessibility/JavaBridge.java
===================================================================
--- bridge/org/GNOME/Accessibility/JavaBridge.java	（版本 221）
+++ bridge/org/GNOME/Accessibility/JavaBridge.java	（工作副本）
@@ -52,6 +52,7 @@
  static String oldEventName = null;
  static int oldDetail1 = -1;
  static boolean debugFlag = false;
+ static Application the_app;
 
  javax.accessibility.Accessible appAccessible;
 
@@ -87,7 +88,16 @@
 				}
 				if (ac != null) {
 					org.GNOME.Accessibility.Accessible accessible = getAccessibleObjectFactory().getAccessible(ac);
-					any.insert_Object (accessible, AccessUtil.getORB().get_primitive_tc (TCKind.tk_objref));
+
+					EventDetails ed = new EventDetails();
+					ed.host_application = the_app;
+					ed.source_role = accessible.getRole();
+					ed.source_name = accessible.name();
+					ed.any_data = AccessUtil.getORB().create_any ();
+					ed.any_data.insert_Object (accessible, AccessUtil.getORB().get_primitive_tc (TCKind.tk_objref));
+					EventDetailsHelper.insert (any, ed);
+
+//					any.insert_Object (accessible, AccessUtil.getORB().get_primitive_tc (TCKind.tk_objref));
 					detail1 = ac.getAccessibleIndexInParent ();
 				}
 				dispatchEvent(source, 
@@ -121,7 +131,7 @@
 				if ( textEvent ) {
 				    int selection_start = 0, selection_end = 0;
 				    int selection_change_start = 0, selection_change_end = 0;
-				    org.omg.CORBA.Any selection_any = AccessUtil.getORB().create_any ();
+				    org.omg.CORBA.Any any = AccessUtil.getORB().create_any ();
 				    AccessibleContext ac = null;
 				    if (source instanceof AccessibleContext) 
 					ac = (AccessibleContext) source;
@@ -162,14 +172,21 @@
 					selection_change_end = selection_end;
 				    }
 				    if (new_selection) {
-					selection_any.insert_string (oldFocusText.substring (
+					 org.GNOME.Accessibility.Accessible accessible = getAccessibleObjectFactory().getAccessible(ac);
+					EventDetails ed = new EventDetails();
+					ed.host_application = the_app;
+					ed.source_role =  accessible.getRole();
+					ed.source_name = accessible.name();
+					ed.any_data = AccessUtil.getORB().create_any();
+					ed.any_data.insert_string (oldFocusText.substring (
 									 Math.min (selection_change_start, 
 									      selection_change_end),
 									 Math.max (selection_change_start,
 									      selection_change_end)));
+					EventDetailsHelper.insert (any, ed);
 					dispatchEvent(source,
 						      "object:text-selection-changed", 
-						      selection_start, selection_end, selection_any);
+						      selection_start, selection_end, any);
 				    }
 				}
 				else {
@@ -408,9 +425,24 @@
 //                                    eventSource.toString() );
 				return;
 			}
+
 			org.GNOME.Accessibility.Accessible accessible = 
 				getAccessibleObjectFactory().
 				getAccessible(ac);
+
+			if (!any.type().equivalent(EventDetailsHelper.type())) {
+				System.out.println( "Not Have assigend ed");
+				EventDetails ed = new EventDetails();
+				ed.host_application = the_app;
+				ed.source_role = accessible.getRole();
+				ed.source_name = accessible.name();
+				ed.any_data = AccessUtil.getORB().create_any();
+				EventDetailsHelper.insert (any, ed);
+			}
+			else {
+				System.out.println( "Have assigend ed");
+			}
+
 			org.GNOME.Accessibility.Event event = 
 				new org.GNOME.Accessibility.Event (eventName, 
 								   accessible,
@@ -453,7 +485,6 @@
 
 	public static void dispatchFocusEvent(java.lang.Object eventSource) {
 		AccessibleContext ctx;
-		org.omg.CORBA.Any any = AccessUtil.getORB().create_any ();
 
 		// System.err.println ("dispatchFocusEvent: " + eventSource);
 		if (eventSource == null) {
@@ -546,6 +577,14 @@
             }
   			org.GNOME.Accessibility.Accessible accessible = 
 			      JavaBridge.getAccessibleObjectFactory().getAccessible(ctx);
+
+			org.omg.CORBA.Any any = AccessUtil.getORB().create_any ();
+			EventDetails ed = new EventDetails();
+			ed.host_application = the_app;
+			ed.source_role = accessible.getRole();
+			ed.source_name = accessible.name();
+			ed.any_data =  AccessUtil.getORB().create_any ();
+			EventDetailsHelper.insert (any, ed);
 			org.GNOME.Accessibility.Event event = new org.GNOME.Accessibility.Event
 				("focus:", accessible, 0, 0, any);
 			// System.out.println("focus: " + ctx);
@@ -1064,6 +1103,7 @@
             
 			Application aref = getAccessibleObjectFactory().
                                getApplication(appAccessible.getAccessibleContext());
+			the_app = aref;
             
 			if (debugFlag)
 				System.err.println(aref);
Index: util/org/GNOME/Accessibility/EventQueueRegistry.java
===================================================================
--- util/org/GNOME/Accessibility/EventQueueRegistry.java	（版本 221）
+++ util/org/GNOME/Accessibility/EventQueueRegistry.java	（工作副本）
@@ -219,6 +219,7 @@
             }
         }
         catch ( Exception ex ) {
+			ex.printStackTrace();
             System.err.println("processEvent : Exception Caught : " + ex.toString() );
         }
      }
