Hi,

Thank you for sharing the code, this will help to find the problem.

Do you get the error only when you call the method more than 100
times? Does it work for the first 100 calls?

Cheers,
Julian

On Jan 10, 1:02 pm, Dummy <[email protected]> wrote:
> Hi. I did run with V2.0 API but the result was the same.
> I got parse exception like this. Thanks.
>
> 警告: [Line 5, Column 1885, element gd:orgTitle]
> com.google.gdata.util.ParseException: Missing required text content
> Message: Missing required text content
>
>         at com.google.gdata.data.AttributeHelper.consume(AttributeHelper.java:
> 101)
>         at com.google.gdata.data.AttributeHelper.consumeContent
> (AttributeHelper.java:86)
>         at com.google.gdata.data.ValueConstruct.consumeAttributes
> (ValueConstruct.java:184)
>         at com.google.gdata.data.AbstractExtension
> $AttributesHandler.processEndElement(AbstractExtension.java:243)
>         at com.google.gdata.util.XmlParser.endElement(XmlParser.java:985)
>         at org.xml.sax.helpers.ParserAdapter.endElement(Unknown Source)
>         at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
> Source)
>         at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement
> (Unknown Source)
>         at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl
> $FragmentContentDispatcher.dispatch(Unknown Source)
>         at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument
> (Unknown Source)
>         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>         at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown
> Source)
>         at org.xml.sax.helpers.ParserAdapter.parse(Unknown Source)
>         at com.google.gdata.util.XmlParser.parse(XmlParser.java:675)
>         at com.google.gdata.util.XmlParser.parse(XmlParser.java:606)
>         at com.google.gdata.data.BaseFeed.parseAtom(BaseFeed.java:759)
>         at com.google.gdata.util.ParseUtil.parseFeed(ParseUtil.java:200)
>         at com.google.gdata.util.ParseUtil.readFeed(ParseUtil.java:168)
>         at com.google.gdata.data.BaseFeed.readFeed(BaseFeed.java:741)
>         at com.google.gdata.client.Service.getFeed(Service.java:965)
>         at com.google.gdata.client.Service.getFeed(Service.java:819)
>         at com.google.gdata.client.GoogleService.getFeed(GoogleService.java:
> 592)
>         at com.google.gdata.client.Service.getFeed(Service.java:838)
>         at jp.co.tokyu.hands.google.sso.gao.ContactListGao.init
> (ContactListGao.java:86)
>         at
> jp.co.tokyu.hands.google.sso.batch.task.GoogleAppsContactTask.updateUser
> (GoogleAppsContactTask.java:93)
>         at
> jp.co.tokyu.hands.google.sso.batch.task.GoogleAppsContactTask.execute
> (GoogleAppsContactTask.java:71)
>         at com.yoshidumi.product.google.sso.batch.task.BatchTask.executeTask
> (BatchTask.java:58)
>         at jp.co.tokyu.hands.google.sso.batch.task.GoogleAppsContactTask$
> $EnhancedByS2AOP$$1098594.$$executeTask$$invokeSuperMethod$$
> (GoogleAppsContactTask$$EnhancedByS2AOP$$1098594.java)
>         at jp.co.tokyu.hands.google.sso.batch.task.GoogleAppsContactTask$
> $EnhancedByS2AOP$$1098594$$MethodInvocation$$executeTask0.proceed
> (MethodInvocationClassGenerator.java)
>         at org.seasar.extension.tx.RequiredInterceptor.invoke
> (RequiredInterceptor.java:48)
>         at jp.co.tokyu.hands.google.sso.batch.task.GoogleAppsContactTask$
> $EnhancedByS2AOP$$1098594$$MethodInvocation$$executeTask0.proceed
> (MethodInvocationClassGenerator.java)
>         at jp.co.tokyu.hands.google.sso.batch.task.GoogleAppsContactTask$
> $EnhancedByS2AOP$$1098594.executeTask(GoogleAppsContactTask$
> $EnhancedByS2AOP$$1098594.java)
>         at com.yoshidumi.product.google.sso.batch.task.BatchTask.call
> (BatchTask.java:72)
>         at com.yoshidumi.product.google.sso.batch.task.BatchTask.call
> (BatchTask.java:1)
>         at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
>         at java.util.concurrent.FutureTask.run(Unknown Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
> Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>         at java.lang.Thread.run(Unknown Source)
>
> On Jan 10, 7:30 pm, Dummy <[email protected]> wrote:
>
> > Hi, Julian.
>
> > I would paste my source code although it may contain no concern with
> > this issue..
> > Now,I figure out this parse exception may happen just adding contact
> > records.
> > The steps is just calling this method 100 over times.
> > It happend just adding the contacts records with no groups.
>
> > I would also try with API V2, and let you know the results later.
>
> > Thanks.
>
> > Source code.
> > #####
> >         public ContactEntry createContact(String createUserAddress,
> > UserMaster userMaster)
> >         throws ServiceException, IOException {
>
> >                 //既存のエントリの場合は再利用するために取得する。
> >                 ContactEntry contact = 
> > getContactEntryByMail(createUserAddress,
> > userMaster.getMail());
>
> >                 Boolean isNew = false;
>
> >                 //contactがnullの場合は新規作成となる。
> >                 if(contact == null) {
> >                         contact = new ContactEntry();
> >                         isNew = true;
> >                 }else{
> >                         //更新の場合は一旦初期化する。
> >                         contact.getPhoneNumbers().clear();
> >                         contact.getPostalAddresses().clear();
> >                         contact.getEmailAddresses().clear();
> >                 }
>
> >                 String value = userMaster.getDisplayname();
> >                 contact.setTitle(new PlainTextConstruct(value));
>
> >                 Email primaryMail = new Email();
> >                 primaryMail.setAddress(userMaster.getMail());
> >                 primaryMail.setRel("http://schemas.google.com/g/2005#work";);
> >                 primaryMail.setPrimary(true);
> >                 contact.addEmailAddress(primaryMail);
>
> >                 //              会社電話番号の登録部分***********
> >                 if(userMaster.getTelephonenumber() != null &&
> > userMaster.getTelephonenumber().length() > 0 ) {
> >                         PhoneNumber workPn = new PhoneNumber();
> >                         
> > workPn.setPhoneNumber(userMaster.getTelephonenumber());
> >                         
> > workPn.setRel("http://schemas.google.com/g/2005#work";);
> >                         contact.addPhoneNumber(workPn);
> >                 }
> > //              ポケットベルの登録部分(ハンズ用件では内線番号)***********
> >                 if(userMaster.getPager() != null && 
> > userMaster.getPager().length() >
> > 0 ) {
> >                         PhoneNumber pocketBeeper = new PhoneNumber();
> >                         pocketBeeper.setPhoneNumber(userMaster.getPager());
> >                         
> > pocketBeeper.setRel("http://schemas.google.com/g/2005#other";);
> >                         contact.addPhoneNumber(pocketBeeper);
> >                 }
> > //              Fax電話番号の登録部分***********
> >                 if(userMaster.getFacsimiletelephonenumber() != null &&
> > userMaster.getFacsimiletelephonenumber().length() > 0) {
> >                         PhoneNumber faxPn = new PhoneNumber();
> >                         
> > faxPn.setPhoneNumber(userMaster.getFacsimiletelephonenumber());
> >                         
> > faxPn.setRel("http://schemas.google.com/g/2005#fax";);
> >                         contact.addPhoneNumber(faxPn);
> >                 }
> > //              携帯電話の登録部分***********
> >                 if(userMaster.getMobile() != null && 
> > userMaster.getMobile().length()> 0) {
>
> >                         PhoneNumber mobilePn = new PhoneNumber();
> >                         mobilePn.setPhoneNumber(userMaster.getMobile());
> >                         
> > mobilePn.setRel("http://schemas.google.com/g/2005#mobile";);
> >                         contact.addPhoneNumber(mobilePn);
> >                 }
>
> > //              住所情報の登録部分
> >                 PostalAddress pa = new PostalAddress();
> >                 String tempAddress = "-";
> > //              都道府県の取得
> >                 if(userMaster.getSt() != null && 
> > userMaster.getSt().length() > 0 ){
> >                         tempAddress = userMaster.getSt();
> >                 }
> > //              市区町村の取得
> >                 if(userMaster.getL() != null && userMaster.getL().length() 
> > > 0 ){
> >                         tempAddress = tempAddress + userMaster.getL();
> >                 }
> > //              番地の取得
> >                 if(userMaster.getStreetaddress() != null &&
> > userMaster.getStreetaddress().length() > 0 ){
> >                         tempAddress = tempAddress + 
> > userMaster.getStreetaddress();
> >                 }
> >                 pa.setValue(tempAddress);
> >                 pa.setRel("http://schemas.google.com/g/2005#work";);
> >                 contact.addPostalAddress(pa);
>
> >                 Organization org = new Organization();
> >                 OrgName orgName = new OrgName("-");
> >                 OrgTitle orgTitle = new OrgTitle("-");
>
> >                 if(userMaster.getTitle() != null && 
> > userMaster.getTitle().length()>0)
> > {
> >                                 orgName = new 
> > OrgName(userMaster.getTitle());
> >                 }
>
> >                 if(userMaster.getDepartment() != null && 
> > userMaster.getDepartment
> > ().length()>0){
> >                         orgTitle = new OrgTitle(userMaster.getDepartment());
> >                 }
> >                 org.setOrgName(orgName);
> >                 org.setOrgTitle(orgTitle);
> >                 org.setRel("http://schemas.google.com/g/2005#work";);
> >                 contact.addOrganization(org);
>
> >                 if(isNew){
> >                         //管理者の場合はドメインのSharedContactにする。
> >                         
> > if(createUserAddress.equals(envConst.getAdminEmail())){
> >                                 createUserAddress = 
> > envConst.getDomainUrlBase();
> >                         }
>
> >                         URL postUrl = new 
> > URL("http://www.google.com/m8/feeds/contacts/"; +
> > createUserAddress + "/full");
>
> ...
>
> read more >>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Contacts API" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/google-contacts-api?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to