/* 298 */ this.acc.set(bean, t);
/* */ }
/* */
/* */ public void parse(BeanT bean, CharSequence lexical) throws AccessorException, SAXException {
/* 302 */ String idref = WhiteSpaceProcessor.trim(lexical).toString();
/* 303 */ UnmarshallingContext context = UnmarshallingContext.getInstance();
/* */
/* 305 */ Callable callable = context.getObjectFromId(idref, this.acc.valueType);
/* 306 */ if (callable == null)
/* */ {
/* 308 */ context.errorUnresolvedIDREF(bean, idref, context.getLocator());
/* 309 */ return;
/* */ }
/* */ Object t;
/* */ try {
/* 314 */ t = callable.call();
/* */ } catch (SAXException e) {
/* 316 */ throw e;
/* */ } catch (RuntimeException e) {
/* 318 */ throw e;
/* */ } catch (Exception e) {
/* 320 */ throw new SAXException2(e);
/* */ }
/* 322 */ if (t != null) {
/* 323 */ assign(bean, t, context);
/* */ }
/* */ else {
/* 326 */ LocatorEx loc = new LocatorEx.Snapshot(context.getLocator());
/* 327 */ context.addPatcher(new Patcher(callable, context, bean, idref, loc) {
/* */ public void run() throws SAXException {
/* */ try {
/* 330 */ Object t = this.val$callable.call();
/* 331 */ if (t == null)
/* 332 */ this.val$context.errorUnresolvedIDREF(this.val$bean, this.val$idref, this.val$loc);