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");
>                         return contactService.insert(postUrl, contact);
>                 }else{
>                         URL editUrl = new 
> URL(contact.getEditLink().getHref());
>                         return contactService.update(editUrl, contact);
>                 }
>         }
>
> On Jan 9, 11:25 pm, "Julian (Google)" <[email protected]> wrote:
>
> > Hi,
>
> > We had a similar thread in the 
> > past:http://groups.google.com/group/google-contacts-api/browse_thread/thre...
>
> > Are you trying to update/add Organization Name or Job Title? It is
> > necessary to include the label for those fields. Maybe there is a data
> > problem for some of the users, they are missing information and this
> > could be the problem.
>
> > Can you tell me specific steps to reproduce the problem? Did you use a
> > third party tool to sync contacts? I'll like to find if there is a bug
> > on the API.
>
> > Also, I think it would be a good idea to try Contacts API V2, there
> > is  a Java Client 
> > available:http://code.google.com/apis/contacts/docs/2.0/developers_guide_java.html
>
> > Cheers,
> > Julian.
>
> > On Jan 1, 1:38 pm, Dummy <[email protected]> wrote:
>
> > > Hi.
> > > I got following error when I get a user's contact list as currentPage
> > > = contactService.getFeed(postUrl, ContactFeed.class);
> > > This does work some users but not for some users.
> > > The error message is like this. I am using contact api 1.0 java
> > > client.
>
> > > ###
> > > Warning: [Line 1, Column 4256, element gd:orgName]
> > > com.google.gdata.util.ParseException: Missing required text content
> > > Message: Missing required text content
>
> > >         at com.google.gdata.data.AttributeHelper.consume(Unknown Source)
> > >         at com.google.gdata.data.AttributeHelper.consumeContent(Unknown
> > > Source)
> > >         at com.google.gdata.data.ValueConstruct.consumeAttributes(Unknown
> > > Source)
> > >         at com.google.gdata.data.AbstractExtension
> > > $AttributesHandler.processEndElement(Unknown Source)
> > >         at com.google.gdata.util.XmlParser.endElement(Unknown Source)
> > >         at 
> > > org.xml.sax.helpers.ParserAdapter.endElement(ParserAdapter.java:
> > > 626)
> > >         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(ParserAdapter.java:405)
> > >         at com.google.gdata.util.XmlParser.parse(Unknown Source)
> > >         at com.google.gdata.util.XmlParser.parse(Unknown Source)
> > >         at com.google.gdata.data.BaseFeed.parseAtom(Unknown Source)
> > >         at com.google.gdata.data.BaseFeed.readFeed(Unknown Source)
> > >         at com.google.gdata.client.Service.getFeed(Unknown Source)
> > >         at com.google.gdata.client.Service.getFeed(Unknown Source)
> > >         at com.google.gdata.client.GoogleService.getFeed(Unknown Source)
> > >         at com.google.gdata.client.Service.getFeed(Unknown Source)
> > > ####
> > > When this happen this user's contact list cannot be touched.
> > > I figure out a contact data causes this. And when I delete or save
> > > from web browser, this won't happen for the user.
> > > But I need to maintain users contact list with batch.
>
> > > What causes this? and is there any workaround?
--~--~---------~--~----~------------~-------~--~----~
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